Module: Representable::ClassMethods::Declarations
- Defined in:
- lib/representable.rb
Instance Method Summary collapse
-
#collection(name, options = {}) ⇒ Object
Declares a represented document node collection.
- #hash(name = nil, options = {}) ⇒ Object
-
#property(name, options = {}) ⇒ Object
Declares a represented document node, which is usually a XML tag or a JSON key.
- #representable_attrs ⇒ Object
- #representation_wrap=(name) ⇒ Object
Instance Method Details
#collection(name, options = {}) ⇒ Object
Declares a represented document node collection.
Examples:
collection :products
collection :products, :from => :item
collection :products, :class => Product
191 192 193 194 |
# File 'lib/representable.rb', line 191 def collection(name, ={}) [:collection] = true property(name, ) end |
#hash(name = nil, options = {}) ⇒ Object
196 197 198 199 200 201 |
# File 'lib/representable.rb', line 196 def hash(name=nil, ={}) return super() unless name # allow Object.hash. [:hash] = true property(name, ) 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
180 181 182 |
# File 'lib/representable.rb', line 180 def property(name, ={}) representable_attrs << definition_class.new(name, ) end |
#representable_attrs ⇒ Object
161 162 163 |
# File 'lib/representable.rb', line 161 def representable_attrs @representable_attrs ||= build_config end |
#representation_wrap=(name) ⇒ Object
165 166 167 |
# File 'lib/representable.rb', line 165 def representation_wrap=(name) representable_attrs.wrap = name end |