quickbooks 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (186) hide show
  1. data/README +9 -5
  2. data/Rakefile +2 -2
  3. data/doc/classes/Array.html +244 -0
  4. data/doc/classes/Array.src/M000001.html +18 -0
  5. data/doc/classes/Array.src/M000002.html +19 -0
  6. data/doc/classes/Array.src/M000003.html +18 -0
  7. data/doc/classes/Array.src/M000004.html +23 -0
  8. data/doc/classes/Array.src/M000005.html +18 -0
  9. data/doc/classes/Array.src/M000006.html +21 -0
  10. data/doc/classes/Array.src/M000007.html +18 -0
  11. data/doc/classes/Array.src/M000008.html +18 -0
  12. data/doc/classes/Class.html +5 -5
  13. data/doc/classes/Class.src/{M000003.html → M000027.html} +1 -1
  14. data/doc/classes/Hash.html +264 -14
  15. data/doc/classes/Hash.src/M000009.html +18 -0
  16. data/doc/classes/Hash.src/M000010.html +21 -0
  17. data/doc/classes/Hash.src/M000011.html +18 -0
  18. data/doc/classes/Hash.src/M000012.html +21 -0
  19. data/doc/classes/Hash.src/M000013.html +18 -0
  20. data/doc/classes/Hash.src/{M000001.html → M000014.html} +6 -5
  21. data/doc/classes/Hash.src/{M000002.html → M000015.html} +6 -2
  22. data/doc/classes/Hash.src/M000016.html +20 -0
  23. data/doc/classes/Hash.src/M000017.html +18 -0
  24. data/doc/classes/Hash.src/M000018.html +20 -0
  25. data/doc/classes/Hash.src/M000019.html +38 -0
  26. data/doc/classes/{Quickbooks/Qbxml/Error.src/M000031.html → Hash.src/M000020.html} +5 -5
  27. data/doc/classes/Hash.src/M000021.html +18 -0
  28. data/doc/classes/Hash.src/M000022.html +20 -0
  29. data/doc/classes/Hash.src/M000023.html +18 -0
  30. data/doc/classes/Hash.src/M000024.html +18 -0
  31. data/doc/classes/Hash.src/M000025.html +18 -0
  32. data/doc/classes/Hash.src/M000026.html +22 -0
  33. data/doc/classes/Object.html +56 -22
  34. data/doc/classes/Object.src/{M000004.html → M000028.html} +0 -0
  35. data/doc/classes/Object.src/{M000005.html → M000029.html} +0 -0
  36. data/doc/classes/Object.src/{M000006.html → M000030.html} +1 -1
  37. data/doc/classes/Object.src/{M000007.html → M000031.html} +0 -0
  38. data/doc/classes/Object.src/M000032.html +18 -0
  39. data/doc/classes/Object.src/M000033.html +18 -0
  40. data/doc/classes/QBHelpers/Ole.html +17 -17
  41. data/doc/classes/QBHelpers/Ole.src/{M000066.html → M000108.html} +0 -0
  42. data/doc/classes/QBHelpers/Ole.src/{M000067.html → M000109.html} +0 -0
  43. data/doc/classes/QBHelpers/Ole.src/{M000068.html → M000110.html} +0 -0
  44. data/doc/classes/Quickbooks.html +44 -4
  45. data/doc/classes/Quickbooks/{Qbxml/Error.html → Address.html} +14 -43
  46. data/doc/classes/Quickbooks/Address.src/M000107.html +19 -0
  47. data/doc/classes/Quickbooks/Base.html +118 -243
  48. data/doc/classes/Quickbooks/Base.src/{M000034.html → M000080.html} +1 -1
  49. data/doc/classes/Quickbooks/Base.src/{M000035.html → M000081.html} +1 -1
  50. data/doc/classes/Quickbooks/Base.src/{M000036.html → M000082.html} +1 -1
  51. data/doc/classes/Quickbooks/Base.src/{M000037.html → M000083.html} +1 -1
  52. data/doc/classes/Quickbooks/Base.src/M000084.html +23 -0
  53. data/doc/classes/Quickbooks/Base.src/{M000041.html → M000085.html} +1 -1
  54. data/doc/classes/Quickbooks/Base.src/{M000042.html → M000086.html} +2 -2
  55. data/doc/classes/Quickbooks/Base.src/{M000043.html → M000087.html} +3 -2
  56. data/doc/classes/Quickbooks/Base.src/M000088.html +19 -0
  57. data/doc/classes/Quickbooks/Base.src/{M000045.html → M000089.html} +1 -1
  58. data/doc/classes/Quickbooks/Base.src/M000090.html +19 -0
  59. data/doc/classes/Quickbooks/Base.src/{M000052.html → M000091.html} +1 -1
  60. data/doc/classes/Quickbooks/Base.src/M000092.html +45 -0
  61. data/doc/classes/Quickbooks/Base.src/{M000054.html → M000093.html} +2 -2
  62. data/doc/classes/Quickbooks/Base.src/M000094.html +18 -0
  63. data/doc/classes/Quickbooks/Base.src/M000095.html +20 -0
  64. data/doc/classes/Quickbooks/BillAddress.html +113 -0
  65. data/doc/classes/Quickbooks/Connection.html +68 -68
  66. data/doc/classes/Quickbooks/Connection.src/{M000056.html → M000097.html} +0 -0
  67. data/doc/classes/Quickbooks/Connection.src/{M000057.html → M000098.html} +0 -0
  68. data/doc/classes/Quickbooks/Connection.src/{M000058.html → M000099.html} +0 -1
  69. data/doc/classes/Quickbooks/Connection.src/{M000059.html → M000100.html} +1 -1
  70. data/doc/classes/Quickbooks/Connection.src/{M000060.html → M000101.html} +1 -1
  71. data/doc/classes/Quickbooks/Connection.src/{M000061.html → M000102.html} +2 -2
  72. data/doc/classes/Quickbooks/Connection.src/{M000062.html → M000103.html} +1 -1
  73. data/doc/classes/Quickbooks/Connection.src/{M000063.html → M000104.html} +1 -1
  74. data/doc/classes/Quickbooks/Connection.src/{M000064.html → M000105.html} +1 -1
  75. data/doc/classes/Quickbooks/Connection.src/{M000065.html → M000106.html} +2 -2
  76. data/doc/classes/Quickbooks/CreditCardInfo.html +113 -0
  77. data/doc/classes/Quickbooks/CustomerTypeRef.html +113 -0
  78. data/doc/classes/Quickbooks/ItemSalesTaxRef.html +113 -0
  79. data/doc/classes/Quickbooks/JobTypeRef.html +113 -0
  80. data/doc/classes/Quickbooks/ListItem.html +21 -44
  81. data/doc/classes/Quickbooks/ListItem.src/M000078.html +19 -0
  82. data/doc/classes/Quickbooks/ListItem.src/M000079.html +18 -0
  83. data/doc/classes/Quickbooks/Model.html +469 -0
  84. data/doc/classes/Quickbooks/Model.src/M000059.html +24 -0
  85. data/doc/classes/Quickbooks/Model.src/M000060.html +18 -0
  86. data/doc/classes/Quickbooks/Model.src/M000061.html +18 -0
  87. data/doc/classes/Quickbooks/Model.src/M000062.html +18 -0
  88. data/doc/classes/Quickbooks/Model.src/M000063.html +18 -0
  89. data/doc/classes/Quickbooks/Model.src/M000064.html +18 -0
  90. data/doc/classes/Quickbooks/Model.src/M000065.html +32 -0
  91. data/doc/classes/Quickbooks/Model.src/M000066.html +32 -0
  92. data/doc/classes/Quickbooks/Model.src/M000067.html +18 -0
  93. data/doc/classes/Quickbooks/{Base.src/M000046.html → Model.src/M000068.html} +2 -3
  94. data/doc/classes/Quickbooks/{Base.src/M000047.html → Model.src/M000069.html} +4 -4
  95. data/doc/classes/Quickbooks/{Base.src/M000048.html → Model.src/M000070.html} +2 -2
  96. data/doc/classes/Quickbooks/{Base.src/M000049.html → Model.src/M000071.html} +2 -2
  97. data/doc/classes/Quickbooks/{Base.src/M000050.html → Model.src/M000072.html} +3 -3
  98. data/doc/classes/Quickbooks/{Base.src/M000051.html → Model.src/M000073.html} +6 -5
  99. data/doc/classes/Quickbooks/Model.src/M000074.html +28 -0
  100. data/doc/classes/Quickbooks/Model.src/M000075.html +28 -0
  101. data/doc/classes/Quickbooks/Model.src/M000076.html +21 -0
  102. data/doc/classes/Quickbooks/Model.src/M000077.html +23 -0
  103. data/doc/classes/Quickbooks/ParentRef.html +113 -0
  104. data/doc/classes/Quickbooks/PreferredPaymentMethodRef.html +113 -0
  105. data/doc/classes/Quickbooks/PriceLevelRef.html +113 -0
  106. data/doc/classes/Quickbooks/Qbxml.html +0 -5
  107. data/doc/classes/Quickbooks/Qbxml/Request.html +55 -23
  108. data/doc/classes/Quickbooks/Qbxml/Request.src/M000050.html +34 -0
  109. data/doc/classes/Quickbooks/Qbxml/Request.src/{M000025.html → M000051.html} +2 -2
  110. data/doc/classes/Quickbooks/Qbxml/Request.src/M000052.html +81 -0
  111. data/doc/classes/Quickbooks/Qbxml/RequestSet.html +20 -20
  112. data/doc/classes/Quickbooks/Qbxml/RequestSet.src/{M000027.html → M000053.html} +0 -0
  113. data/doc/classes/Quickbooks/Qbxml/RequestSet.src/{M000028.html → M000054.html} +0 -0
  114. data/doc/classes/Quickbooks/Qbxml/RequestSet.src/{M000029.html → M000055.html} +0 -0
  115. data/doc/classes/Quickbooks/Qbxml/RequestSet.src/{M000030.html → M000056.html} +0 -0
  116. data/doc/classes/Quickbooks/Qbxml/Response.html +46 -46
  117. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000015.html → M000041.html} +1 -1
  118. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000016.html → M000042.html} +1 -1
  119. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000017.html → M000043.html} +1 -2
  120. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000018.html → M000044.html} +1 -1
  121. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000019.html → M000045.html} +1 -1
  122. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000020.html → M000046.html} +1 -1
  123. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000021.html → M000047.html} +1 -1
  124. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000022.html → M000048.html} +1 -1
  125. data/doc/classes/Quickbooks/Qbxml/Response.src/{M000023.html → M000049.html} +22 -11
  126. data/doc/classes/Quickbooks/Qbxml/ResponseSet.html +35 -35
  127. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000008.html → M000034.html} +1 -1
  128. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000009.html → M000035.html} +1 -1
  129. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000010.html → M000036.html} +1 -1
  130. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000011.html → M000037.html} +1 -1
  131. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000012.html → M000038.html} +1 -1
  132. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000013.html → M000039.html} +1 -1
  133. data/doc/classes/Quickbooks/Qbxml/ResponseSet.src/{M000014.html → M000040.html} +1 -1
  134. data/doc/classes/Quickbooks/Ref.html +139 -0
  135. data/doc/classes/Quickbooks/Ref.src/M000096.html +18 -0
  136. data/doc/classes/Quickbooks/SalesRepRef.html +113 -0
  137. data/doc/classes/Quickbooks/SalesTaxCodeRef.html +113 -0
  138. data/doc/classes/Quickbooks/ShipAddress.html +113 -0
  139. data/doc/classes/Quickbooks/TermsRef.html +113 -0
  140. data/doc/classes/Quickbooks/Transaction.html +21 -62
  141. data/doc/classes/Quickbooks/Transaction.src/M000057.html +19 -0
  142. data/doc/classes/Quickbooks/Transaction.src/M000058.html +18 -0
  143. data/doc/created.rid +1 -1
  144. data/doc/files/README.html +15 -4
  145. data/doc/files/lib/quickbooks/base_rb.html +15 -8
  146. data/doc/files/lib/quickbooks/connection_rb.html +1 -1
  147. data/doc/files/lib/quickbooks/model_rb.html +108 -0
  148. data/doc/files/lib/quickbooks/{qbxml/error_rb.html → models/common/address_rb.html} +5 -5
  149. data/doc/files/lib/quickbooks/models/common/all_refs_rb.html +101 -0
  150. data/doc/files/lib/quickbooks/models/customer/credit_card_info_rb.html +101 -0
  151. data/doc/files/lib/quickbooks/models/customer_rb.html +10 -1
  152. data/doc/files/lib/quickbooks/models/list_item_rb.html +1 -1
  153. data/doc/files/lib/quickbooks/models/transaction_rb.html +1 -1
  154. data/doc/files/lib/quickbooks/ole_helper_rb.html +1 -1
  155. data/doc/files/lib/quickbooks/qbxml/request_rb.html +1 -1
  156. data/doc/files/lib/quickbooks/qbxml/response_rb.html +1 -2
  157. data/doc/files/lib/quickbooks/qbxml_rb.html +109 -0
  158. data/doc/files/lib/quickbooks/ruby_magic_rb.html +1 -1
  159. data/doc/fr_class_index.html +16 -1
  160. data/doc/fr_file_index.html +5 -1
  161. data/doc/fr_method_index.html +110 -68
  162. data/lib/quickbooks/base.rb +54 -95
  163. data/lib/quickbooks/connection.rb +2 -3
  164. data/lib/quickbooks/model.rb +176 -0
  165. data/lib/quickbooks/models/common/address.rb +14 -0
  166. data/lib/quickbooks/models/common/all_refs.rb +36 -0
  167. data/lib/quickbooks/models/customer.rb +30 -31
  168. data/lib/quickbooks/models/customer/credit_card_info.rb +5 -0
  169. data/lib/quickbooks/models/list_item.rb +27 -16
  170. data/lib/quickbooks/models/transaction.rb +21 -12
  171. data/lib/quickbooks/qbxml.rb +2 -0
  172. data/lib/quickbooks/qbxml/request.rb +80 -31
  173. data/lib/quickbooks/qbxml/response.rb +21 -12
  174. data/lib/quickbooks/ruby_magic.rb +130 -4
  175. metadata +146 -74
  176. data/doc/classes/Quickbooks/Base.src/M000038.html +0 -19
  177. data/doc/classes/Quickbooks/Base.src/M000039.html +0 -25
  178. data/doc/classes/Quickbooks/Base.src/M000040.html +0 -27
  179. data/doc/classes/Quickbooks/Base.src/M000044.html +0 -19
  180. data/doc/classes/Quickbooks/Base.src/M000053.html +0 -36
  181. data/doc/classes/Quickbooks/Base.src/M000055.html +0 -18
  182. data/doc/classes/Quickbooks/ListItem.src/M000033.html +0 -31
  183. data/doc/classes/Quickbooks/Qbxml/Request.src/M000024.html +0 -23
  184. data/doc/classes/Quickbooks/Qbxml/Request.src/M000026.html +0 -57
  185. data/doc/classes/Quickbooks/Transaction.src/M000032.html +0 -26
  186. data/lib/quickbooks/qbxml/error.rb +0 -20
