lib/xero_gateway/currency.rb in xero_gateway-2.1.0 vs lib/xero_gateway/currency.rb in xero_gateway-2.3.0
- old
+ new
@@ -1,56 +1,10 @@
module XeroGateway
- class Currency
-
- unless defined? ATTRS
- ATTRS = {
- "Code" => :string, # 3 letter alpha code for the currency – see list of currency codes
- "Description" => :string, # Name of Currency
- }
- end
-
- attr_accessor *ATTRS.keys.map(&:underscore)
-
- def initialize(params = {})
- params.each do |k,v|
- self.send("#{k}=", v)
- end
- end
-
- def ==(other)
- ATTRS.keys.map(&:underscore).each do |field|
- return false if send(field) != other.send(field)
- end
- return true
- end
-
- def to_xml
- b = Builder::XmlMarkup.new
-
- b.Currency do
- ATTRS.keys.each do |attr|
- eval("b.#{attr} '#{self.send(attr.underscore.to_sym)}'")
- end
- end
- end
-
- def self.from_xml(currency_element)
- Currency.new.tap do |currency|
- currency_element.children.each do |element|
-
- attribute = element.name
- underscored_attribute = element.name.underscore
-
- raise "Unknown attribute: #{attribute}" unless ATTRS.keys.include?(attribute)
-
- case (ATTRS[attribute])
- when :boolean then currency.send("#{underscored_attribute}=", (element.text == "true"))
- when :float then currency.send("#{underscored_attribute}=", element.text.to_f)
- else currency.send("#{underscored_attribute}=", element.text)
- end
-
- end
- end
- end
-
+ class Currency < BaseRecord
+
+ attributes({
+ "Code" => :string, # 3 letter alpha code for the currency – see list of currency codes
+ "Description" => :string, # Name of Currency
+ })
+
end
-end
\ No newline at end of file
+end