Sha256: e8a816c3e00661983373211c0b13b843b21ae4962b6dd320a1e8a7337c258c29
Contents?: true
Size: 1.63 KB
Versions: 2
Compression:
Stored size: 1.63 KB
Contents
module AmazonAssociate # Response object returned after a REST call to Amazon service. class Response attr_accessor :request_url, :unsigned_url # XML input is in string format def initialize(xml, request_url) @doc = Hpricot(xml) @items = nil @item_page = nil @total_results = nil @total_pages = nil self.request_url = request_url end # Return Hpricot object. def doc @doc end # Return true if request is valid. def is_valid_request? (@doc/"isvalid").inner_html == "True" end # Return true if response has an error. def has_error? !(error.nil? || error.empty?) end # Return error message. def error Element.get(@doc, "error/message") end # Return an array of AmazonAssociate::Element item objects. def items unless @items @items = (@doc/"item").collect {|item| Element.new(item)} end @items end # Return the first item (AmazonAssociate::Element) def first_item items.first end # Return current page no if :item_page option is when initiating the request. def item_page unless @item_page @item_page = (@doc/"itemsearchrequest/itempage").inner_html.to_i end @item_page end # Return total results. def total_results unless @total_results @total_results = (@doc/"totalresults").inner_html.to_i end @total_results end # Return total pages. def total_pages unless @total_pages @total_pages = (@doc/"totalpages").inner_html.to_i end @total_pages end end end
Version data entries
2 entries across 2 versions & 2 rubygems
Version | Path |
---|---|
dpickett-amazon_associate-0.7.0 | lib/amazon_associate/response.rb |
amazon_associate-0.7.0 | lib/amazon_associate/response.rb |