Module: Jsapi::Controller::Actions::ClassMethods

Defined in:
lib/jsapi/controller/actions/class_methods.rb

Instance Method Summary collapse

Instance Method Details

#suffixObject

:method: api_action! :call-seq:

api_action!(name, operation_name = nil, action: :index, **options)
api_action!(operation_name = nil, action: :index, **options, &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, **options, &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, **options, &block) }
      else
        -> { send(method, operation_name, **options) { |p| send(name, p) } }
      end
    ))
  end
end