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