Module: ProductSpy

Defined in:
lib/product_spy.rb,
lib/product_spy/host.rb,
lib/product_spy/version.rb,
lib/product_spy/configuration.rb

Defined Under Namespace

Classes: Configuration, Host

Constant Summary collapse

VERSION =
"0.0.5"

Class Method Summary collapse

Class Method Details

.build(host, pk, options = {}) ⇒ Object

Build the url for a given host and primary key

Example

ProductSpy.build('amazon.de', ['B004O9DF6O']) # => https://www.amazon.de/dp/B004O9DF6O


76
77
78
79
80
81
82
83
# File 'lib/product_spy.rb', line 76

def self.build(host, pk, options = {})
  options = {
    :type => :default
  }.merge(options)

  host = Configuration.instance.hosts[host.to_sym]
  host.make_url(pk, options)
end

.parse(url) ⇒ Object

Get the primary key of a given url

Example

ProductSpy.parse('https://www.amazon.de/dp/B004O9DF6O') => ['www.amazon.de', ['B004O9DF6O']]


92
93
94
95
96
97
98
# File 'lib/product_spy.rb', line 92

def self.parse(url)
  uri = Addressable::URI.parse(url)
  host = Configuration.instance.hosts[uri.host.downcase.to_sym] unless uri.nil? or uri.host.nil?
  return nil if host.nil?
  return nil if (pk = host.make_pk(url)).nil?
  [host.host_name.downcase, pk]
end

.setup {|Configuration.instance| ... } ⇒ Object

Yields:



25
26
27
# File 'lib/product_spy/configuration.rb', line 25

def self.setup(&block)
  yield Configuration.instance
end