@@ -1,5 +1,4 @@
1
1
  require 'quickbooks/ruby_magic'
2
- require 'quickbooks/qbxml/error'
3
2
 
4
3
  module Quickbooks
5
4
  module Qbxml
@@ -99,7 +98,6 @@ module Quickbooks
99
98
  self.ret_items = hsh.dup
100
99
  elsif m = name.match(/^([A-Za-z][a-z]+)(Query|Mod|Add)Rs$/)
101
100
  self.response_type = m[1]
102
- # self.ret_items = ResponseObject.new(self.response_type, hsh[self.response_type+'Ret'])
103
101
  self.ret_items = hsh[self.response_type+'Ret']
104
102
  else
105
103
  raise "Could not read this response:\n#{self.raw_response.inspect}"
@@ -131,39 +129,50 @@ module Quickbooks
131
129
  !success?
132
130
  end
133
131
 
134
- def instantiate(obj=nil)
132
+ def instantiate(reinstantiate=nil)
135
133
  objs = []
136
134
  (self.ret_items.is_a?(Array) ? self.ret_items : [self.ret_items]).each do |ret_item|
135
+ obj = reinstantiate if reinstantiate
137
136
  if instantiatable?
138
137
  if self.status == 0
139
138
  if obj.nil?
140
- obj = "Quickbooks::#{self.response_type}".constantize.instantiate(self.ret_items)
139
+ obj = "Quickbooks::#{self.response_type}".constantize.instantiate(ret_item)
141
140
  else
