quickbooks 0.0.7 → 0.4.0

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 (263) hide show
  1. data/README +10 -5
  2. data/Rakefile +4 -3
  3. data/doc/classes/Array.html +78 -247
  4. data/doc/classes/Array.src/{M000049.html → M000026.html} +1 -1
  5. data/doc/classes/Array.src/{M000050.html → M000027.html} +1 -1
  6. data/doc/classes/{Hash.src/M000030.html → Array.src/M000028.html} +4 -4
  7. data/doc/classes/Array.src/M000029.html +19 -0
  8. data/doc/classes/Array.src/M000030.html +18 -0
  9. data/doc/classes/Array.src/{M000042.html → M000031.html} +0 -0
  10. data/doc/classes/Array.src/{M000043.html → M000032.html} +0 -0
  11. data/doc/classes/Array.src/{M000044.html → M000033.html} +0 -0
  12. data/doc/classes/Array.src/{M000045.html → M000034.html} +1 -1
  13. data/doc/classes/Array.src/{M000046.html → M000035.html} +1 -1
  14. data/doc/classes/Array.src/{M000047.html → M000036.html} +1 -1
  15. data/doc/classes/Array.src/M000037.html +9 -4
  16. data/doc/classes/Array.src/M000038.html +4 -7
  17. data/doc/classes/Array.src/M000039.html +7 -4
  18. data/doc/classes/Array.src/M000040.html +4 -5
  19. data/doc/classes/Array.src/M000041.html +4 -4
  20. data/doc/classes/Class.html +10 -10
  21. data/doc/classes/Class.src/{M000075.html → M000042.html} +0 -0
  22. data/doc/classes/Class.src/{M000076.html → M000043.html} +1 -1
  23. data/doc/classes/Hash.html +124 -248
  24. data/doc/classes/Hash.src/M000001.html +18 -0
  25. data/doc/classes/Hash.src/M000002.html +21 -0
  26. data/doc/classes/Hash.src/M000003.html +18 -0
  27. data/doc/classes/Hash.src/M000004.html +7 -4
  28. data/doc/classes/Hash.src/M000005.html +4 -7
  29. data/doc/classes/Hash.src/M000006.html +6 -4
  30. data/doc/classes/Hash.src/M000007.html +4 -7
  31. data/doc/classes/Hash.src/M000008.html +8 -4
  32. data/doc/classes/Hash.src/M000009.html +4 -6
  33. data/doc/classes/Hash.src/M000010.html +7 -4
  34. data/doc/classes/Hash.src/M000011.html +9 -7
  35. data/doc/classes/Hash.src/M000012.html +4 -4
  36. data/doc/classes/Hash.src/M000013.html +4 -4
  37. data/doc/classes/Hash.src/M000014.html +4 -4
  38. data/doc/classes/Hash.src/M000015.html +4 -4
  39. data/doc/classes/Hash.src/M000016.html +4 -4
  40. data/doc/classes/Hash.src/M000017.html +5 -5
  41. data/doc/classes/Hash.src/M000018.html +13 -4
  42. data/doc/classes/Hash.src/M000019.html +6 -7
  43. data/doc/classes/Hash.src/M000020.html +4 -13
  44. data/doc/classes/Hash.src/M000021.html +4 -6
  45. data/doc/classes/Hash.src/M000022.html +4 -4
  46. data/doc/classes/Hash.src/M000023.html +4 -6
  47. data/doc/classes/Hash.src/M000024.html +4 -4
  48. data/doc/classes/Hash.src/M000025.html +14 -4
  49. data/doc/classes/Object.html +41 -41
  50. data/doc/classes/Object.src/{M000077.html → M000044.html} +0 -0
  51. data/doc/classes/Object.src/{M000078.html → M000045.html} +0 -0
  52. data/doc/classes/Object.src/{M000079.html → M000046.html} +1 -1
  53. data/doc/classes/Object.src/{M000080.html → M000047.html} +1 -1
  54. data/doc/classes/Object.src/{M000081.html → M000048.html} +1 -1
  55. data/doc/classes/Object.src/{M000082.html → M000049.html} +1 -1
  56. data/doc/classes/Object.src/{M000083.html → M000050.html} +1 -1
  57. data/doc/classes/Object.src/{M000084.html → M000051.html} +1 -1
  58. data/doc/classes/Qbxml/Request.html +15 -15
  59. data/doc/classes/Qbxml/Request.src/{M000184.html → M000132.html} +12 -11
  60. data/doc/classes/Qbxml/Request.src/{M000185.html → M000133.html} +1 -1
  61. data/doc/classes/Qbxml/Request.src/{M000186.html → M000134.html} +1 -1
  62. data/doc/classes/Qbxml/RequestSet.html +20 -20
  63. data/doc/classes/Qbxml/RequestSet.src/{M000187.html → M000135.html} +1 -1
  64. data/doc/classes/Qbxml/RequestSet.src/{M000188.html → M000136.html} +1 -1
  65. data/doc/classes/Qbxml/RequestSet.src/{M000189.html → M000137.html} +1 -1
  66. data/doc/classes/Qbxml/RequestSet.src/{M000190.html → M000138.html} +1 -1
  67. data/doc/classes/Qbxml/Response.html +45 -45
  68. data/doc/classes/Qbxml/Response.src/{M000175.html → M000123.html} +0 -0
  69. data/doc/classes/Qbxml/Response.src/{M000176.html → M000124.html} +0 -0
  70. data/doc/classes/Qbxml/Response.src/{M000177.html → M000125.html} +0 -0
  71. data/doc/classes/Qbxml/Response.src/{M000178.html → M000126.html} +0 -0
  72. data/doc/classes/Qbxml/Response.src/{M000179.html → M000127.html} +0 -0
  73. data/doc/classes/Qbxml/Response.src/{M000180.html → M000128.html} +0 -0
  74. data/doc/classes/Qbxml/Response.src/{M000181.html → M000129.html} +0 -0
  75. data/doc/classes/Qbxml/Response.src/{M000182.html → M000130.html} +0 -0
  76. data/doc/classes/Qbxml/Response.src/{M000183.html → M000131.html} +1 -1
  77. data/doc/classes/Qbxml/ResponseSet.html +35 -35
  78. data/doc/classes/Qbxml/ResponseSet.src/{M000168.html → M000116.html} +0 -0
  79. data/doc/classes/Qbxml/ResponseSet.src/{M000169.html → M000117.html} +0 -0
  80. data/doc/classes/Qbxml/ResponseSet.src/{M000170.html → M000118.html} +0 -0
  81. data/doc/classes/Qbxml/ResponseSet.src/{M000171.html → M000119.html} +0 -0
  82. data/doc/classes/Qbxml/ResponseSet.src/{M000172.html → M000120.html} +0 -0
  83. data/doc/classes/Qbxml/ResponseSet.src/{M000173.html → M000121.html} +0 -0
  84. data/doc/classes/Qbxml/ResponseSet.src/{M000174.html → M000122.html} +0 -0
  85. data/doc/classes/Quickbooks.html +6 -0
  86. data/doc/classes/Quickbooks/Address.html +5 -5
  87. data/doc/classes/Quickbooks/Address.src/{M000150.html → M000115.html} +0 -0
  88. data/doc/classes/Quickbooks/Base.html +167 -106
  89. data/doc/classes/Quickbooks/Base.src/{M000131.html → M000095.html} +1 -1
  90. data/doc/classes/Quickbooks/Base.src/{M000132.html → M000096.html} +1 -1
  91. data/doc/classes/Quickbooks/Base.src/{M000133.html → M000097.html} +1 -1
  92. data/doc/classes/Quickbooks/Base.src/{M000134.html → M000098.html} +1 -1
  93. data/doc/classes/Quickbooks/Base.src/{M000135.html → M000099.html} +1 -1
  94. data/doc/classes/Quickbooks/Base.src/{M000136.html → M000100.html} +1 -1
  95. data/doc/classes/Quickbooks/Base.src/{M000137.html → M000101.html} +1 -1
  96. data/doc/classes/Quickbooks/Base.src/{M000138.html → M000102.html} +1 -1
  97. data/doc/classes/Quickbooks/Base.src/{M000139.html → M000103.html} +1 -1
  98. data/doc/classes/Quickbooks/Base.src/{M000140.html → M000104.html} +1 -1
  99. data/doc/classes/Quickbooks/Base.src/M000105.html +18 -0
  100. data/doc/classes/Quickbooks/Base.src/{M000141.html → M000106.html} +1 -1
  101. data/doc/classes/Quickbooks/Base.src/{M000142.html → M000107.html} +1 -1
  102. data/doc/classes/Quickbooks/Base.src/{M000143.html → M000108.html} +1 -1
  103. data/doc/classes/Quickbooks/Base.src/{M000144.html → M000109.html} +1 -1
  104. data/doc/classes/Quickbooks/Base.src/{M000145.html → M000110.html} +1 -1
  105. data/doc/classes/Quickbooks/Base.src/{M000146.html → M000111.html} +2 -2
  106. data/doc/classes/Quickbooks/Base.src/{M000147.html → M000112.html} +1 -1
  107. data/doc/classes/Quickbooks/ListDeleted.html +5 -5
  108. data/doc/classes/Quickbooks/ListDeleted.src/{M000149.html → M000114.html} +0 -0
  109. data/doc/classes/Quickbooks/ListItem.html +26 -10
  110. data/doc/classes/Quickbooks/ListItem.src/{M000129.html → M000093.html} +3 -2
  111. data/doc/classes/Quickbooks/ListItem.src/{M000130.html → M000094.html} +1 -1
  112. data/doc/classes/Quickbooks/Model.html +110 -117
  113. data/doc/classes/Quickbooks/Model.src/{M000109.html → M000073.html} +3 -4
  114. data/doc/classes/Quickbooks/Model.src/{M000110.html → M000074.html} +2 -1
  115. data/doc/classes/Quickbooks/Model.src/{M000111.html → M000075.html} +2 -2
  116. data/doc/classes/Quickbooks/Model.src/{M000112.html → M000076.html} +2 -3
  117. data/doc/classes/Quickbooks/Model.src/{M000113.html → M000077.html} +0 -0
  118. data/doc/classes/Quickbooks/Model.src/{M000114.html → M000078.html} +0 -0
  119. data/doc/classes/Quickbooks/Model.src/{M000115.html → M000079.html} +0 -0
  120. data/doc/classes/Quickbooks/Model.src/{M000116.html → M000080.html} +0 -0
  121. data/doc/classes/Quickbooks/Model.src/{M000117.html → M000081.html} +0 -0
  122. data/doc/classes/Quickbooks/Model.src/{M000118.html → M000082.html} +0 -0
  123. data/doc/classes/Quickbooks/Model.src/{M000119.html → M000083.html} +0 -0
  124. data/doc/classes/Quickbooks/Model.src/{M000120.html → M000084.html} +0 -0
  125. data/doc/classes/Quickbooks/Model.src/{M000121.html → M000085.html} +0 -0
  126. data/doc/classes/Quickbooks/Model.src/{M000122.html → M000086.html} +0 -0
  127. data/doc/classes/Quickbooks/Model.src/{M000123.html → M000087.html} +0 -0
  128. data/doc/classes/Quickbooks/Model.src/{M000124.html → M000088.html} +2 -4
  129. data/doc/classes/Quickbooks/Model.src/{M000125.html → M000089.html} +3 -5
  130. data/doc/classes/Quickbooks/Model.src/{M000126.html → M000090.html} +1 -1
  131. data/doc/classes/Quickbooks/Model.src/{M000127.html → M000091.html} +1 -1
  132. data/doc/classes/Quickbooks/OleAdapter/Connection.html +65 -65
  133. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000094.html → M000058.html} +0 -0
  134. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000095.html → M000059.html} +0 -0
  135. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000096.html → M000060.html} +0 -0
  136. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000097.html → M000061.html} +0 -0
  137. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000098.html → M000062.html} +0 -0
  138. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000099.html → M000063.html} +1 -1
  139. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000100.html → M000064.html} +0 -0
  140. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000101.html → M000065.html} +0 -0
  141. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000102.html → M000066.html} +0 -0
  142. data/doc/classes/Quickbooks/OleAdapter/Connection.src/{M000103.html → M000067.html} +2 -2
  143. data/doc/classes/Quickbooks/OleAdapter/Ole.html +17 -17
  144. data/doc/classes/Quickbooks/OleAdapter/Ole.src/{M000104.html → M000068.html} +0 -0
  145. data/doc/classes/Quickbooks/OleAdapter/Ole.src/{M000105.html → M000069.html} +0 -0
  146. data/doc/classes/Quickbooks/OleAdapter/Ole.src/{M000106.html → M000070.html} +0 -0
  147. data/doc/classes/Quickbooks/QbxmlDebugAdapter/Connection.html +5 -5
  148. data/doc/classes/Quickbooks/QbxmlDebugAdapter/Connection.src/{M000093.html → M000057.html} +0 -0
  149. data/doc/classes/Quickbooks/Ref.html +12 -5
  150. data/doc/classes/Quickbooks/Ref.src/{M000148.html → M000113.html} +1 -1
  151. data/doc/classes/Quickbooks/Transaction.html +10 -10
  152. data/doc/classes/Quickbooks/Transaction.src/{M000107.html → M000071.html} +0 -0
  153. data/doc/classes/Quickbooks/Transaction.src/{M000108.html → M000072.html} +0 -0
  154. data/doc/classes/Quickbooks/TxnDeleted.html +5 -5
  155. data/doc/classes/Quickbooks/TxnDeleted.src/{M000128.html → M000092.html} +0 -0
  156. data/doc/classes/String.html +25 -91
  157. data/doc/classes/String.src/{M000085.html → M000052.html} +0 -0
  158. data/doc/classes/String.src/{M000086.html → M000053.html} +0 -0
  159. data/doc/classes/String.src/{M000087.html → M000054.html} +0 -0
  160. data/doc/classes/String.src/{M000088.html → M000055.html} +1 -1
  161. data/doc/classes/String.src/{M000089.html → M000056.html} +1 -1
  162. data/doc/created.rid +1 -1
  163. data/doc/files/LICENSE.html +1 -1
  164. data/doc/files/README.html +38 -10
  165. data/doc/files/lib/qbxml/request_rb.html +2 -1
  166. data/doc/files/lib/qbxml/response_rb.html +1 -1
  167. data/doc/files/lib/qbxml/support_rb.html +1 -8
  168. data/doc/files/lib/qbxml_rb.html +14 -1
  169. data/doc/files/lib/quickbooks/adapters/ole_adapter_rb.html +1 -1
  170. data/doc/files/lib/quickbooks/adapters/qbxml_debug_adapter_rb.html +1 -1
  171. data/doc/files/lib/quickbooks/base_rb.html +8 -3
  172. data/doc/files/lib/quickbooks/model_rb.html +1 -2
  173. data/doc/files/lib/quickbooks/models/common/address_rb.html +1 -1
  174. data/doc/files/lib/quickbooks/models/common/all_refs_rb.html +1 -1
  175. data/doc/files/lib/quickbooks/models/customer/credit_card_info_rb.html +1 -1
  176. data/doc/files/lib/quickbooks/models/customer_rb.html +1 -1
  177. data/doc/files/lib/quickbooks/models/deleted_rb.html +1 -1
  178. data/doc/files/lib/quickbooks/models/list_item_rb.html +1 -1
  179. data/doc/files/lib/quickbooks/models/transaction_rb.html +1 -1
  180. data/doc/files/lib/quickbooks/ruby_magic_rb.html +2 -1
  181. data/doc/files/lib/quickbooks_rb.html +14 -1
  182. data/doc/fr_class_index.html +0 -5
  183. data/doc/fr_file_index.html +0 -1
  184. data/doc/fr_method_index.html +138 -190
  185. data/lib/qbxml.rb +1 -0
  186. data/lib/qbxml/request.rb +12 -10
  187. data/lib/qbxml/response.rb +1 -1
  188. data/lib/qbxml/support.rb +1 -1
  189. data/lib/quickbooks.rb +1 -0
  190. data/lib/quickbooks/adapters/ole_adapter.rb +3 -3
  191. data/lib/quickbooks/base.rb +30 -3
  192. data/lib/quickbooks/model.rb +14 -18
  193. data/lib/quickbooks/models/common/all_refs.rb +1 -0
  194. data/lib/quickbooks/models/deleted.rb +1 -1
  195. data/lib/quickbooks/models/list_item.rb +7 -1
  196. data/lib/quickbooks/models/transaction.rb +1 -1
  197. data/lib/quickbooks/ruby_magic.rb +28 -11
  198. metadata +124 -179
  199. data/doc/classes/Array.src/M000048.html +0 -23
  200. data/doc/classes/Array.src/M000051.html +0 -18
  201. data/doc/classes/Array.src/M000052.html +0 -18
  202. data/doc/classes/Array.src/M000053.html +0 -18
  203. data/doc/classes/Array.src/M000054.html +0 -20
  204. data/doc/classes/Array.src/M000055.html +0 -18
  205. data/doc/classes/Array.src/M000056.html +0 -34
  206. data/doc/classes/Array.src/M000057.html +0 -19
  207. data/doc/classes/Array.src/M000058.html +0 -29
  208. data/doc/classes/Array.src/M000059.html +0 -18
  209. data/doc/classes/Array.src/M000060.html +0 -20
  210. data/doc/classes/Array.src/M000061.html +0 -18
  211. data/doc/classes/Array.src/M000062.html +0 -18
  212. data/doc/classes/Array.src/M000063.html +0 -19
  213. data/doc/classes/Hash.src/M000026.html +0 -18
  214. data/doc/classes/Hash.src/M000027.html +0 -22
  215. data/doc/classes/Hash.src/M000028.html +0 -18
  216. data/doc/classes/Hash.src/M000029.html +0 -20
  217. data/doc/classes/Hash.src/M000031.html +0 -30
  218. data/doc/classes/Hash.src/M000032.html +0 -19
  219. data/doc/classes/Hash.src/M000033.html +0 -19
  220. data/doc/classes/Hash.src/M000034.html +0 -18
  221. data/doc/classes/Hash.src/M000035.html +0 -18
  222. data/doc/classes/Hash.src/M000036.html +0 -21
  223. data/doc/classes/OrderedArray.html +0 -178
  224. data/doc/classes/OrderedArray.src/M000001.html +0 -18
  225. data/doc/classes/OrderedArray.src/M000002.html +0 -18
  226. data/doc/classes/OrderedArray.src/M000003.html +0 -18
  227. data/doc/classes/OrderedHash.html +0 -324
  228. data/doc/classes/OrderedHash.src/M000064.html +0 -19
  229. data/doc/classes/OrderedHash.src/M000065.html +0 -18
  230. data/doc/classes/OrderedHash.src/M000066.html +0 -18
  231. data/doc/classes/OrderedHash.src/M000067.html +0 -18
  232. data/doc/classes/OrderedHash.src/M000068.html +0 -18
  233. data/doc/classes/OrderedHash.src/M000069.html +0 -18
  234. data/doc/classes/OrderedHash.src/M000070.html +0 -20
  235. data/doc/classes/OrderedHash.src/M000071.html +0 -18
  236. data/doc/classes/OrderedHash.src/M000072.html +0 -18
  237. data/doc/classes/OrderedHash.src/M000073.html +0 -19
  238. data/doc/classes/OrderedHash.src/M000074.html +0 -24
  239. data/doc/classes/SlashedArray.html +0 -226
  240. data/doc/classes/SlashedArray.src/M000161.html +0 -23
  241. data/doc/classes/SlashedArray.src/M000162.html +0 -18
  242. data/doc/classes/SlashedArray.src/M000163.html +0 -18
  243. data/doc/classes/SlashedArray.src/M000164.html +0 -22
  244. data/doc/classes/SlashedArray.src/M000165.html +0 -22
  245. data/doc/classes/SlashedArray.src/M000166.html +0 -18
  246. data/doc/classes/SlashedArray.src/M000167.html +0 -22
  247. data/doc/classes/SlashedHash.html +0 -193
  248. data/doc/classes/SlashedHash.src/M000156.html +0 -22
  249. data/doc/classes/SlashedHash.src/M000157.html +0 -18
  250. data/doc/classes/SlashedHash.src/M000158.html +0 -18
  251. data/doc/classes/SlashedHash.src/M000159.html +0 -27
  252. data/doc/classes/SlashedHash.src/M000160.html +0 -22
  253. data/doc/classes/String.src/M000090.html +0 -18
  254. data/doc/classes/String.src/M000091.html +0 -18
  255. data/doc/classes/String.src/M000092.html +0 -97
  256. data/doc/classes/UniqueArray.html +0 -193
  257. data/doc/classes/UniqueArray.src/M000151.html +0 -25
  258. data/doc/classes/UniqueArray.src/M000152.html +0 -18
  259. data/doc/classes/UniqueArray.src/M000153.html +0 -20
  260. data/doc/classes/UniqueArray.src/M000154.html +0 -20
  261. data/doc/classes/UniqueArray.src/M000155.html +0 -20
  262. data/doc/files/lib/quickbooks/structure_rb.html +0 -122
  263. data/lib/quickbooks/structure.rb +0 -393
