Module: Spidy::Binder::Xml
- Defined in:
- lib/spidy/binder/xml.rb
Overview
Bind xml and convert to object
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.extended(obj) ⇒ Object
24 25 26 |
# File 'lib/spidy/binder/xml.rb', line 24 def self.extended(obj) obj.alias_method :xml, :resource end |
Instance Method Details
#let(name, query = nil, &block) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/spidy/binder/xml.rb', line 7 def let(name, query = nil, &block) @attribute_names ||= [] @attribute_names << name return define_method(name) { xml.at(query)&.text&.strip } if block.nil? define_method(name) do if query.present? instance_exec(xml.at(query), &block) else instance_exec(&block) end rescue StandardError => e raise Spidy::Binder::Error, "spidy(#{@define_name})##{name} => #{e.}" end end |