Module: MongoModel::Properties::ClassMethods

Defined in:
lib/mongomodel/concerns/properties.rb

Instance Method Summary collapse

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_propertiesObject



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_propertiesObject



29
30
31
# File 'lib/mongomodel/concerns/properties.rb', line 29

def model_properties
  properties.reject { |k, p| p.internal? }
end

#propertiesObject



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, options={})
  properties[name.to_sym] = Property.new(name, type, options).tap do |property|
    include type.mongomodel_accessors(property) if type.respond_to?(:mongomodel_accessors)
  end
end