@@ -1,2 +1,3 @@
1
1
  require 'qbxml/request'
2
2
  require 'qbxml/response'
3
+ QBXML_VERSION = '0.1.0'
@@ -1,5 +1,6 @@
1
1
  require 'qbxml/support'
2
2
  require 'builder'
3
+ require 'hash_magic'
3
4
 
4
5
  module Qbxml
5
6
  VERSION = '6.0'
@@ -89,26 +90,27 @@ thequickbooks_qbxmlrequestsetxml
89
90
  end
90
91
 
91
92
  # Return only specific properties: Request.new(Customer, :query, :only => [:list_id, :full_name]); Quickbooks::Customer.first(:only => :list_id)
92
- @ret_elements = @options.delete(:only).to_a.only(@klass.properties).ordered!(@klass.properties).stringify_values.camelize_values!(Quickbooks::CAMELIZE_EXCEPTIONS) if @options.has_key?(:only)
93
+ @ret_elements = @options.delete(:only).to_a.only(@klass.properties).ordered(@klass.properties).stringify_values.camelize_values!(Quickbooks::CAMELIZE_EXCEPTIONS) if @options.has_key?(:only)
93
94
 
94
95
  # Includes only valid filters + aliases for valid filters, # => {underscore/slashed keys + aliases}
