Class: Atom::Xml::Parseable::ParseSpec
- Inherits:
-
Object
- Object
- Atom::Xml::Parseable::ParseSpec
- Defined in:
- lib/atom/xml/parser.rb
Overview
Contains the specification for how an element should be parsed.
This should not need to be constructed directly, instead use the element and elements macros in the declaration of the class.
See Parseable.
Instance Attribute Summary collapse
-
#attribute ⇒ Object
readonly
:nodoc:.
-
#name ⇒ Object
readonly
:nodoc:.
-
#options ⇒ Object
readonly
:nodoc:.
Instance Method Summary collapse
-
#initialize(name, options = {}) ⇒ ParseSpec
constructor
A new instance of ParseSpec.
-
#parse(target, xml) ⇒ Object
Parses a chunk of XML according the specification.
- #single? ⇒ Boolean
Constructor Details
#initialize(name, options = {}) ⇒ ParseSpec
Returns a new instance of ParseSpec.
375 376 377 378 379 |
# File 'lib/atom/xml/parser.rb', line 375 def initialize(name, = {}) @name = name.to_s @attribute = Atom.to_attrname(name) @options = end |
Instance Attribute Details
#attribute ⇒ Object (readonly)
:nodoc:
373 374 375 |
# File 'lib/atom/xml/parser.rb', line 373 def attribute @attribute end |
#name ⇒ Object (readonly)
:nodoc:
373 374 375 |
# File 'lib/atom/xml/parser.rb', line 373 def name @name end |
#options ⇒ Object (readonly)
:nodoc:
373 374 375 |
# File 'lib/atom/xml/parser.rb', line 373 def @options end |
Instance Method Details
#parse(target, xml) ⇒ Object
Parses a chunk of XML according the specification. The data extracted will be assigned to the target object.
384 385 386 387 388 389 390 391 392 393 |
# File 'lib/atom/xml/parser.rb', line 384 def parse(target, xml) case [:type] when :single target.send("#{@attribute}=".to_sym, build(target, xml)) when :collection collection = target.send(@attribute.to_s) element = build(target, xml) collection << element end end |
#single? ⇒ Boolean
395 396 397 |
# File 'lib/atom/xml/parser.rb', line 395 def single? [:type] == :single end |