Module: Jsapi::Controller::Actions::ClassMethods
- Defined in:
- lib/jsapi/controller/actions/class_methods.rb
Instance Method Summary collapse
-
#suffix ⇒ Object
:method: api_action! :call-seq: api_action!(name, operation_name = nil, action: :index, **options) api_action!(operation_name = nil, action: :index, **options, &block).
Instance Method Details
#suffix ⇒ Object
:method: api_action! :call-seq:
api_action!(name, operation_name = nil, action: :index, **)
api_action!(operation_name = nil, action: :index, **, &block)
Like api_action, except that api_operation! is used instead of api_operation.
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/jsapi/controller/actions/class_methods.rb', line 40 ['', '!'].each do |suffix| method = :"api_operation#{suffix}" define_method(:"api_action#{suffix}") \ do |name = nil, operation_name = nil, action: nil, **, &block| raise ArgumentError, 'neither name nor block is given' if !name && !block operation_name = name if operation_name.nil? define_method(action || :index, &( if block -> { send(method, operation_name, **, &block) } else -> { send(method, operation_name, **) { |p| send(name, p) } } end )) end end |