Module: Representable::ClassMethods::Declarations

Defined in:
lib/representable.rb

Instance Method Summary collapse

Instance Method Details

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

Declares a represented document node collection.

Examples:

collection :products
collection :products, :from => :item
collection :products, :class => Product


182
183
184
185
# File 'lib/representable.rb', line 182

def collection(name, options={})
  options[:collection] = true
  property(name, options)
end

#hash(name = nil, options = {}) ⇒ Object



187
188
189
190
191
192
# File 'lib/representable.rb', line 187

def hash(name=nil, options={})
  return super() unless name  # allow Object.hash.
  
  options[:hash] = true
  property(name, options)
end

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

Declares a represented document node, which is usually a XML tag or a JSON key.

Examples:

property :name
property :name, :from => :title
property :name, :class => Name
property :name, :default => "Mike"
property :name, :render_nil => true
property :name, :readable => false
property :name, :writeable => false


171
172
173
# File 'lib/representable.rb', line 171

def property(name, options={})
  representable_attrs << definition_class.new(name, options)
end

#representable_attrsObject



152
153
154
# File 'lib/representable.rb', line 152

def representable_attrs
  @representable_attrs ||= build_config
end

#representation_wrap=(name) ⇒ Object



156
157
158
# File 'lib/representable.rb', line 156

def representation_wrap=(name)
  representable_attrs.wrap = name
end