142
- obj.class.instantiate(obj, self.ret_items)
141
+ obj.class.instantiate(obj, ret_item)
143
142
  end
144
143
  else
145
144
  # Instantiatable, but some error status. For any error status
146
145
  if obj.nil? # Must be a new object. Just as well, create a new object WITHOUT any original_attributes.
147
- obj = "Quickbooks::#{self.response_type}".constantize.new(self.ret_items)
146
+ obj = "Quickbooks::#{self.response_type}".constantize.new(ret_item)
148
147
  else # An existing object. Must be an update or delete request. Update object's original_attributes.
149
148
  updated = []
150
- self.ret_items.each do |k,v|
149
+ ret_item.each do |k,v|
151
150
  k = k.underscore
152
151
  if obj.original_values[k] != v
153
152
  updated << k
154
- obj.original_values[k] = v
153
+ if obj.class.instance_variable_get('@object_properties').has_key?(k.to_sym)
154
+ obj.original_values[k] = obj.class.instance_variable_get('@object_properties')[k.to_sym].new(v)
155
+ else
156
+ obj.original_values[k] = v
157
+ end
155
158
  end
156
159
  end
157
- ['EditSequence', 'TimeModified', 'TimeCreated'].each do |k|
158
- obj.send(k.underscore + '=', self.ret_items[k]) if self.ret_items.has_key?(k) && obj.respond_to?(k.underscore + '=')
160
+ # Update object's 'read-only' attributes (as well as in the original_values):
161
+ obj.class.read_only.stringify_values.camelize_values.each do |k|
162
+ obj.send(k.underscore + '=', ret_item[k]) if ret_item.has_key?(k) && obj.respond_to?(k.underscore + '=')
159
163
  end
