Module: Reviewed::Embeddable
- Included in:
- Base
- Defined in:
- lib/reviewed/embeddable.rb
Defined Under Namespace
Modules: ClassMethods
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.embedded_name(name, opts_name = nil) ⇒ Object
9 10 11 12 |
# File 'lib/reviewed/embeddable.rb', line 9 def (name, opts_name=nil) return opts_name if opts_name ["Reviewed", name.singularize.classify].join("::") end |
.included(klass) ⇒ Object
4 5 6 |
# File 'lib/reviewed/embeddable.rb', line 4 def self.included(klass) klass.extend(Reviewed::Embeddable::ClassMethods) end |
Instance Method Details
#objectify(data) ⇒ Object
15 16 17 18 19 |
# File 'lib/reviewed/embeddable.rb', line 15 def objectify(data) data = objectify_has_many(data) data = objectify_has_one(data) return data end |
#objectify_has_many(json) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/reviewed/embeddable.rb', line 21 def objectify_has_many(json) self.class..each do |map| assoc_name, klass_name = [map.keys[0], map.values[0]] klass = klass_name.constantize if json.has_key?(assoc_name) json[assoc_name] = json[assoc_name].map do |obj| klass.new(obj) end end end return json end |
#objectify_has_one(json) ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'lib/reviewed/embeddable.rb', line 34 def objectify_has_one(json) self.class..each do |map| assoc_name, klass_name = [map.keys[0], map.values[0]] klass = klass_name.constantize if json.has_key?(assoc_name) json[assoc_name] = klass.new(json[assoc_name]) end end return json end |