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
182 183 184 185 |
# File 'lib/representable.rb', line 182 def collection(name, ={}) [:collection] = true property(name, ) end |
#hash(name = nil, options = {}) ⇒ Object
187 188 189 190 191 192 |
# File 'lib/representable.rb', line 187 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
171 172 173 |
# File 'lib/representable.rb', line 171 def property(name, ={}) representable_attrs << definition_class.new(name, ) end |
#representable_attrs ⇒ Object
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 |