160
164
  self.message = self.message + " Other properties were out of date: [" + updated.join(', ') + '].'
161
165
  end
166
+ obj.errors << {:code => self.status, :message => self.message, :response => self}
162
167
  end
163
168
  else
164
- obj = Quickbooks::Qbxml::Error.new(self) # If not instantiatable, use this 'Error' object just as a wrapper for the response_log to convey the error response.
169
+ if self.status == 0
170
+ obj.errors << {:code => nil, :message => "Cannot instantiate object of type #{self.response_type}!", :response => self}
171
+ else
172
+ obj.errors << {:code => self.status, :message => self.message, :response => self}
173
+ end
165
174
  end
166
- obj.response_log << self
175
+ obj.response_log << self unless obj.nil?
167
176
  objs << obj
168
177
  end
169
178
  objs.length > 1 ? objs : objs[0] # Single or nil if not more than one.
@@ -27,12 +27,20 @@ class Object
27
27
  # ":a.is_one_of?(:a, :b, :c)", or :a.is_one_of?([:a, :b, :c]).
28
28
  def is_one_of?(*ary)
29
29
  raise ArgumentError, "exists_in? requires an array to be passed" unless ary.is_a?(Array)
30
- ary.include?(self)
30
+ ary.flatten.include?(self)
31
31
  end
32
32
  # The opposite of is_one_of?
33
33
  def is_not_one_of?(*ary)
34
34
  !is_one_of?(ary)
35
35
  end
36
+
37
+ # This way anything, even nil, can hold on to an error message to be picked up later.
38
+ def errors
39
+ @errors ||= []
40
+ end
41
+ def error?
42
+ !@errors.blank?
43
+ end
36
44
  end
37
45
 
38
46
  class Class
@@ -47,10 +55,34 @@ end
47
55
 
48
56
  class Hash
49
57
  # Transform all the keys in the hash to CamelCase format.
50
- def camelize_keys!
58
+ def camelize_keys(specials={})
59
+ self.dup.camelize_keys!(specials)
60
+ end
61
+ def camelize_keys!(specials={})
51
62
  self.each_key do |k|
52
- self[k.camelize] = self.delete(k)
63
+ self[specials.has_key?(k) ? specials[k] : k.camelize] = self.delete(k)
64
+ end
65
+ self
66
+ end
67
+
68
+ def underscore_keys(specials={})
69
+ self.dup.underscore_keys!(specials)
70
+ end
71
+ def underscore_keys!(specials={})
72
+ self.each_key do |k|
73
+ self[specials.has_key?(k) ? specials[k] : k.underscore] = self.delete(k)
74
+ end
75
+ self
76
+ end
77
+
78
+ def stringify_values
79
+ self.dup.stringify_values!
80
+ end
81
+ def stringify_values!
82
+ self.each do |k,v|
83
+ self[k] = v.to_s
53
84
  end
