Module: SpiderCore::FieldDSL
- Included in:
- MicroSpider
- Defined in:
- lib/spider_core/field_dsl.rb
Instance Method Summary collapse
- #css_field(display, pattern, opts = {}, &block) ⇒ Object
- #css_fields(display, pattern, opts = {}, &block) ⇒ Object
-
#field(display, pattern, opts = {}, &block) ⇒ Object
Get a field on current page.
- #fields(display, pattern, opts = {}, &block) ⇒ Object
- #foreach(pattern, opts = {}, &block) ⇒ Object
- #xpath_field(display, pattern, opts = {}, &block) ⇒ Object
- #xpath_fields(display, pattern, opts = {}, &block) ⇒ Object
Instance Method Details
#css_field(display, pattern, opts = {}, &block) ⇒ Object
14 15 16 |
# File 'lib/spider_core/field_dsl.rb', line 14 def css_field(display, pattern, opts = {}, &block) field(display, pattern, opts.merge(kind: :css), &block) end |
#css_fields(display, pattern, opts = {}, &block) ⇒ Object
29 30 31 |
# File 'lib/spider_core/field_dsl.rb', line 29 def css_fields(display, pattern, opts = {}, &block) fields(display, pattern, opts.merge(kind: :css), &block) end |
#field(display, pattern, opts = {}, &block) ⇒ Object
Get a field on current page.
7 8 9 10 11 12 |
# File 'lib/spider_core/field_dsl.rb', line 7 def field(display, pattern, opts = {}, &block) kind = opts[:kind] || :css actions << lambda { action_for(:field, {display: display, pattern: pattern, kind: kind}, opts, &block) } end |
#fields(display, pattern, opts = {}, &block) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/spider_core/field_dsl.rb', line 22 def fields(display, pattern, opts = {}, &block) kind = opts[:kind] || :css actions << lambda { action_for(:fields, {display: display, pattern: pattern, kind: kind}, opts, &block) } end |
#foreach(pattern, opts = {}, &block) ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/spider_core/field_dsl.rb', line 37 def foreach(pattern, opts = {}, &block) return unless block_given? kind = opts[:kind] || :css actions << lambda { scan_all(kind, pattern).each do |element| yield(element) end } end |
#xpath_field(display, pattern, opts = {}, &block) ⇒ Object
18 19 20 |
# File 'lib/spider_core/field_dsl.rb', line 18 def xpath_field(display, pattern, opts = {}, &block) field(display, pattern, opts.merge(kind: :xpath), &block) end |
#xpath_fields(display, pattern, opts = {}, &block) ⇒ Object
33 34 35 |
# File 'lib/spider_core/field_dsl.rb', line 33 def xpath_fields(display, pattern, opts = {}, &block) fields(display, pattern, opts.merge(kind: :xpath), &block) end |