Module: CouchPotato::Persistence::Properties::ClassMethods

Defined in:
lib/couch_potato/persistence/properties.rb

Instance Method Summary collapse

Instance Method Details

#property(name, options = {}) ⇒ Object

Declare a property on a model class. Properties are not typed by default. You can store anything in a property that can be serialized into JSON. If you want a property to be of a custom class you have to define it using the :type option.

example: class Book property :title property :year property :publisher, :type => Publisher end



72
73
74
# File 'lib/couch_potato/persistence/properties.rb', line 72

def property(name, options = {})
  properties << SimpleProperty.new(self, name, options)
end

#property_namesObject

returns all the property names of a model class that have been defined using the #property method

example: class Book property :title property :year end Book.property_names # => [:title, :year]



58
59
60
# File 'lib/couch_potato/persistence/properties.rb', line 58

def property_names
  properties.map(&:name)
end