Class: PaysonAPI::OrderItem

Inherits:
Object
  • Object
show all
Defined in:
lib/payson_api/order_item.rb

Constant Summary collapse

FORMAT_STRING =
"orderItemList.orderItem(%d).%s"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(description, unit_price, quantity, tax, sku) ⇒ OrderItem

Returns a new instance of OrderItem.



8
9
10
11
12
13
14
# File 'lib/payson_api/order_item.rb', line 8

def initialize(description, unit_price, quantity, tax, sku)
  @description = description
  @unit_price = unit_price
  @quantity = quantity
  @tax = tax
  @sku = sku
end

Instance Attribute Details

#descriptionObject

Returns the value of attribute description.



5
6
7
# File 'lib/payson_api/order_item.rb', line 5

def description
  @description
end

#quantityObject

Returns the value of attribute quantity.



5
6
7
# File 'lib/payson_api/order_item.rb', line 5

def quantity
  @quantity
end

#skuObject

Returns the value of attribute sku.



5
6
7
# File 'lib/payson_api/order_item.rb', line 5

def sku
  @sku
end

#taxObject

Returns the value of attribute tax.



5
6
7
# File 'lib/payson_api/order_item.rb', line 5

def tax
  @tax
end

#unit_priceObject

Returns the value of attribute unit_price.



5
6
7
# File 'lib/payson_api/order_item.rb', line 5

def unit_price
  @unit_price
end

Class Method Details

.parse(data) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/payson_api/order_item.rb', line 30

def self.parse(data)
  [].tap do |order_items|
    i = 0
    while data[FORMAT_STRING % [i, 'description']]
      description = CGI.unescape(data[FORMAT_STRING % [i, 'description']].to_s)
      unit_price = data[FORMAT_STRING % [i, 'unitPrice']]
      quantity = data[FORMAT_STRING % [i, 'quantity']]
      tax = data[FORMAT_STRING % [i, 'taxPercentage']]
      sku = data[FORMAT_STRING % [i, 'sku']]

      order_items << OrderItem.new(
        description,
        unit_price,
        quantity,
        tax,
        sku
      )
      i += 1
    end
  end
end

.to_hash(order_items) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/payson_api/order_item.rb', line 16

def self.to_hash(order_items)
  {}.tap do |hash|
    order_items.each_with_index do |item, index|
      hash.merge!({
        FORMAT_STRING % [index, 'description'] => item.description,
        FORMAT_STRING % [index, 'unitPrice'] => item.unit_price,
        FORMAT_STRING % [index, 'quantity'] => item.quantity,
        FORMAT_STRING % [index, 'taxPercentage'] => item.tax,
        FORMAT_STRING % [index, 'sku'] => item.sku
      })
    end
  end
end