95
96
  # then transforms aliased filters to real filters, # => {underscore/slashed keys}
96
97
  # then camelizes keys to prepare for writing to XML, # => {}
97
98
  # lastly orders the keys to a valid filter order.
99
+
98
100
  # Study the following:
99
101
  # @klass.filter_aliases = {'deleted_after' => 'deleted_date_range_filter/from_deleted_date'}
100
102
  # @klass.valid_filters = ['deleted_date_range_filter/from_deleted_date']
101
- # {:deleted_after => "2008-03-20T11:20:26-04:00"}.stringify_keys.flatten_slashes.
102
- # only(@klass.valid_filters + @klass.filter_aliases.expand_slashes.keys).
103
- # transform_keys!(@klass.filter_aliases.expand_slashes.inject({}) {|h,(k,v)| v = [v].flatten_slashes; h[k] = v.length < 2 ? v[0] : v; h}).
104
- # slash_camelize_keys!(Quickbooks::CAMELIZE_EXCEPTIONS).
105
- # ordered!(@klass.camelized_valid_filters).expand_slashes
103
+ # {:deleted_after => "2008-03-20T11:20:26-04:00"}.slashed.
104
+ # only(@klass.valid_filters + @klass.filter_aliases.slashed.flat.keys).
105
+ # transform_keys!(@klass.filter_aliases.slashed.flat).
106
+ # slash_camelize_keys!(Quickbooks::CAMELIZE_EXCEPTIONS).slashed.
107
+ # ordered!(@klass.camelized_valid_filters).slashed.expand
106
108
  # # => {"DeletedDateRangeFilter" => {"FromDeletedDate" => "2008-03-20T11:20:26-04:00"}}
