quickbooks 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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