Module: JsonRepresentations

Defined in:
lib/json_representations.rb,
lib/json_representations/version.rb,
lib/json_representations/collection.rb

Defined Under Namespace

Modules: ClassMethods, Collection

Constant Summary collapse

QUERY_METHODS =
i[includes eager_load preload].freeze
VERSION =
'1.0.0'

Class Method Summary collapse

Class Method Details

.included(base) ⇒ Object



57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# File 'lib/json_representations.rb', line 57

def self.included(base)
  base.extend ClassMethods

  base.class_eval do
    eval %{
      def representation(name, options={})
        #{base}.render_representation(self, name.to_sym, options.dup)
      end
    }

    def self.included(base)
      if base.class == Module
        JsonRepresentations.send(:included, base)
        base.instance_variable_set :@parent_entity, self
      else
        context = self
        base.define_singleton_method(:representations) { context.representations }
      end
    end
  end
end