85
+ self
54
86
  end
55
87
 
56
88
  # Returns values in this hash that are uniq or different than in the hash provided.
@@ -60,8 +92,102 @@ class Hash
60
92
  dif = {}
61
93
  self.each do |k,v|
62
94
  dif[k] = v if !hsh.has_key?(k)
63
- dif[k] = v if hsh[k] != self[k]
95
+ if self[k].respond_to?(:===)
96
+ dif[k] = v if !(self[k] === hsh[k])
97
+ else
98
+ dif[k] = v if !(self[k] == hsh[k])
99
+ end
64
100
  end
65
101
  dif
66
102
  end
103
+
104
+ def -(v)
105
+ hsh = self.dup
106
+ (v.is_a?(Array) ? v : [v]).each { |k| hsh.delete(k) }
107
+ hsh
108
+ end
109
+
110
+ def only(*keys)
111
+ self.dup.only!(*keys)
112
+ end
113
+ def only!(*keys)
114
+ keys = keys.flatten
115
+ self.keys.each { |k| self.delete(k) unless keys.include?(k) }
116
+ self
117
+ end
118
+
119
+ # Sets a static order for any group operations on the hash, specifically: keys, values, each, each_key, and each_value
120
+ def order!(*keys_in_order)
121
+ self.instance_variable_set('@keys_in_order', keys_in_order.flatten & self.keys) # (only the keys_in_order that are currently existing keys)
122
+ class << self
123
+ def keys
124
+ @keys_in_order
125
+ end
126
+ def values
127
+ self.keys.collect {|k| self[k]}
128
+ end
129
+ def each(&block)
130
+ self.keys.each do |k|
131
+ block.call(k, self[k])
132
+ end
133
+ end
134
+ def each_key(&block)
135
+ self.keys.each &block
136
+ end
137
+ def each_value(&block)
138
+ self.values.each &block
139
+ end
140
+ end
141
+ self
142
+ end
143
+
144
+ def transform_keys(trans_hash)
145
+ self.dup.transform_keys!(trans_hash)
146
+ end
147
+ def transform_keys!(trans_hash)
148
+ raise ArgumentError, "transform_keys takes a single hash argument" unless trans_hash.is_a?(Hash)
149
+ self.each_key do |k|
150
+ self[trans_hash.has_key?(k) ? trans_hash[k] : k] = self.delete(k)
151
+ end
152
+ self
153
+ end
154
+ end
155
+
156
+ class Array
157
+ def stringify_values
158
+ self.dup.stringify_values!
159
+ end
160
+ def stringify_values!
161
+ self.each_with_index { |v,i| self[i] = v.to_s }
162
+ self
163
+ end
164
+
165
+ def only(*values)
166
+ self.dup.only!(*values)
167
+ end
168
+ def only!(*values)
169
+ values.flatten!
170
+ i = 0
171
+ while i <= length-1 do
172
+ self[i].is_one_of?(values) ? i += 1 : self.slice!(i)
173
+ end
174
+ self
175
+ end
176
+
177
+ def camelize_values(specials={})
178
+ self.dup.camelize_values!(specials)
179
+ end
180
+ def camelize_values!(specials={})
181
+ self.each_with_index do |v,i|
182
+ self[i] = specials.has_key?(v) ? specials[v] : (v.is_a?(Symbol) ? v.to_s.camelcase.to_sym : v.camelcase)
183
+ end
184
+ self
185
+ end
186
+
187
+ def order(*ordered)
188
+ self.dup.order!(*ordered)
189
+ end
190
+ def order!(*ordered)
191
+ self.replace(ordered.flatten!.only!(self))
192
+ end
67
193
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickbooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Bruce & Daniel Parker
@@ -9,7 +9,7 @@ autorequire: quickbooks
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-01-14 00:00:00 -05:00
12
+ date: 2008-01-29 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -26,123 +26,189 @@ files:
26
26
  - lib/quickbooks
27
27
  - lib/quickbooks/base.rb
28
28
  - lib/quickbooks/connection.rb
29
+ - lib/quickbooks/model.rb
29
30
  - lib/quickbooks/models
31
+ - lib/quickbooks/models/common
32
+ - lib/quickbooks/models/common/address.rb
33
+ - lib/quickbooks/models/common/all_refs.rb
34
+ - lib/quickbooks/models/customer
35
+ - lib/quickbooks/models/customer/credit_card_info.rb
30
36
  - lib/quickbooks/models/customer.rb
31
37
  - lib/quickbooks/models/list_item.rb
32
38
  - lib/quickbooks/models/transaction.rb
33
39
  - lib/quickbooks/ole_helper.rb
34
40
  - lib/quickbooks/qbxml
35
- - lib/quickbooks/qbxml/error.rb
36
41
  - lib/quickbooks/qbxml/request.rb
37
42
  - lib/quickbooks/qbxml/response.rb
43
+ - lib/quickbooks/qbxml.rb
38
44
  - lib/quickbooks/ruby_magic.rb
39
45
  - lib/quickbooks.rb
40
46
  - LICENSE
41
47
  - Rakefile
42
48
  - README
43
49
  - doc/classes