107
- @filters = @options.delete(:filters) || @options.stringify_keys.flatten_slashes.
108
- only(@klass.valid_filters + @klass.filter_aliases.expand_slashes.keys).
109
- transform_keys!(@klass.filter_aliases.expand_slashes.inject({}) {|h,(k,v)| v = [v].flatten_slashes; h[k] = v.length < 2 ? v[0] : v; h}).
109
+ @filters = @options.delete(:filters) || @options.slashed.
110
+ only(@klass.valid_filters + @klass.filter_aliases.slashed.flat.keys).
111
+ transform_keys!(@klass.filter_aliases.slashed.flat).
110
112
  slash_camelize_keys!(Quickbooks::CAMELIZE_EXCEPTIONS).
111
- ordered!(@klass.camelized_valid_filters).expand_slashes
113
+ ordered!(@klass.camelized_valid_filters)
112
114
  @filters = @filters.to_hash unless @filters.is_a?(Hash)
113
115
  @filters = @filters['FILTERS'] if @filters.keys == ['FILTERS'] # So if you include an xml-formatted string of filters, you can simply wrap them in <FILTERS></FILTERS> as a root key
114
116
 
@@ -191,7 +191,7 @@ module Qbxml
191
191
  obj.response_log << self unless obj.nil?
192
192
  objs << obj
193
193
  end
194
- objs.length > 1 ? objs : objs[0] # Single or nil if not more than one.
194
+ objs.length > 1 ? objs : objs[0] # Single (fallback nil) if not more than one.
195
195
  end
196
196
  end
197
197
  end
@@ -1,6 +1,6 @@
1
1
  gem 'formattedstring'
2
2
  gem 'builder'
3
- require 'quickbooks/structure'
3
+ gem 'hash_magic'
4
4
 
5
5
  class Object
6
6
  # This allows one to effectively 'proxy' specific methods to be called on the return value of one of its methods.
@@ -1,3 +1,4 @@
1
+ QUICKBOOKS_VERSION = '0.1.0'
1
2
  require 'quickbooks/base'
2
3
  require 'quickbooks/models/list_item'
3
4
  require 'quickbooks/models/transaction'
@@ -98,7 +98,7 @@ module Quickbooks
98
98
 
99
99
  # Sends a request to Quickbooks. This request should be a valid QBXML request. Use Qbxml::Request to generate valid requests.
100
100
  def send_xml(xml)
101
- @quickbooks.ProcessRequest(session, xml)
101
+ connection.ProcessRequest(session, xml)
102
102
  rescue => e
103
103
  warn "ERROR processing request:\n#{xml}"
104
104
  raise # Reraises the original error, only this way we got the xml output
@@ -136,10 +136,10 @@ module Quickbooks
136
136
  # Close the connection to Quickbooks. Automatically ends the session, if there is one.
137
137
  def close
138
138
  end_session
139
- if connected? && connection.CloseConnection
139
+ if connected? && connection.CloseConnection.nil?
140
140
  @connected = false
141
141
  @connection = nil
142
- Quickbooks::Connection.connections = Quickbooks::Connection.connections - [self]
142
+ Connection.connections = Connection.connections - [self]
143
143
  end
144
144
  return !@connected # Returns false if CloseConnection failed.
145
145
  end
@@ -1,6 +1,10 @@
1
1
  # Contains Quickbooks::Base, which inherits from Quickbooks::Model. Simple objects like BillAddress and CreditCardInfo also
2
- # inherit from Quickbooks::Model, but any whole-entity objects are below Quickbooks::Base in the inheritance tree. Two models
3
- # inherit directly from Quickbooks::Base: ListItem and Transaction. All other whole-entity models inherit from either of these.
2
+ # inherit from Quickbooks::Model, but any objects that are stored as their own 'entity' are below Quickbooks::Base in the
3
+ # inheritance tree. Two models inherit directly from Quickbooks::Base: ListItem and Transaction. All other whole-entity
4
+ # models inherit from either of these. Only a couple are written so far, as I've had use for them. They're pretty easy to
5
+ # write though -- take a look at customer.rb, for example: all that needs defining for most models is any filters (and aliases)
6
+ # specific to that model, and a listing of that model's attributes. If you write a model, please send in your code to
7
+ # gems@behindlogic.com!
4
8
  #
5
9
  # Inherits from ListItem:
6
10
  # - Account
@@ -72,6 +76,22 @@ require 'qbxml'
72
76
 
73
77
  module Quickbooks
74
78
  # Base is just base for ListItem and Transaction. It inherits from Model, just as Ref does.
79
+ #
80
+ # Some Qbxml specifications require certain finder-options to be placed inside a containing entity, such as:
81
+ # ...
82
+ # <DeletedDateRangeFilter>
83
+ # <FromDeletedDate>#{(Time.now - 5*60*60).xmlschema}</FromDeletedDate>
84
+ # <ToDeletedDate>#{(Time.now - 3*60*60).xmlschema}</ToDeletedDate>
85
+ # </DeletedDateRangeFilter>
86
+ # ...
87
+ # The Quickbooks Models define aliases to these "inside" options. The equivalent to the above [partial] request:
88
+ # Quickbooks::Deleted.all(:deleted_after => (Time.now - 5*60*60).xmlschema, :deleted_before => (Time.now - 3*60*60).xmlschema)
89
+ # (Type-casting hasn't made it in yet.)
90
+ #
91
+ # Qbxml makes a special allowance for Deleted items. Much of the time, we'd rather access a model's deleted items through that
92
+ # model class instead of through the deleted class. So Qbxml allows any class to ask for its deleted items through a call like
93
+ # this:
94
+ # Quickbooks::Customer.deleted(:deleted_after => Time.now - 3*60*60)
75
95
  class Base < Model
76
96
 
77
97
  self.filter_aliases = {:limit => :max_returned}
@@ -177,12 +197,19 @@ module Quickbooks
177
197
  query(self, :query, filters)
178
198
  end
179
199
 
200
+ # Still in testing... these should be equivalent:
201
+ # Quickbooks::Customer.deleted(:deleted_before => Time.now) == Quickbooks::Deleted.all(:type => 'Customer', :deleted_before => Time.now)
202
+ def deleted(filters={})
203
+ query(self, :deleted, filters)
204
+ end
205
+
180
206
  # Creates a new object of the current class's type. For example, Quickbooks::Customer.create(:name => 'Tommy') will create a customer object with a Name of Tommy.
181
207
  def create(*args)
182
208
  new(*args).save
183
209
  end
184
210
  end
185
211
 
212
+ # Generates a new object that can be saved into Quickbooks once the required attributes are set.
186
213
  def initialize(*args)
187
214
  super # from Quickbooks::Model - sets the *args into attributes
188
215
  @new_record = true
@@ -237,7 +264,7 @@ module Quickbooks
237
264
  # Destroys a record in Quickbooks. Note that even though Quickbooks will destroy the record,
238
265
  # the record's ListID and DeletedTime can be accessed by doing a query for deleted objects of the appropriate type.
239
266
  def destroy
240
- self.class.query(self, :delete).success?
267
+ self.class.query(self, :delete).nil?
241
268
  end
242
269
 
243
270
  # Usual comparison (super), but add in false if either is a new record.
@@ -1,31 +1,31 @@
1
1
  require 'quickbooks/ruby_magic'
2
- require 'quickbooks/structure'
2
+
3
3
  module Quickbooks
4
- CAMELIZE_EXCEPTIONS = {'list_id' => 'ListID', 'txn_id' => 'TxnID', 'owner_id' => 'OwnerID'}
5
4
  # These were all created from the info in qbxmlops70.xml, found in the docs in the QBSDK package.
5
+ CAMELIZE_EXCEPTIONS = {'list_id' => 'ListID', 'txn_id' => 'TxnID', 'owner_id' => 'OwnerID'}
6
+
6
7
  class Model
7
8
  class << self
8
9
 
9
10
  def inherited(klass)
