lib/quickbooks/qbxml_base.rb in quickbooks_api-0.0.3 vs lib/quickbooks/qbxml_base.rb in quickbooks_api-0.0.4
- old
+ new
@@ -4,42 +4,26 @@
include Quickbooks::Support::QBXML
extend Quickbooks::Support
extend Quickbooks::Support::API
-#QB_TYPE_CONVERSION_MAP= {
- #"AMTTYPE" => lambda {|d| String(d)},
- #"BOOLTYPE" => lambda {|d| String(d)},
- #"DATETIMETYPE" => lambda {|d| Date.parse(d)},
- #"DATETYPE" => lambda {|d| Date.parse(d)},
- #"ENUMTYPE" => lambda {|d| String(d)},
- #"FLOATTYPE" => lambda {|d| String(d)},
- #"GUIDTYPE" => lambda {|d| String(d)},
- #"IDTYPE" => lambda {|d| String(d)},
- #"INTTYPE" => lambda {|d| Integer(d)},
- #"PERCENTTYPE" => lambda {|d| Float(d)},
- #"PRICETYPE" => lambda {|d| Float(d)},
- #"QUANTYPE" => lambda {|d| Integer(d)},
- #"STRTYPE" => lambda {|d| String(d)},
- #"TIMEINTERVALTYPE" => lambda {|d| String(d)}
-#}
-
QB_TYPE_CONVERSION_MAP= {
- "AMTTYPE" => lambda {|d| String(d)},
- "BOOLTYPE" => lambda {|d| String(d)},
- "DATETIMETYPE" => lambda {|d| String(d)},
- "DATETYPE" => lambda {|d| String(d)},
- "ENUMTYPE" => lambda {|d| String(d)},
- "FLOATTYPE" => lambda {|d| String(d)},
- "GUIDTYPE" => lambda {|d| String(d)},
- "IDTYPE" => lambda {|d| String(d)},
- "INTTYPE" => lambda {|d| String(d)},
- "PERCENTTYPE" => lambda {|d| String(d)},
- "PRICETYPE" => lambda {|d| String(d)},
- "QUANTYPE" => lambda {|d| String(d)},
- "STRTYPE" => lambda {|d| String(d)},
- "TIMEINTERVALTYPE" => lambda {|d| String(d)}
+ "AMTTYPE" => lambda {|d| d ? Float(d) : 0.0 },
+ #"BOOLTYPE" => lambda {|d| d ? (d == 'True' ? true : false) : false },
+ "BOOLTYPE" => lambda {|d| d ? String(d) : '' },
+ "DATETIMETYPE" => lambda {|d| d ? Time.parse(d).xmlschema : Time.now.xmlschema },
+ "DATETYPE" => lambda {|d| d ? Date.parse(d).xmlschema : Date.today.xmlschema },
+ "ENUMTYPE" => lambda {|d| d ? String(d) : ''},
+ "FLOATTYPE" => lambda {|d| d ? Float(d) : 0.0},
+ "GUIDTYPE" => lambda {|d| d ? String(d) : ''},
+ "IDTYPE" => lambda {|d| d ? String(d) : ''},
+ "INTTYPE" => lambda {|d| d ? Integer(d) : 0 },
+ "PERCENTTYPE" => lambda {|d| d ? Float(d) : 0.0 },
+ "PRICETYPE" => lambda {|d| d ? Float(d) : 0.0 },
+ "QUANTYPE" => lambda {|d| d ? Integer(d.to_i) : 0 },
+ "STRTYPE" => lambda {|d| d ? String(d) : ''},
+ "TIMEINTERVALTYPE" => lambda {|d| d ? String(d) : ''}
}
def initialize(params = nil)
return unless params.is_a?(Hash)
@@ -99,10 +83,12 @@
self.class.attribute_names.inject({}) do |h, m|
h[m] = self.send(m); h
end
values = top_level_attrs.values.compact
- if values.size > 1 || values.first.is_a?(Array)
+ if values.empty?
+ {}
+ elsif values.size > 1 || values.first.is_a?(Array)
attributes
else
values.first.inner_attributes
end
end