Module: AsJsonRepresentations
- Defined in:
- lib/as_json_representations.rb,
lib/as_json_representations/version.rb,
lib/as_json_representations/collection.rb
Defined Under Namespace
Modules: ClassMethods, Collection
Constant Summary collapse
- QUERY_METHODS =
%i[includes eager_load preload].freeze
- VERSION =
'0.6.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 78 79 80 81 82 83 84 85 |
# File 'lib/as_json_representations.rb', line 57 def self.included(base) base.extend ClassMethods base.class_eval do eval %{ def as_json(options={}) if !options[:representation] && defined?(super) super(options) else #{base}.render_representation(self, options.dup) end end } def representation(name, ={}) as_json(.merge(representation: name)) end def self.included(base) if base.class == Module AsJsonRepresentations.send(:included, base) base.instance_variable_set :@parent_entity, self else context = self base.define_singleton_method(:representations) { context.representations } end end end end |