10
11
  def klass.valid_filters
11
- (superclass.valid_filters + (@valid_filters ||= [])).flatten_slashes
12
+ (superclass.valid_filters + (@valid_filters ||= []))
12
13
  end
13
14
  def klass.filter_aliases
14
- seed = [superclass.filter_aliases].flatten_slashes.expand_slashes.flatten_slashes
15
- (seed.empty? ? {} : seed).merge(@filter_aliases ||= {})
15
+ superclass.filter_aliases.slashed.merge(@filter_aliases ||= {}.slashed)
16
16
  end
17
17
  klass.instance_variable_set('@object_properties', {})
18
18
  end
19
19
 
20
20
  def valid_filters=(v)
21
- @valid_filters = v.stringify_values!.flatten_slashes
21
+ raise TypeError, "must be only strings" unless v.all? {|e| e.is_a?(String)}
22
+ @valid_filters = v
22
23
  end
23
24
  def valid_filters
24
- (@valid_filters ||= []).flatten_slashes
25
+ (@valid_filters ||= [])
25
26
  end
26
27
  def filter_aliases=(v)
27
- al = [v].flatten_slashes.expand_slashes.flatten_slashes
28
- @filter_aliases = al.empty? ? {} : al
28
+ (@filter_aliases = v.empty? ? {} : v).slashed
29
29
  end
30
30
  def filter_aliases
31
31
  @filter_aliases ||= {}
@@ -84,7 +84,7 @@ module Quickbooks
84
84
  end
85
85
  end
86
86
 
87
- self.valid_filters = [:max_returned]
87
+ self.valid_filters = ['max_returned']
88
88
 
89
89
  # The default for all subclasses is simply to apply the attributes given, and mark the object as a new_record?
90
90
  def initialize(args={})
@@ -137,30 +137,26 @@ module Quickbooks
137
137
  end
138
138
 
139
139
  def to_dirty_hash
140
- hsh = {}
140
+ hsh = SlashedHash.new.ordered!(self.class.read_write.stringify_values)
141
141
  self.dirty_attributes.each do |key,value|
142
142
  if value.is_a?(Quickbooks::Model)
143
- h = value.to_dirty_hash
144
- hsh[key] = h unless h.empty?
143
+ hsh[key] = value.to_dirty_hash
145
144
  else
146
145
  hsh[key] = value
147
146
  end
148
147
  end
149
- hsh.ordered!(self.class.read_write.stringify_values)
150
148
  hsh
151
149
  end
152
150
 
153
151
  def to_hash(include_read_only=false)
154
- hsh = {}
152
+ hsh = SlashedHash.new.ordered!((include_read_only ? self.class.read_only + self.class.read_write : self.class.read_write).stringify_values)
155
153
  self.attributes(include_read_only).each do |key,value|
156
154
  if value.is_a?(Quickbooks::Model)
157
- h = value.to_hash(include_read_only)
158
- hsh[key] = h unless h.empty?
155
+ hsh[key] = value.to_hash(include_read_only)
159
156
  else
160
157
  hsh[key] = value
161
158
  end
162
159
  end
163
- hsh.ordered!((include_read_only ? self.class.read_only + self.class.read_write : self.class.read_write).stringify_values)
164
160
  hsh
165
161
  end
166
162
 
@@ -1,4 +1,5 @@
1
1
  module Quickbooks
2
+ # A reference simply is a link to another object. These are mostly included in other models as attributes.
2
3
  class Ref < Model
3
4
  def self.inherited(klass)
4
5
  klass.read_only :list_id, :full_name
@@ -1,6 +1,6 @@
1
1
  module Quickbooks
2
2
  class Deleted < Base
3
- self.filter_aliases = {'deleted_after' => 'deleted_date_range_filter/from_deleted_date', 'deleted_before' => 'deleted_date_range_filter/to_deleted_date'}
3
+ self.filter_aliases = {'type' => 'list_del_type', 'deleted_after' => 'deleted_date_range_filter/from_deleted_date', 'deleted_before' => 'deleted_date_range_filter/to_deleted_date'}
4
4
  end
5
5
 
6
6
  class ListDeleted < Deleted
@@ -1,4 +1,9 @@
1
1
  module Quickbooks
2
+ # A ListItem is identified in quickbooks by ListID. All ListItems also have a unique FullName, so if you know
3
+ # what the FullName of a ListItem is, you can find it that way. Always use the underscore version of finders, such as:
4
+ # Quickbooks::Customer.first(:list_id => '12345-6789-09876543')
5
+ # Quickbooks::Deleted.all(:list_del_type => 'Customer', :deleted_after => Time.now - 24*60*60)
6
+ # (See Deleted for specifics on those options.)
2
7
  class ListItem < Base
3
8
 
4
9
  self.valid_filters = ['list_id', 'full_name']
@@ -6,7 +11,8 @@ module Quickbooks
6
11
 
7
12
  def self.inherited(klass)
8
13
  super
9
- klass.read_only :list_id, :full_name, :edit_sequence, :time_created, :time_modified, :time_deleted # :time_deleted only comes from ListDeleted, but ListDeleted attributes can be instantiated into ListItems
14
+ # :time_deleted only comes from ListDeleted, but that way all ListDeleted attributes can be instantiated into the respective ListItem model
15
+ klass.read_only :list_id, :full_name, :edit_sequence, :time_created, :time_modified, :time_deleted
10
16
  end
11
17
 
12
18
  class << self
@@ -1,6 +1,6 @@
1
1
  class Quickbooks::Transaction < Quickbooks::Base
2
2
 
3
- self.valid_filters = [:txn_id]
3
+ self.valid_filters = ['txn_id']
4
4
 
5
5
  def self.inherited(klass)
6
6
  super
@@ -1,5 +1,8 @@
1
1
  # This file contains several little tidbits of magic that I've made to make certain things easier.
2
2
  # See Object, Class, and Hash.
3
+ gem 'hash_magic'
4
+ require 'hash_magic'
5
+
3
6
  require 'time'
4
7
  require 'date'
5
8
 
@@ -67,6 +70,16 @@ class Hash
67
70
  self
68
71
  end
69
72
 
73
+ def slash_camelize_keys!(specials={})
74
+ cam = slashed.flat
75
+ cam.each_key do |k|
76
+ cam[
77
+ specials.has_key?(k) ? specials[k] : (k.is_a?(Symbol) ? k.to_s.camelize.to_sym : (k+' ').split('/').map {|e| e.camelize}.join('/')[0..-2])
78
+ ] = cam.delete(k)
79
+ end
80
+ cam.slashed
81
+ end
82
+
70
83
  def stringify_keys(specials={})
71
84
  self.dup.stringify_keys!(specials)
72
85
  end
@@ -120,28 +133,32 @@ class Hash
120
133
  end
121
134
 
122
135
  def only(*keys)
123
- self.dup.only!(*keys)
136
+ keys.flatten.inject(dup.clear) {|h,(k,v)| h[k] = self[k]}
124
137
  end
125
138
  def only!(*keys)
126
- keys = keys.flatten
127
- self.keys.each { |k| self.delete(k) unless keys.include?(k) }
128
- self
139
+ replace(only(*keys))
129
140
  end
130
141
 
131
142
  def reverse_merge(hsh)
132
143
  hsh.dup.merge(self)
133
144
  end
134
145
  def reverse_merge!(hsh)
135
- self.replace(hsh.merge(self))
146
+ replace(hsh.merge(self))
136
147
  end
137
148
 
138
- def transform_keys(trans_hash)
139
- self.dup.transform_keys!(trans_hash)
149
+ def transform_keys(trans_hash,&block)
150
+ dup.transform_keys!(trans_hash)
140
151
  end
141
- def transform_keys!(trans_hash)
142
- raise ArgumentError, "transform_keys takes a single hash argument" unless trans_hash.is_a?(Hash)
143
- self.each_key do |k|
144
- self[trans_hash.has_key?(k) ? trans_hash[k] : k] = self.delete(k)
152
+ def transform_keys!(trans_hash,&block)
153
+ raise ArgumentError, "transform_keys takes a single hash argument or a block" unless trans_hash.is_a?(Hash) || block_given?
154
+ if block_given?
155
+ each do |k,v|
156
+ block.call(h,k,v)
157
+ end
158
+ else
159
+ trans_hash.each do |k,v|
160
+ self[v] = self.delete(k) if self.has_key?(k)
161
+ end
145
162
  end
