class PriceGrabber::Request
Attributes
environment[R]
Public Class Methods
new(version:, pid:, key:, asin: nil, q: nil, masterid: nil, upc: nil, environment: :staging, driver: :net_http)
click to toggle source
# File lib/pricegrabber/request.rb, line 8 def initialize(version:, pid:, key:, asin: nil, q: nil, masterid: nil, upc: nil, environment: :staging, driver: :net_http) @environment = environment @version = version @pid = pid @key = key @asin = asin @q = q @upc = upc @masterid = [*masterid] @driver = driver @wants = [] end
Public Instance Methods
call()
click to toggle source
# File lib/pricegrabber/request.rb, line 50 def call request = HTTPI::Request.new request.url = to_s resp = HTTPI.get(request, @driver) PriceGrabber::Response.new(resp, @wants) end
pluck(*attributes)
click to toggle source
# File lib/pricegrabber/request.rb, line 57 def pluck(*attributes) @wants = attributes.map(&:to_s) self end
to_curl()
click to toggle source
# File lib/pricegrabber/request.rb, line 46 def to_curl "curl -G '#{to_s}'" end
to_s()
click to toggle source
# File lib/pricegrabber/request.rb, line 42 def to_s to_uri.to_s end
to_uri()
click to toggle source
# File lib/pricegrabber/request.rb, line 21 def to_uri uri = ::URI::HTTP.build({}) uri.scheme = "http" if @environment == :production uri.host = "sws.pricegrabber.com" else uri.host = "sws.api.pricegrabber.com" end uri.path = "/search_xml.php" uri.query = [ version, pid, key, asin, q, upc, masterid, ].compact.sort.join("&") uri end
Private Instance Methods
asin()
click to toggle source
# File lib/pricegrabber/request.rb, line 76 def asin if @asin "asin=#{@asin}" end end
key()
click to toggle source
# File lib/pricegrabber/request.rb, line 72 def key "key=#{@key}" end
masterid()
click to toggle source
# File lib/pricegrabber/request.rb, line 94 def masterid case @masterid.length when 0 nil when 1 "masterid=#{@masterid.join(",")}" else "masterids=#{@masterid.join(",")}" end end
pid()
click to toggle source
# File lib/pricegrabber/request.rb, line 68 def pid "pid=#{@pid}" end
q()
click to toggle source
# File lib/pricegrabber/request.rb, line 82 def q if @q "q=#{@q.gsub(/\s/, '+')}" end end
upc()
click to toggle source
# File lib/pricegrabber/request.rb, line 88 def upc if @upc "upc=#{@upc}" end end
version()
click to toggle source
# File lib/pricegrabber/request.rb, line 64 def version "version=#{@version}" end