lib/pagseguro_catcher/transaction/shipping.rb in pagseguro_catcher-0.1.1 vs lib/pagseguro_catcher/transaction/shipping.rb in pagseguro_catcher-0.1.2
- old
+ new
@@ -1,25 +1,51 @@
module PagseguroCatcher
module Transaction
+ # This class is responsable for parsing the shipping values of the xml.
+ #
+ # The part that it parsers is the following:
+ #
+ # <shipping>
+ # <address>
+ # <street>Av. Brig. Faria Lima</street>
+ # <number>1384</number>
+ # <complement>5o andar</complement>
+ # <district>Jardim Paulistano</district>
+ # <postalCode>01452002</postalCode>
+ # <city>Sao Paulo</city>
+ # <state>SP</state>
+ # <country>BRA</country>
+ # </address>
+ # <type>1</type>
+ # <cost>21.50</cost>
+ # </shipping>
class Shipping < Transaction::Body
def initialize(body)
self.body = body[:shipping]
end
+ # Returns the zip number as a string
+ # shipping.zip # => "012345"
def zip
self[:address][:postalCode]
end
+ # The human readable value for the shipping type
+ # shipping.human_type # => "Encomenda normal (PAC)"
def human_type
SHIPPING_TYPES[self[:type].to_i]
end
+ # The the shipping cost as a float
+ # shipping.cost # => 21.50
def cost
self[:cost].to_f
end
+ # method_missing will try to find anything inside the address node
+ # shipping.street # => "Av. Brig. Faria Lima"
def method_missing(name, *args)
return self[:address][name] if self.body[:address].has_key?(name.to_sym)
super
end
\ No newline at end of file