lib/ecommerce/resources/order_collection.rb in ecommerce-client-0.0.2 vs lib/ecommerce/resources/order_collection.rb in ecommerce-client-0.0.3

- old
+ new

@@ -1,61 +1,19 @@ module Ecommerce module Resources - # - # A wrapper to Ecommerce orders API. This wrapper represents a collection of orders and it's responsible for processing pagination information as well. + # A wrapper to Ecommerce orders API. # - - class OrderCollection < Base - - PAGE_REGEX = /page=(\d+)/ - - attr_reader :response, :orders, :headers - - def initialize(response) - @response = response - @orders = [] - @headers = response.headers['Link'].split(',') + class OrderCollection < Collection + def orders + collection end - def self.build(response) - self.new(response).build - end - - def build - build_orders - self - end - - def next_page - page_for(:next) - end - - def last_page - page_for(:last) - end - - def previous_page - page_for(:prev) - end - - def first_page - page_for(:first) - end - private - def page_for(page_rel) - header_link_for(page_rel).match(PAGE_REGEX)[1].to_i rescue nil - end - - def header_link_for(rel) - headers.select{|n| n =~ /rel=#{rel}/}.first - end - - def build_orders + def build_collection Ecommerce::Resources::Base.parsed_body(response).each do |order_attributes| - orders.push(Ecommerce::Resources::Order.new(order_attributes)) + collection.push(Ecommerce::Resources::Order.new(order_attributes)) end end end end end