class Digger::Model

Public Class Methods

index_config() click to toggle source

index page

# File lib/digger/model.rb, line 34
def index_config
  @@digger_config['index'][name]
end
index_page(pattern, *args) click to toggle source
# File lib/digger/model.rb, line 38
def index_page(pattern, *args)
  @@digger_config['index'][name] = Index.new(pattern, args)
end
index_page?() click to toggle source
# File lib/digger/model.rb, line 42
def index_page?
  !index_config.nil?
end
pattern_config() click to toggle source

patterns

# File lib/digger/model.rb, line 11
def pattern_config
  @@digger_config['pattern'][name] ||= {}
end
validate_includeness(*keys) click to toggle source
# File lib/digger/model.rb, line 28
def validate_includeness(*keys)
  is_all = pattern_config.keys.all? { |k| keys.include?(k) }
  raise "Pattern keys #{(pattern_config.keys - keys).join(', ')} should not be included" if is_all
end
validate_presence(*keys) click to toggle source
# File lib/digger/model.rb, line 23
def validate_presence(*keys)
  is_all = pattern_config.keys.all? { |k| keys.include?(k) }
  raise "Pattern keys #{(keys - keys_all).join(', ')} should be present" unless is_all
end

Public Instance Methods

dig(cocurrence = 1) click to toggle source
# File lib/digger/model.rb, line 65
def dig(cocurrence = 1)
  if self.class.index_page?
    self.class.index_config.process(cocurrence) do |url|
      dig_url(url)
    end
  end
end
dig_url(url, opts = {}) click to toggle source
# File lib/digger/model.rb, line 55
def dig_url(url, opts = {})
  client = Digger::HTTP.new(opts)
  page = client.fetch_page(url)
  match_page(page)
end
dig_urls(urls, cocurrence = 1, opts = {}) click to toggle source
# File lib/digger/model.rb, line 61
def dig_urls(urls, cocurrence = 1, opts = {})
  Index.batch(urls, cocurrence) { |url| dig_url(url, opts) }
end
match_page(page) click to toggle source
# File lib/digger/model.rb, line 47
def match_page(page)
  result = {}
  self.class.pattern_config.each_pair do |key, pattern|
    result[key] = pattern.match_page(page)
  end
  result
end