module SimpleJsonapi::Definition::Concerns::HasMetaObject

Adds a {#meta} method and {#meta_definitions} collection to a definition.

@!attribute [r] meta_definitions

@return [Hash{Symbol => String,Object}]

Public Class Methods

included(base) click to toggle source

@visibility private

# File lib/simple_jsonapi/definition/concerns/has_meta_object.rb, line 11
def self.included(base)
  base.send :attr_accessor, :meta_definitions
end
new(*args, &block) click to toggle source
Calls superclass method
# File lib/simple_jsonapi/definition/concerns/has_meta_object.rb, line 15
def initialize(*args, &block)
  super
  @meta_definitions = {}
end

Public Instance Methods

meta(name, *args, **options, &block) click to toggle source

@overload meta(name, options = {}, &block) @overload meta(name, value, options = {}) @yieldparam object [Object] @yieldreturn [Object] @return [void]

# File lib/simple_jsonapi/definition/concerns/has_meta_object.rb, line 30
def meta(name, *args, **options, &block)
  meta_definitions[name.to_sym] = Meta.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_meta_object.rb, line 20
        def initialize_dup(new_def)
  super
  new_def.meta_definitions = meta_definitions.deep_dup
end