146
163
  self
147
164
  end
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: quickbooks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
- - Chris Bruce & Daniel Parker
7
+ - Daniel Parker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-03-20 00:00:00 -04:00
12
+ date: 2008-04-15 00:00:00 -04:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -19,7 +19,16 @@ dependencies:
19
19
  requirements:
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 0.0.1
22
+ version: 0.1.0
23
+ version:
24
+ - !ruby/object:Gem::Dependency
25
+ name: hash_magic
26
+ version_requirement:
27
+ version_requirements: !ruby/object:Gem::Requirement
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ version: 0.1.0
23
32
  version:
24
33
  description: A module to connect to QuickBooks through the QuickBooks SDK using WIN32OLE (other connection types to come).
25
34
  email: gems@behindlogic.com
@@ -53,7 +62,6 @@ files:
53
62
  - lib/quickbooks/models/list_item.rb
54
63
  - lib/quickbooks/models/transaction.rb
55
64
  - lib/quickbooks/ruby_magic.rb
56
- - lib/quickbooks/structure.rb
57
65
  - lib/quickbooks.rb
58
66
  - LICENSE
59
67
  - Rakefile
@@ -61,39 +69,31 @@ files:
61
69
  - doc/classes
62
70
  - doc/classes/Array.html
63
71
  - doc/classes/Array.src
72
+ - doc/classes/Array.src/M000026.html
73
+ - doc/classes/Array.src/M000027.html
74
+ - doc/classes/Array.src/M000028.html
75
+ - doc/classes/Array.src/M000029.html
76
+ - doc/classes/Array.src/M000030.html
77
+ - doc/classes/Array.src/M000031.html
78
+ - doc/classes/Array.src/M000032.html
79
+ - doc/classes/Array.src/M000033.html
80
+ - doc/classes/Array.src/M000034.html
81
+ - doc/classes/Array.src/M000035.html
82
+ - doc/classes/Array.src/M000036.html
64
83
  - doc/classes/Array.src/M000037.html
65
84
  - doc/classes/Array.src/M000038.html
66
85
  - doc/classes/Array.src/M000039.html
67
86
  - doc/classes/Array.src/M000040.html
68
87
  - doc/classes/Array.src/M000041.html
69
- - doc/classes/Array.src/M000042.html
70
- - doc/classes/Array.src/M000043.html
71
- - doc/classes/Array.src/M000044.html
72
- - doc/classes/Array.src/M000045.html
73
- - doc/classes/Array.src/M000046.html
74
- - doc/classes/Array.src/M000047.html
75
- - doc/classes/Array.src/M000048.html
76
- - doc/classes/Array.src/M000049.html
77
- - doc/classes/Array.src/M000050.html
78
- - doc/classes/Array.src/M000051.html
79
- - doc/classes/Array.src/M000052.html
80
- - doc/classes/Array.src/M000053.html
81
- - doc/classes/Array.src/M000054.html
82
- - doc/classes/Array.src/M000055.html
83
- - doc/classes/Array.src/M000056.html
84
- - doc/classes/Array.src/M000057.html
85
- - doc/classes/Array.src/M000058.html
86
- - doc/classes/Array.src/M000059.html
87
- - doc/classes/Array.src/M000060.html
88
- - doc/classes/Array.src/M000061.html
89
- - doc/classes/Array.src/M000062.html
90
- - doc/classes/Array.src/M000063.html
91
88
  - doc/classes/Class.html
92
89
  - doc/classes/Class.src
93
- - doc/classes/Class.src/M000075.html
94
- - doc/classes/Class.src/M000076.html
90
+ - doc/classes/Class.src/M000042.html
91
+ - doc/classes/Class.src/M000043.html
95
92
  - doc/classes/Hash.html
96
93
  - doc/classes/Hash.src
94
+ - doc/classes/Hash.src/M000001.html
95
+ - doc/classes/Hash.src/M000002.html
96
+ - doc/classes/Hash.src/M000003.html
97
97
  - doc/classes/Hash.src/M000004.html
98
98
  - doc/classes/Hash.src/M000005.html
99
99
  - doc/classes/Hash.src/M000006.html
@@ -116,101 +116,73 @@ files:
116
116
  - doc/classes/Hash.src/M000023.html
117
117
  - doc/classes/Hash.src/M000024.html
118
118
  - doc/classes/Hash.src/M000025.html
119
- - doc/classes/Hash.src/M000026.html
120
- - doc/classes/Hash.src/M000027.html
121
- - doc/classes/Hash.src/M000028.html
122
- - doc/classes/Hash.src/M000029.html
123
- - doc/classes/Hash.src/M000030.html
124
- - doc/classes/Hash.src/M000031.html
125
- - doc/classes/Hash.src/M000032.html
126
- - doc/classes/Hash.src/M000033.html
127
- - doc/classes/Hash.src/M000034.html
128
- - doc/classes/Hash.src/M000035.html
129
- - doc/classes/Hash.src/M000036.html
130
119
  - doc/classes/Object.html
131
120
  - doc/classes/Object.src
132
- - doc/classes/Object.src/M000077.html
133
- - doc/classes/Object.src/M000078.html
134
- - doc/classes/Object.src/M000079.html
135
- - doc/classes/Object.src/M000080.html
136
- - doc/classes/Object.src/M000081.html
137
- - doc/classes/Object.src/M000082.html
138
- - doc/classes/Object.src/M000083.html
139
- - doc/classes/Object.src/M000084.html
140
- - doc/classes/OrderedArray.html
141
- - doc/classes/OrderedArray.src
142
- - doc/classes/OrderedArray.src/M000001.html
143
- - doc/classes/OrderedArray.src/M000002.html
144
- - doc/classes/OrderedArray.src/M000003.html
145
- - doc/classes/OrderedHash.html
146
- - doc/classes/OrderedHash.src
147
- - doc/classes/OrderedHash.src/M000064.html
148
- - doc/classes/OrderedHash.src/M000065.html
149
- - doc/classes/OrderedHash.src/M000066.html
150
- - doc/classes/OrderedHash.src/M000067.html
151
- - doc/classes/OrderedHash.src/M000068.html
152
- - doc/classes/OrderedHash.src/M000069.html
153
- - doc/classes/OrderedHash.src/M000070.html
154
- - doc/classes/OrderedHash.src/M000071.html
155
- - doc/classes/OrderedHash.src/M000072.html
156
- - doc/classes/OrderedHash.src/M000073.html
157
- - doc/classes/OrderedHash.src/M000074.html
121
+ - doc/classes/Object.src/M000044.html
122
+ - doc/classes/Object.src/M000045.html
123
+ - doc/classes/Object.src/M000046.html
124
+ - doc/classes/Object.src/M000047.html
125
+ - doc/classes/Object.src/M000048.html
126
+ - doc/classes/Object.src/M000049.html
127
+ - doc/classes/Object.src/M000050.html
128
+ - doc/classes/Object.src/M000051.html
158
129
  - doc/classes/Qbxml
159
130
  - doc/classes/Qbxml/Request.html
160
131
  - doc/classes/Qbxml/Request.src
161
- - doc/classes/Qbxml/Request.src/M000184.html
162
- - doc/classes/Qbxml/Request.src/M000185.html
163
- - doc/classes/Qbxml/Request.src/M000186.html
132
+ - doc/classes/Qbxml/Request.src/M000132.html
133
+ - doc/classes/Qbxml/Request.src/M000133.html
134
+ - doc/classes/Qbxml/Request.src/M000134.html
164
135
  - doc/classes/Qbxml/RequestSet.html
165
136
  - doc/classes/Qbxml/RequestSet.src