50
+ - doc/classes/Array.html
51
+ - doc/classes/Array.src
52
+ - doc/classes/Array.src/M000001.html
53
+ - doc/classes/Array.src/M000002.html
54
+ - doc/classes/Array.src/M000003.html
55
+ - doc/classes/Array.src/M000004.html
56
+ - doc/classes/Array.src/M000005.html
57
+ - doc/classes/Array.src/M000006.html
58
+ - doc/classes/Array.src/M000007.html
59
+ - doc/classes/Array.src/M000008.html
44
60
  - doc/classes/Class.html
45
61
  - doc/classes/Class.src
46
- - doc/classes/Class.src/M000003.html
62
+ - doc/classes/Class.src/M000027.html
47
63
  - doc/classes/Hash.html
48
64
  - doc/classes/Hash.src
49
- - doc/classes/Hash.src/M000001.html
50
- - doc/classes/Hash.src/M000002.html
65
+ - doc/classes/Hash.src/M000009.html
66
+ - doc/classes/Hash.src/M000010.html
67
+ - doc/classes/Hash.src/M000011.html
68
+ - doc/classes/Hash.src/M000012.html
69
+ - doc/classes/Hash.src/M000013.html
70
+ - doc/classes/Hash.src/M000014.html
71
+ - doc/classes/Hash.src/M000015.html
72
+ - doc/classes/Hash.src/M000016.html
73
+ - doc/classes/Hash.src/M000017.html
74
+ - doc/classes/Hash.src/M000018.html
75
+ - doc/classes/Hash.src/M000019.html
76
+ - doc/classes/Hash.src/M000020.html
77
+ - doc/classes/Hash.src/M000021.html
78
+ - doc/classes/Hash.src/M000022.html
79
+ - doc/classes/Hash.src/M000023.html
80
+ - doc/classes/Hash.src/M000024.html
81
+ - doc/classes/Hash.src/M000025.html
82
+ - doc/classes/Hash.src/M000026.html
51
83
  - doc/classes/Object.html
52
84
  - doc/classes/Object.src
53
- - doc/classes/Object.src/M000004.html
54
- - doc/classes/Object.src/M000005.html
55
- - doc/classes/Object.src/M000006.html
56
- - doc/classes/Object.src/M000007.html
85
+ - doc/classes/Object.src/M000028.html
86
+ - doc/classes/Object.src/M000029.html
87
+ - doc/classes/Object.src/M000030.html
88
+ - doc/classes/Object.src/M000031.html
89
+ - doc/classes/Object.src/M000032.html
90
+ - doc/classes/Object.src/M000033.html
57
91
  - doc/classes/QBHelpers
58
92
  - doc/classes/QBHelpers/Ole.html
59
93
  - doc/classes/QBHelpers/Ole.src
60
- - doc/classes/QBHelpers/Ole.src/M000066.html
61
- - doc/classes/QBHelpers/Ole.src/M000067.html
62
- - doc/classes/QBHelpers/Ole.src/M000068.html
94
+ - doc/classes/QBHelpers/Ole.src/M000108.html
95
+ - doc/classes/QBHelpers/Ole.src/M000109.html
96
+ - doc/classes/QBHelpers/Ole.src/M000110.html
63
97
  - doc/classes/QBHelpers.html
64
98
  - doc/classes/Quickbooks
99
+ - doc/classes/Quickbooks/Address.html
100
+ - doc/classes/Quickbooks/Address.src
101
+ - doc/classes/Quickbooks/Address.src/M000107.html
65
102
  - doc/classes/Quickbooks/Base.html
66
103
  - doc/classes/Quickbooks/Base.src
67
- - doc/classes/Quickbooks/Base.src/M000034.html
68
- - doc/classes/Quickbooks/Base.src/M000035.html
69
- - doc/classes/Quickbooks/Base.src/M000036.html
70
- - doc/classes/Quickbooks/Base.src/M000037.html
71
- - doc/classes/Quickbooks/Base.src/M000038.html
72
- - doc/classes/Quickbooks/Base.src/M000039.html
73
- - doc/classes/Quickbooks/Base.src/M000040.html
74
- - doc/classes/Quickbooks/Base.src/M000041.html
75
- - doc/classes/Quickbooks/Base.src/M000042.html
76
- - doc/classes/Quickbooks/Base.src/M000043.html
77
- - doc/classes/Quickbooks/Base.src/M000044.html
78
- - doc/classes/Quickbooks/Base.src/M000045.html
79
- - doc/classes/Quickbooks/Base.src/M000046.html
80
- - doc/classes/Quickbooks/Base.src/M000047.html
81
- - doc/classes/Quickbooks/Base.src/M000048.html
82
- - doc/classes/Quickbooks/Base.src/M000049.html
83
- - doc/classes/Quickbooks/Base.src/M000050.html
84
- - doc/classes/Quickbooks/Base.src/M000051.html
85
- - doc/classes/Quickbooks/Base.src/M000052.html
86
- - doc/classes/Quickbooks/Base.src/M000053.html
87
- - doc/classes/Quickbooks/Base.src/M000054.html
88
- - doc/classes/Quickbooks/Base.src/M000055.html
104
+ - doc/classes/Quickbooks/Base.src/M000080.html
105
+ - doc/classes/Quickbooks/Base.src/M000081.html
106
+ - doc/classes/Quickbooks/Base.src/M000082.html
107
+ - doc/classes/Quickbooks/Base.src/M000083.html
108
+ - doc/classes/Quickbooks/Base.src/M000084.html
109
+ - doc/classes/Quickbooks/Base.src/M000085.html
110
+ - doc/classes/Quickbooks/Base.src/M000086.html
111
+ - doc/classes/Quickbooks/Base.src/M000087.html
112
+ - doc/classes/Quickbooks/Base.src/M000088.html
113
+ - doc/classes/Quickbooks/Base.src/M000089.html
114
+ - doc/classes/Quickbooks/Base.src/M000090.html
115
+ - doc/classes/Quickbooks/Base.src/M000091.html
116
+ - doc/classes/Quickbooks/Base.src/M000092.html
117
+ - doc/classes/Quickbooks/Base.src/M000093.html
118
+ - doc/classes/Quickbooks/Base.src/M000094.html
119
+ - doc/classes/Quickbooks/Base.src/M000095.html
120
+ - doc/classes/Quickbooks/BillAddress.html
89
121
  - doc/classes/Quickbooks/Connection.html
