Method: Raspar.add

Defined in:
lib/raspar.rb

.add(url, selector_map = nil, helper_module = nil, &block) ⇒ Object


65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/raspar.rb', line 65

def add(url, selector_map = nil, helper_module = nil, &block)
  if self.exist?(url)
    raise RasparException.new("Parser already exist for '#{url}'")
  end

  if selector_map 
    return DynamicParser.register(url, selector_map, helper_module)
  end

  klass_name = URI(url).host
                       .split('.')
                       .reject{|w| w == 'www'}
                       .collect{|w| w[0].upcase + w[1..-1] }
                       .join
                       .gsub(/\W/, '')

  klass = Class.new
  klass.send :include, Raspar
  klass.domain(url)
  klass.class_exec(&block) if block_given?

  Raspar.const_set(klass_name, klass)
end