module SimpleJsonapi::Definition::Concerns::HasLinksObject
Adds a {#link} method and {#link_definitions} collection to a definition.
@!attribute [r] link_definitions
@return [Hash{Symbol => String,Object}]
Public Class Methods
included(base)
click to toggle source
@visibility private
# File lib/simple_jsonapi/definition/concerns/has_links_object.rb, line 11 def self.included(base) base.send :attr_accessor, :link_definitions end
new(*args, &block)
click to toggle source
Calls superclass method
# File lib/simple_jsonapi/definition/concerns/has_links_object.rb, line 15 def initialize(*args, &block) super @link_definitions = {} end
Public Instance Methods
link(name, *args, **options, &block)
click to toggle source
@overload link(name, options = {}, &block) @overload link(name, value, options = {}) @yieldparam object [Object] @yieldreturn [String,Hash] @return [void]
# File lib/simple_jsonapi/definition/concerns/has_links_object.rb, line 30 def link(name, *args, **options, &block) link_definitions[name.to_sym] = Link.new(name, *args, options, &block) end
Private Instance Methods
initialize_dup(new_def)
click to toggle source
Calls superclass method
# File lib/simple_jsonapi/definition/concerns/has_links_object.rb, line 20 def initialize_dup(new_def) super new_def.link_definitions = link_definitions.deep_dup end