90
122
  - doc/classes/Quickbooks/Connection.src
91
- - doc/classes/Quickbooks/Connection.src/M000056.html
92
- - doc/classes/Quickbooks/Connection.src/M000057.html
93
- - doc/classes/Quickbooks/Connection.src/M000058.html
94
- - doc/classes/Quickbooks/Connection.src/M000059.html
95
- - doc/classes/Quickbooks/Connection.src/M000060.html
96
- - doc/classes/Quickbooks/Connection.src/M000061.html
97
- - doc/classes/Quickbooks/Connection.src/M000062.html
98
- - doc/classes/Quickbooks/Connection.src/M000063.html
99
- - doc/classes/Quickbooks/Connection.src/M000064.html
100
- - doc/classes/Quickbooks/Connection.src/M000065.html
123
+ - doc/classes/Quickbooks/Connection.src/M000097.html
124
+ - doc/classes/Quickbooks/Connection.src/M000098.html
125
+ - doc/classes/Quickbooks/Connection.src/M000099.html
126
+ - doc/classes/Quickbooks/Connection.src/M000100.html
127
+ - doc/classes/Quickbooks/Connection.src/M000101.html
128
+ - doc/classes/Quickbooks/Connection.src/M000102.html
129
+ - doc/classes/Quickbooks/Connection.src/M000103.html
130
+ - doc/classes/Quickbooks/Connection.src/M000104.html
131
+ - doc/classes/Quickbooks/Connection.src/M000105.html
132
+ - doc/classes/Quickbooks/Connection.src/M000106.html
133
+ - doc/classes/Quickbooks/CreditCardInfo.html
101
134
  - doc/classes/Quickbooks/Customer.html
135
+ - doc/classes/Quickbooks/CustomerTypeRef.html
136
+ - doc/classes/Quickbooks/ItemSalesTaxRef.html
137
+ - doc/classes/Quickbooks/JobTypeRef.html
102
138
  - doc/classes/Quickbooks/ListItem.html
103
139
  - doc/classes/Quickbooks/ListItem.src
104
- - doc/classes/Quickbooks/ListItem.src/M000033.html
140
+ - doc/classes/Quickbooks/ListItem.src/M000078.html
141
+ - doc/classes/Quickbooks/ListItem.src/M000079.html
142
+ - doc/classes/Quickbooks/Model.html
143
+ - doc/classes/Quickbooks/Model.src
144
+ - doc/classes/Quickbooks/Model.src/M000059.html
145
+ - doc/classes/Quickbooks/Model.src/M000060.html
146
+ - doc/classes/Quickbooks/Model.src/M000061.html
147
+ - doc/classes/Quickbooks/Model.src/M000062.html
148
+ - doc/classes/Quickbooks/Model.src/M000063.html
149
+ - doc/classes/Quickbooks/Model.src/M000064.html
150
+ - doc/classes/Quickbooks/Model.src/M000065.html
151
+ - doc/classes/Quickbooks/Model.src/M000066.html
152
+ - doc/classes/Quickbooks/Model.src/M000067.html
153
+ - doc/classes/Quickbooks/Model.src/M000068.html
154
+ - doc/classes/Quickbooks/Model.src/M000069.html
155
+ - doc/classes/Quickbooks/Model.src/M000070.html
156
+ - doc/classes/Quickbooks/Model.src/M000071.html
157
+ - doc/classes/Quickbooks/Model.src/M000072.html
158
+ - doc/classes/Quickbooks/Model.src/M000073.html
159
+ - doc/classes/Quickbooks/Model.src/M000074.html
160
+ - doc/classes/Quickbooks/Model.src/M000075.html
161
+ - doc/classes/Quickbooks/Model.src/M000076.html
162
+ - doc/classes/Quickbooks/Model.src/M000077.html
163
+ - doc/classes/Quickbooks/ParentRef.html
164
+ - doc/classes/Quickbooks/PreferredPaymentMethodRef.html
165
+ - doc/classes/Quickbooks/PriceLevelRef.html
105
166
  - doc/classes/Quickbooks/Qbxml
106
- - doc/classes/Quickbooks/Qbxml/Error.html
107
- - doc/classes/Quickbooks/Qbxml/Error.src
108
- - doc/classes/Quickbooks/Qbxml/Error.src/M000031.html
109
167
  - doc/classes/Quickbooks/Qbxml/Request.html
110
168
  - doc/classes/Quickbooks/Qbxml/Request.src