166
- - doc/classes/Qbxml/RequestSet.src/M000187.html
167
- - doc/classes/Qbxml/RequestSet.src/M000188.html
168
- - doc/classes/Qbxml/RequestSet.src/M000189.html
169
- - doc/classes/Qbxml/RequestSet.src/M000190.html
137
+ - doc/classes/Qbxml/RequestSet.src/M000135.html
138
+ - doc/classes/Qbxml/RequestSet.src/M000136.html
139
+ - doc/classes/Qbxml/RequestSet.src/M000137.html
140
+ - doc/classes/Qbxml/RequestSet.src/M000138.html
170
141
  - doc/classes/Qbxml/Response.html
171
142
  - doc/classes/Qbxml/Response.src
172
- - doc/classes/Qbxml/Response.src/M000175.html
173
- - doc/classes/Qbxml/Response.src/M000176.html
174
- - doc/classes/Qbxml/Response.src/M000177.html
175
- - doc/classes/Qbxml/Response.src/M000178.html
176
- - doc/classes/Qbxml/Response.src/M000179.html
177
- - doc/classes/Qbxml/Response.src/M000180.html
178
- - doc/classes/Qbxml/Response.src/M000181.html
179
- - doc/classes/Qbxml/Response.src/M000182.html
180
- - doc/classes/Qbxml/Response.src/M000183.html
143
+ - doc/classes/Qbxml/Response.src/M000123.html
144
+ - doc/classes/Qbxml/Response.src/M000124.html
145
+ - doc/classes/Qbxml/Response.src/M000125.html
146
+ - doc/classes/Qbxml/Response.src/M000126.html
147
+ - doc/classes/Qbxml/Response.src/M000127.html
148
+ - doc/classes/Qbxml/Response.src/M000128.html
149
+ - doc/classes/Qbxml/Response.src/M000129.html
150
+ - doc/classes/Qbxml/Response.src/M000130.html
151
+ - doc/classes/Qbxml/Response.src/M000131.html
181
152
  - doc/classes/Qbxml/ResponseSet.html
182
153
  - doc/classes/Qbxml/ResponseSet.src
183
- - doc/classes/Qbxml/ResponseSet.src/M000168.html
184
- - doc/classes/Qbxml/ResponseSet.src/M000169.html
185
- - doc/classes/Qbxml/ResponseSet.src/M000170.html
186
- - doc/classes/Qbxml/ResponseSet.src/M000171.html
187
- - doc/classes/Qbxml/ResponseSet.src/M000172.html
188
- - doc/classes/Qbxml/ResponseSet.src/M000173.html
189
- - doc/classes/Qbxml/ResponseSet.src/M000174.html
154
+ - doc/classes/Qbxml/ResponseSet.src/M000116.html
155
+ - doc/classes/Qbxml/ResponseSet.src/M000117.html
156
+ - doc/classes/Qbxml/ResponseSet.src/M000118.html
157
+ - doc/classes/Qbxml/ResponseSet.src/M000119.html
158
+ - doc/classes/Qbxml/ResponseSet.src/M000120.html
159
+ - doc/classes/Qbxml/ResponseSet.src/M000121.html
160
+ - doc/classes/Qbxml/ResponseSet.src/M000122.html
190
161
  - doc/classes/Qbxml.html
191
162
  - doc/classes/Quickbooks
192
163
  - doc/classes/Quickbooks/Address.html
193
164
  - doc/classes/Quickbooks/Address.src
194
- - doc/classes/Quickbooks/Address.src/M000150.html
165
+ - doc/classes/Quickbooks/Address.src/M000115.html
195
166
  - doc/classes/Quickbooks/Base.html
196
167
  - doc/classes/Quickbooks/Base.src
197
- - doc/classes/Quickbooks/Base.src/M000131.html
198
- - doc/classes/Quickbooks/Base.src/M000132.html
199
- - doc/classes/Quickbooks/Base.src/M000133.html
200
- - doc/classes/Quickbooks/Base.src/M000134.html
201
- - doc/classes/Quickbooks/Base.src/M000135.html
202
- - doc/classes/Quickbooks/Base.src/M000136.html
203
- - doc/classes/Quickbooks/Base.src/M000137.html
204
- - doc/classes/Quickbooks/Base.src/M000138.html
205
- - doc/classes/Quickbooks/Base.src/M000139.html
206
- - doc/classes/Quickbooks/Base.src/M000140.html
207
- - doc/classes/Quickbooks/Base.src/M000141.html
208
- - doc/classes/Quickbooks/Base.src/M000142.html
209
- - doc/classes/Quickbooks/Base.src/M000143.html
210
- - doc/classes/Quickbooks/Base.src/M000144.html
211
- - doc/classes/Quickbooks/Base.src/M000145.html
212
- - doc/classes/Quickbooks/Base.src/M000146.html
213
- - doc/classes/Quickbooks/Base.src/M000147.html
168
+ - doc/classes/Quickbooks/Base.src/M000095.html
169
+ - doc/classes/Quickbooks/Base.src/M000096.html
170
+ - doc/classes/Quickbooks/Base.src/M000097.html
171
+ - doc/classes/Quickbooks/Base.src/M000098.html
172
+ - doc/classes/Quickbooks/Base.src/M000099.html
173
+ - doc/classes/Quickbooks/Base.src/M000100.html
174
+ - doc/classes/Quickbooks/Base.src/M000101.html
175
+ - doc/classes/Quickbooks/Base.src/M000102.html
176
+ - doc/classes/Quickbooks/Base.src/M000103.html
177
+ - doc/classes/Quickbooks/Base.src/M000104.html
178
+ - doc/classes/Quickbooks/Base.src/M000105.html
179
+ - doc/classes/Quickbooks/Base.src/M000106.html
180
+ - doc/classes/Quickbooks/Base.src/M000107.html
181
+ - doc/classes/Quickbooks/Base.src/M000108.html
182
+ - doc/classes/Quickbooks/Base.src/M000109.html
183
+ - doc/classes/Quickbooks/Base.src/M000110.html
184
+ - doc/classes/Quickbooks/Base.src/M000111.html
185
+ - doc/classes/Quickbooks/Base.src/M000112.html
214
186
  - doc/classes/Quickbooks/BillAddress.html
215
187
  - doc/classes/Quickbooks/CreditCardInfo.html
216
188
  - doc/classes/Quickbooks/Customer.html
@@ -220,50 +192,50 @@ files:
220
192
  - doc/classes/Quickbooks/JobTypeRef.html
221
193
  - doc/classes/Quickbooks/ListDeleted.html
222
194
  - doc/classes/Quickbooks/ListDeleted.src
223
- - doc/classes/Quickbooks/ListDeleted.src/M000149.html
195
+ - doc/classes/Quickbooks/ListDeleted.src/M000114.html
224
196
  - doc/classes/Quickbooks/ListItem.html
225
197
  - doc/classes/Quickbooks/ListItem.src
226
- - doc/classes/Quickbooks/ListItem.src/M000129.html
227
- - doc/classes/Quickbooks/ListItem.src/M000130.html
198
+ - doc/classes/Quickbooks/ListItem.src/M000093.html
199
+ - doc/classes/Quickbooks/ListItem.src/M000094.html
228
200
  - doc/classes/Quickbooks/Model.html
229
201
  - doc/classes/Quickbooks/Model.src
