Module: Croods::Resource::JsonSchema::Links

Defined in:
lib/croods/resource/json_schema/links.rb,
lib/croods/resource/json_schema/links/show.rb,
lib/croods/resource/json_schema/links/index.rb,
lib/croods/resource/json_schema/links/create.rb,
lib/croods/resource/json_schema/links/member.rb,
lib/croods/resource/json_schema/links/update.rb,
lib/croods/resource/json_schema/links/destroy.rb,
lib/croods/resource/json_schema/links/collection.rb

Defined Under Namespace

Modules: Collection, Create, Destroy, Index, Member, Show, Update

Class Method Summary collapse

Class Method Details

.action_module(name) ⇒ Object



32
33
34
35
# File 'lib/croods/resource/json_schema/links.rb', line 32

def action_module(name)
  "Croods::Resource::JsonSchema::Links::#{name.to_s.camelize}"
    .constantize
end

.actions(resource) ⇒ Object



20
21
22
23
24
# File 'lib/croods/resource/json_schema/links.rb', line 20

def actions(resource)
  resource.actions.map do |action|
    action_module(action.name).link(resource)
  end
end

.additional_actions(resource) ⇒ Object



26
27
28
29
30
# File 'lib/croods/resource/json_schema/links.rb', line 26

def additional_actions(resource)
  resource.additional_actions.map do |action|
    action_module(action.on).link(resource, action)
  end
end

.schema(resource) ⇒ Object



16
17
18
# File 'lib/croods/resource/json_schema/links.rb', line 16

def schema(resource)
  additional_actions(resource) + actions(resource)
end