Sha256: 474f4b327ea7c7e4cb594caa4282a81605ec867a04c6b9fd2e99a0e6c3a73555
Contents?: true
Size: 1.86 KB
Versions: 3
Compression:
Stored size: 1.86 KB
Contents
module PagSeguro class Order # The list of products added to the order attr_accessor :products # Define the shipping type. # Can be EN (PAC) or SD (Sedex) attr_accessor :shipping_type def initialize(order_id = nil) reset! self.id = order_id end # Set the order identifier. Should be a unique # value to identify this order on your own application def id=(identifier) @id = identifier end # Get the order identifier def id @id end # Remove all products from this order def reset! @products = [] end # Add a new product to the PagSeguro order # The allowed values are: # - weight (Optional. If float, will be multiplied by 1000g) # - shipping (Optional. If float, will be multiplied by 100 cents) # - quantity (Optional. Defaults to 1) # - price (Required. If float, will be multiplied by 100 cents) # - description (Required. Identifies the product) # - id (Required. Should match the product on your database) # - fees (Optional. If float, will be multiplied by 100 cents) def <<(options) options = { :weight => nil, :shipping => nil, :fees => nil, :quantity => 1 }.merge(options) # convert shipping to cents options[:shipping] = convert_unit(options[:shipping], 100) # convert fees to cents options[:fees] = convert_unit(options[:fees], 100) # convert price to cents options[:price] = convert_unit(options[:price], 100) # convert weight to grammes options[:weight] = convert_unit(options[:weight], 1000) products.push(options) end def add(options) self << options end private def convert_unit(number, unit) number = (number * unit).to_i unless number.nil? || number.kind_of?(Integer) number end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
pagseguro-0.1.2 | lib/pagseguro/order.rb |
pagseguro-0.1.1 | lib/pagseguro/order.rb |
pagseguro-0.1.0 | lib/pagseguro/order.rb |