Module: SpiderCore::FieldDSL

Included in:
MicroSpider
Defined in:
lib/spider_core/field_dsl.rb

Instance Method Summary collapse

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.

Parameters:

  • display (String)

    display name



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