Class: Scraping::Rules::Section
- Inherits:
-
Object
- Object
- Scraping::Rules::Section
- Includes:
- DSL
- Defined in:
- lib/scraping/rules/section.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#selector ⇒ Object
readonly
Returns the value of attribute selector.
Instance Method Summary collapse
- #call(scraper, node) ⇒ Object
- #evaluate(&block) ⇒ Object
-
#initialize(name, selector = '.') ⇒ Section
constructor
A new instance of Section.
Methods included from DSL
#element, #elements, #rules, #section, #sections
Constructor Details
#initialize(name, selector = '.') ⇒ Section
Returns a new instance of Section.
9 10 11 12 |
# File 'lib/scraping/rules/section.rb', line 9 def initialize(name, selector = '.') @name = name @selector = selector end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
7 8 9 |
# File 'lib/scraping/rules/section.rb', line 7 def name @name end |
#selector ⇒ Object (readonly)
Returns the value of attribute selector.
7 8 9 |
# File 'lib/scraping/rules/section.rb', line 7 def selector @selector end |
Instance Method Details
#call(scraper, node) ⇒ Object
19 20 21 22 23 24 |
# File 'lib/scraping/rules/section.rb', line 19 def call(scraper, node) rules.inject(OpenStruct.new) do |obj, (name, rule)| obj[name] = rule.call scraper, node.at(selector) obj end end |
#evaluate(&block) ⇒ Object
14 15 16 17 |
# File 'lib/scraping/rules/section.rb', line 14 def evaluate(&block) instance_eval(&block) self end |