Module: MongoModel::Properties::ClassMethods
- Defined in:
- lib/mongomodel/concerns/properties.rb
Instance Method Summary collapse
- #inherited(subclass) ⇒ Object
- #internal_properties ⇒ Object
- #model_properties ⇒ Object
- #properties ⇒ Object
- #properties=(properties) ⇒ Object
- #property(name, type, options = {}) ⇒ Object
Instance Method Details
#inherited(subclass) ⇒ Object
37 38 39 40 |
# File 'lib/mongomodel/concerns/properties.rb', line 37 def inherited(subclass) super subclass.properties = properties.dup end |
#internal_properties ⇒ Object
33 34 35 |
# File 'lib/mongomodel/concerns/properties.rb', line 33 def internal_properties properties.select { |k, p| p.internal? }.map { |k, p| p } end |
#model_properties ⇒ Object
29 30 31 |
# File 'lib/mongomodel/concerns/properties.rb', line 29 def model_properties properties.reject { |k, p| p.internal? } end |
#properties ⇒ Object
21 22 23 |
# File 'lib/mongomodel/concerns/properties.rb', line 21 def properties @properties ||= ActiveSupport::OrderedHash.new end |
#properties=(properties) ⇒ Object
25 26 27 |
# File 'lib/mongomodel/concerns/properties.rb', line 25 def properties=(properties) @properties = properties end |
#property(name, type, options = {}) ⇒ Object
15 16 17 18 19 |
# File 'lib/mongomodel/concerns/properties.rb', line 15 def property(name, type, ={}) properties[name.to_sym] = Property.new(name, type, ).tap do |property| include type.mongomodel_accessors(property) if type.respond_to?(:mongomodel_accessors) end end |