Sha256: e9177298943748c5424d574502317ba37b742cac0385350c7fd7c0c09eda7703

Contents?: true

Size: 672 Bytes

Versions: 2

Compression:

Stored size: 672 Bytes

Contents

module Kosher
  class Item < Struct.new(:asin, :offers, :sales_rank)

    class << self
      def build(doc)
        asin       = doc['ASIN']
        sales_rank = doc['SalesRank'].to_i
        offers     = build_offers(doc['Offers']['Offer'])

        new(asin, offers, sales_rank)
      end

      private

      def build_offers(offers)
        [offers].flatten.compact.map do |offer|

          # Senify Yen because Ruby Money says so
          price = offer['OfferListing']['Price']
          if price['CurrencyCode'] == 'JPY'
            price['Amount'] = price['Amount'].to_i * 100
          end

          Offer.build(offer)
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
kosher-0.1.4 lib/kosher/item.rb
kosher-0.1.3 lib/kosher/item.rb