230
- - doc/classes/Quickbooks/Model.src/M000109.html
231
- - doc/classes/Quickbooks/Model.src/M000110.html
232
- - doc/classes/Quickbooks/Model.src/M000111.html
233
- - doc/classes/Quickbooks/Model.src/M000112.html
234
- - doc/classes/Quickbooks/Model.src/M000113.html
235
- - doc/classes/Quickbooks/Model.src/M000114.html
236
- - doc/classes/Quickbooks/Model.src/M000115.html
237
- - doc/classes/Quickbooks/Model.src/M000116.html
238
- - doc/classes/Quickbooks/Model.src/M000117.html
239
- - doc/classes/Quickbooks/Model.src/M000118.html
240
- - doc/classes/Quickbooks/Model.src/M000119.html
241
- - doc/classes/Quickbooks/Model.src/M000120.html
242
- - doc/classes/Quickbooks/Model.src/M000121.html
243
- - doc/classes/Quickbooks/Model.src/M000122.html
244
- - doc/classes/Quickbooks/Model.src/M000123.html
245
- - doc/classes/Quickbooks/Model.src/M000124.html
246
- - doc/classes/Quickbooks/Model.src/M000125.html
247
- - doc/classes/Quickbooks/Model.src/M000126.html
248
- - doc/classes/Quickbooks/Model.src/M000127.html
202
+ - doc/classes/Quickbooks/Model.src/M000073.html
203
+ - doc/classes/Quickbooks/Model.src/M000074.html
204
+ - doc/classes/Quickbooks/Model.src/M000075.html
205
+ - doc/classes/Quickbooks/Model.src/M000076.html
206
+ - doc/classes/Quickbooks/Model.src/M000077.html
207
+ - doc/classes/Quickbooks/Model.src/M000078.html
208
+ - doc/classes/Quickbooks/Model.src/M000079.html
209
+ - doc/classes/Quickbooks/Model.src/M000080.html
210
+ - doc/classes/Quickbooks/Model.src/M000081.html
211
+ - doc/classes/Quickbooks/Model.src/M000082.html
212
+ - doc/classes/Quickbooks/Model.src/M000083.html
213
+ - doc/classes/Quickbooks/Model.src/M000084.html
214
+ - doc/classes/Quickbooks/Model.src/M000085.html
215
+ - doc/classes/Quickbooks/Model.src/M000086.html
216
+ - doc/classes/Quickbooks/Model.src/M000087.html
217
+ - doc/classes/Quickbooks/Model.src/M000088.html
218
+ - doc/classes/Quickbooks/Model.src/M000089.html
219
+ - doc/classes/Quickbooks/Model.src/M000090.html
220
+ - doc/classes/Quickbooks/Model.src/M000091.html
249
221
  - doc/classes/Quickbooks/OleAdapter
250
222
  - doc/classes/Quickbooks/OleAdapter/Connection.html
251
223
  - doc/classes/Quickbooks/OleAdapter/Connection.src
252
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000094.html
253
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000095.html
254
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000096.html
255
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000097.html
256
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000098.html
257
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000099.html
258
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000100.html
259
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000101.html
260
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000102.html
261
- - doc/classes/Quickbooks/OleAdapter/Connection.src/M000103.html
224
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000058.html
225
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000059.html
226
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000060.html
227
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000061.html
228
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000062.html
229
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000063.html
230
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000064.html
231
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000065.html
232
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000066.html
233
+ - doc/classes/Quickbooks/OleAdapter/Connection.src/M000067.html
262
234
  - doc/classes/Quickbooks/OleAdapter/Ole.html
263
235
  - doc/classes/Quickbooks/OleAdapter/Ole.src
264
- - doc/classes/Quickbooks/OleAdapter/Ole.src/M000104.html
265
- - doc/classes/Quickbooks/OleAdapter/Ole.src/M000105.html
266
- - doc/classes/Quickbooks/OleAdapter/Ole.src/M000106.html
236
+ - doc/classes/Quickbooks/OleAdapter/Ole.src/M000068.html
237
+ - doc/classes/Quickbooks/OleAdapter/Ole.src/M000069.html
238
+ - doc/classes/Quickbooks/OleAdapter/Ole.src/M000070.html
267
239
  - doc/classes/Quickbooks/OleAdapter.html
268
240
  - doc/classes/Quickbooks/ParentRef.html
269
241
  - doc/classes/Quickbooks/PreferredPaymentMethodRef.html
@@ -271,56 +243,30 @@ files:
271
243
  - doc/classes/Quickbooks/QbxmlDebugAdapter
272
244
  - doc/classes/Quickbooks/QbxmlDebugAdapter/Connection.html
273
245
  - doc/classes/Quickbooks/QbxmlDebugAdapter/Connection.src
274
- - doc/classes/Quickbooks/QbxmlDebugAdapter/Connection.src/M000093.html
246
+ - doc/classes/Quickbooks/QbxmlDebugAdapter/Connection.src/M000057.html
275
247
  - doc/classes/Quickbooks/QbxmlDebugAdapter.html
276
248
  - doc/classes/Quickbooks/Ref.html
277
249
  - doc/classes/Quickbooks/Ref.src
278
- - doc/classes/Quickbooks/Ref.src/M000148.html
250
+ - doc/classes/Quickbooks/Ref.src/M000113.html
279
251
  - doc/classes/Quickbooks/SalesRepRef.html
280
252
  - doc/classes/Quickbooks/SalesTaxCodeRef.html
281
253
  - doc/classes/Quickbooks/ShipAddress.html
282
254
  - doc/classes/Quickbooks/TermsRef.html
283
255
  - doc/classes/Quickbooks/Transaction.html
284
256
  - doc/classes/Quickbooks/Transaction.src
285
- - doc/classes/Quickbooks/Transaction.src/M000107.html
286
- - doc/classes/Quickbooks/Transaction.src/M000108.html
257
+ - doc/classes/Quickbooks/Transaction.src/M000071.html
258
+ - doc/classes/Quickbooks/Transaction.src/M000072.html
287
259
  - doc/classes/Quickbooks/TxnDeleted.html
288
260
  - doc/classes/Quickbooks/TxnDeleted.src
289
- - doc/classes/Quickbooks/TxnDeleted.src/M000128.html
261
+ - doc/classes/Quickbooks/TxnDeleted.src/M000092.html
290
262
  - doc/classes/Quickbooks.html
291
- - doc/classes/SlashedArray.html
292
- - doc/classes/SlashedArray.src
293
- - doc/classes/SlashedArray.src/M000161.html
294
- - doc/classes/SlashedArray.src/M000162.html
295
- - doc/classes/SlashedArray.src/M000163.html
296
- - doc/classes/SlashedArray.src/M000164.html
297
- - doc/classes/SlashedArray.src/M000165.html
298
- - doc/classes/SlashedArray.src/M000166.html
299
- - doc/classes/SlashedArray.src/M000167.html
300
- - doc/classes/SlashedHash.html
301
- - doc/classes/SlashedHash.src
302
- - doc/classes/SlashedHash.src/M000156.html
303
- - doc/classes/SlashedHash.src/M000157.html
304
- - doc/classes/SlashedHash.src/M000158.html
305
- - doc/classes/SlashedHash.src/M000159.html
306
- - doc/classes/SlashedHash.src/M000160.html
307
263
  - doc/classes/String.html
308
264
  - doc/classes/String.src
309
- - doc/classes/String.src/M000085.html
310
- - doc/classes/String.src/M000086.html
311
- - doc/classes/String.src/M000087.html
312
- - doc/classes/String.src/M000088.html
313
- - doc/classes/String.src/M000089.html
314
- - doc/classes/String.src/M000090.html
315
- - doc/classes/String.src/M000091.html
316
- - doc/classes/String.src/M000092.html
317
- - doc/classes/UniqueArray.html
318
- - doc/classes/UniqueArray.src
319
- - doc/classes/UniqueArray.src/M000151.html
320
- - doc/classes/UniqueArray.src/M000152.html
321
- - doc/classes/UniqueArray.src/M000153.html
322
- - doc/classes/UniqueArray.src/M000154.html
323
- - doc/classes/UniqueArray.src/M000155.html
265
+ - doc/classes/String.src/M000052.html
266
+ - doc/classes/String.src/M000053.html
267
+ - doc/classes/String.src/M000054.html
268
+ - doc/classes/String.src/M000055.html
269
+ - doc/classes/String.src/M000056.html
324
270
  - doc/created.rid
325
271
  - doc/files
326
272
  - doc/files/lib
@@ -346,7 +292,6 @@ files:
346
292
  - doc/files/lib/quickbooks/models/list_item_rb.html
347
293
  - doc/files/lib/quickbooks/models/transaction_rb.html
348
294
  - doc/files/lib/quickbooks/ruby_magic_rb.html
349
- - doc/files/lib/quickbooks/structure_rb.html
350
295
  - doc/files/lib/quickbooks_rb.html
351
296
  - doc/files/LICENSE.html
352
297
  - doc/files/README.html