111
- - doc/classes/Quickbooks/Qbxml/Request.src/M000024.html
112
- - doc/classes/Quickbooks/Qbxml/Request.src/M000025.html
113
- - doc/classes/Quickbooks/Qbxml/Request.src/M000026.html
169
+ - doc/classes/Quickbooks/Qbxml/Request.src/M000050.html
170
+ - doc/classes/Quickbooks/Qbxml/Request.src/M000051.html
171
+ - doc/classes/Quickbooks/Qbxml/Request.src/M000052.html
114
172
  - doc/classes/Quickbooks/Qbxml/RequestSet.html
115
173
  - doc/classes/Quickbooks/Qbxml/RequestSet.src
116
- - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000027.html
117
- - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000028.html
118
- - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000029.html
119
- - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000030.html
174
+ - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000053.html
175
+ - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000054.html
176
+ - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000055.html
177
+ - doc/classes/Quickbooks/Qbxml/RequestSet.src/M000056.html
120
178
  - doc/classes/Quickbooks/Qbxml/RequestSetArrayExt.html
121
179
  - doc/classes/Quickbooks/Qbxml/Response.html
122
180
  - doc/classes/Quickbooks/Qbxml/Response.src
123
- - doc/classes/Quickbooks/Qbxml/Response.src/M000015.html
124
- - doc/classes/Quickbooks/Qbxml/Response.src/M000016.html
125
- - doc/classes/Quickbooks/Qbxml/Response.src/M000017.html
126
- - doc/classes/Quickbooks/Qbxml/Response.src/M000018.html
127
- - doc/classes/Quickbooks/Qbxml/Response.src/M000019.html
128
- - doc/classes/Quickbooks/Qbxml/Response.src/M000020.html
129
- - doc/classes/Quickbooks/Qbxml/Response.src/M000021.html
130
- - doc/classes/Quickbooks/Qbxml/Response.src/M000022.html
131
- - doc/classes/Quickbooks/Qbxml/Response.src/M000023.html
181
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000041.html
182
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000042.html
183
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000043.html
184
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000044.html
185
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000045.html
186
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000046.html
187
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000047.html
188
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000048.html
189
+ - doc/classes/Quickbooks/Qbxml/Response.src/M000049.html
132
190
  - doc/classes/Quickbooks/Qbxml/ResponseSet.html
133
191
  - doc/classes/Quickbooks/Qbxml/ResponseSet.src
134
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000008.html
135
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000009.html
136
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000010.html
137
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000011.html
138
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000012.html
139
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000013.html
140
- - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000014.html
192
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000034.html
193
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000035.html
194
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000036.html
195
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000037.html
196
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000038.html
197
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000039.html
198
+ - doc/classes/Quickbooks/Qbxml/ResponseSet.src/M000040.html
141
199
  - doc/classes/Quickbooks/Qbxml/ResponseSetArrayExt.html
142
200
  - doc/classes/Quickbooks/Qbxml.html
201
+ - doc/classes/Quickbooks/Ref.html
202
+ - doc/classes/Quickbooks/Ref.src
203
+ - doc/classes/Quickbooks/Ref.src/M000096.html
204
+ - doc/classes/Quickbooks/SalesRepRef.html
205
+ - doc/classes/Quickbooks/SalesTaxCodeRef.html
206
+ - doc/classes/Quickbooks/ShipAddress.html
207
+ - doc/classes/Quickbooks/TermsRef.html
143
208
  - doc/classes/Quickbooks/Transaction.html
144
209
  - doc/classes/Quickbooks/Transaction.src
145
- - doc/classes/Quickbooks/Transaction.src/M000032.html
210
+ - doc/classes/Quickbooks/Transaction.src/M000057.html
211
+ - doc/classes/Quickbooks/Transaction.src/M000058.html
146
212
  - doc/classes/Quickbooks.html
147
213
  - doc/created.rid
148
214
  - doc/files
@@ -150,15 +216,21 @@ files:
150
216
  - doc/files/lib/quickbooks
151
217
  - doc/files/lib/quickbooks/base_rb.html
152
218
  - doc/files/lib/quickbooks/connection_rb.html
219
+ - doc/files/lib/quickbooks/model_rb.html
153
220
  - doc/files/lib/quickbooks/models
221
+ - doc/files/lib/quickbooks/models/common
222
+ - doc/files/lib/quickbooks/models/common/address_rb.html
223
+ - doc/files/lib/quickbooks/models/common/all_refs_rb.html
224
+ - doc/files/lib/quickbooks/models/customer
225
+ - doc/files/lib/quickbooks/models/customer/credit_card_info_rb.html
154
226
  - doc/files/lib/quickbooks/models/customer_rb.html
155
227
  - doc/files/lib/quickbooks/models/list_item_rb.html
156
228
  - doc/files/lib/quickbooks/models/transaction_rb.html
157
229
  - doc/files/lib/quickbooks/ole_helper_rb.html
158
230
  - doc/files/lib/quickbooks/qbxml
159
- - doc/files/lib/quickbooks/qbxml/error_rb.html
160
231
  - doc/files/lib/quickbooks/qbxml/request_rb.html
161
232
  - doc/files/lib/quickbooks/qbxml/response_rb.html
233
+ - doc/files/lib/quickbooks/qbxml_rb.html
162
234
  - doc/files/lib/quickbooks/ruby_magic_rb.html
163
235
  - doc/files/lib/quickbooks_rb.html
164
236
  - doc/files/LICENSE.html