Class: Apiwork::API::Resource::Action

Inherits:
Object
  • Object
show all
Defined in:
lib/apiwork/api/resource/action.rb

Constant Summary collapse

CRUD =
%i[index show create update destroy].freeze
METHODS =
{
  create: :post,
  destroy: :delete,
  index: :get,
  show: :get,
  update: :patch,
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, method: nil, type: nil) ⇒ Action

Returns a new instance of Action.



21
22
23
24
25
# File 'lib/apiwork/api/resource/action.rb', line 21

def initialize(name, method: nil, type: nil)
  @name = name.to_sym
  @type = type || (name == :index ? :collection : :member)
  @method = method || METHODS[name] || :get
end

Instance Attribute Details

#methodObject (readonly)



17
18
19
# File 'lib/apiwork/api/resource/action.rb', line 17

def method
  @method
end

#nameObject (readonly)



17
18
19
# File 'lib/apiwork/api/resource/action.rb', line 17

def name
  @name
end

#typeObject (readonly)



17
18
19
# File 'lib/apiwork/api/resource/action.rb', line 17

def type
  @type
end

Instance Method Details

#collection?Boolean

Returns:

  • (Boolean)


31
32
33
# File 'lib/apiwork/api/resource/action.rb', line 31

def collection?
  type == :collection
end

#crud?Boolean

Returns:

  • (Boolean)


35
36
37
# File 'lib/apiwork/api/resource/action.rb', line 35

def crud?
  CRUD.include?(name)
end

#member?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/apiwork/api/resource/action.rb', line 27

def member?
  type == :member
end