ledger_sync 1.3.4 → 1.4.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (683) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -2
  3. data/.overcommit.yml +30 -0
  4. data/.rubocop.yml +14 -1
  5. data/.travis.yml +12 -2
  6. data/Dockerfile +2 -2
  7. data/Gemfile +2 -0
  8. data/Gemfile.lock +99 -39
  9. data/LICENSE.txt +5 -21
  10. data/README.md +9 -489
  11. data/Rakefile +2 -0
  12. data/bin/console +1 -0
  13. data/bin/quickbooks_online_oauth_server.rb +103 -0
  14. data/docs/.gitignore +4 -0
  15. data/documentation/build.sh +10 -0
  16. data/documentation/generate.rb +32 -0
  17. data/documentation/generators/generator.rb +80 -0
  18. data/documentation/generators/guides/generator.rb +36 -0
  19. data/documentation/generators/reference/generator.rb +76 -0
  20. data/documentation/generators/reference/ledger/generator.rb +74 -0
  21. data/documentation/generators/template.rb +22 -0
  22. data/documentation/helper_methods.rb +17 -0
  23. data/documentation/site/CNAME +1 -0
  24. data/documentation/site/LICENSE.md +40 -0
  25. data/documentation/site/README.md +8 -0
  26. data/documentation/site/_config.yml +119 -0
  27. data/documentation/site/_data/guides_sections.yml +10 -0
  28. data/documentation/site/_data/reference_sections.yml +5 -0
  29. data/documentation/site/_includes/action_link.html +11 -0
  30. data/documentation/site/_includes/alerts/base.html +3 -0
  31. data/documentation/site/_includes/alerts/danger.html +1 -0
  32. data/documentation/site/_includes/alerts/info.html +1 -0
  33. data/documentation/site/_includes/alerts/success.html +1 -0
  34. data/documentation/site/_includes/alerts/warning.html +1 -0
  35. data/documentation/site/_includes/cta_buttons.html +4 -0
  36. data/documentation/site/_includes/example.md +8 -0
  37. data/documentation/site/_includes/footer.html +20 -0
  38. data/documentation/site/_includes/getting_help.md +8 -0
  39. data/documentation/site/_includes/guides_menu.html +29 -0
  40. data/documentation/site/_includes/guides_submenu.html +7 -0
  41. data/documentation/site/_includes/header.html +35 -0
  42. data/documentation/site/_includes/installation_instructions.md +17 -0
  43. data/documentation/site/_includes/ledgers/netsuite_soap_summary.md +1 -0
  44. data/documentation/site/_includes/ledgers/netsuite_summary.md +1 -0
  45. data/documentation/site/_includes/ledgers/netsuite_summary_shared.md +1 -0
  46. data/documentation/site/_includes/ledgers/quickbooks_online_summary.md +1 -0
  47. data/documentation/site/_includes/ledgers/stripe_summary.md +1 -0
  48. data/documentation/site/_includes/reference/netsuite/authentication/_token_based_authentication.md +99 -0
  49. data/documentation/site/_includes/reference/netsuite/authentication/index.md +15 -0
  50. data/documentation/site/_includes/reference/netsuite/authentication/token_based_authentication.md +6 -0
  51. data/documentation/site/_includes/reference/netsuite/index.md +25 -0
  52. data/documentation/site/_includes/reference/netsuite_soap/index.md +11 -0
  53. data/documentation/site/_includes/reference/quickbooks_online/authentication/index.md +55 -0
  54. data/documentation/site/_includes/reference/quickbooks_online/errors/index.md +9 -0
  55. data/documentation/site/_includes/reference/quickbooks_online/index.md +6 -0
  56. data/documentation/site/_includes/reference/quickbooks_online/webhooks/index.md +42 -0
  57. data/documentation/site/_includes/reference/stripe/index.md +6 -0
  58. data/documentation/site/_includes/section_content.html +29 -0
  59. data/documentation/site/_includes/section_cta.html +24 -0
  60. data/documentation/site/_includes/section_grid.html +45 -0
  61. data/documentation/site/_includes/section_guides.html +35 -0
  62. data/documentation/site/_includes/section_hero.html +23 -0
  63. data/documentation/site/_includes/submenu.html +7 -0
  64. data/documentation/site/_layouts/advanced.html +8 -0
  65. data/documentation/site/_layouts/base.html +34 -0
  66. data/documentation/site/_layouts/blog.html +51 -0
  67. data/documentation/site/_layouts/body.html +11 -0
  68. data/documentation/site/_layouts/guides.html +46 -0
  69. data/documentation/site/_layouts/page.html +26 -0
  70. data/documentation/site/_layouts/post.html +52 -0
  71. data/documentation/site/_layouts/reference.html +46 -0
  72. data/documentation/site/_layouts/reference_netsuite.html +46 -0
  73. data/documentation/site/_layouts/reference_netsuite_soap.html +46 -0
  74. data/documentation/site/_layouts/reference_quickbooks_online.html +46 -0
  75. data/documentation/site/_layouts/reference_stripe.html +46 -0
  76. data/documentation/site/_plugins/filters.rb +122 -0
  77. data/documentation/site/_plugins/hooks.rb +9 -0
  78. data/documentation/site/_posts/2020-06-01-introducing-docs.md +17 -0
  79. data/documentation/site/_posts/2020-06-10-netsuite-authentication.md +382 -0
  80. data/documentation/site/_sass/imports/_animations.scss +19 -0
  81. data/documentation/site/_sass/imports/_footer.scss +94 -0
  82. data/documentation/site/_sass/imports/_functions.scss +69 -0
  83. data/documentation/site/_sass/imports/_general.scss +687 -0
  84. data/documentation/site/_sass/imports/_guides.scss +300 -0
  85. data/documentation/site/_sass/imports/_header.scss +358 -0
  86. data/documentation/site/_sass/imports/_icons.scss +90 -0
  87. data/documentation/site/_sass/imports/_post-navigation.scss +67 -0
  88. data/documentation/site/_sass/imports/_posts-pages.scss +165 -0
  89. data/documentation/site/_sass/imports/_prism.scss +174 -0
  90. data/documentation/site/_sass/imports/_reset.scss +210 -0
  91. data/documentation/site/_sass/imports/_sections.scss +370 -0
  92. data/documentation/site/_sass/imports/_structure.scss +44 -0
  93. data/documentation/site/_templates/_layouts/reference_ledger.html.erb +46 -0
  94. data/documentation/site/_templates/guides/ledger.md.erb +9 -0
  95. data/documentation/site/_templates/reference/resources/index.md.erb +9 -0
  96. data/documentation/site/_templates/reference/resources/resource.md.erb +41 -0
  97. data/documentation/site/assets/css/brands.min.css +5 -0
  98. data/documentation/site/assets/css/fontawesome.min.css +5 -0
  99. data/documentation/site/assets/css/main.scss +45 -0
  100. data/documentation/site/assets/css/monokai.css +441 -0
  101. data/documentation/site/assets/js/main.js +214 -0
  102. data/documentation/site/assets/js/plugins.js +22 -0
  103. data/documentation/site/assets/js/prism.js +9 -0
  104. data/documentation/site/assets/webfonts/fa-brands-400.eot +0 -0
  105. data/documentation/site/assets/webfonts/fa-brands-400.svg +3452 -0
  106. data/documentation/site/assets/webfonts/fa-brands-400.ttf +0 -0
  107. data/documentation/site/assets/webfonts/fa-brands-400.woff +0 -0
  108. data/documentation/site/assets/webfonts/fa-brands-400.woff2 +0 -0
  109. data/documentation/site/blog/index.md +6 -0
  110. data/documentation/site/guides/architecture/clients.md +35 -0
  111. data/documentation/site/guides/architecture/index.md +14 -0
  112. data/documentation/site/guides/architecture/operations.md +45 -0
  113. data/documentation/site/guides/architecture/resources.md +40 -0
  114. data/documentation/site/guides/architecture/results.md +6 -0
  115. data/documentation/site/guides/architecture/searchers.md +28 -0
  116. data/documentation/site/guides/architecture/serialization.md +59 -0
  117. data/documentation/site/guides/community/index.md +8 -0
  118. data/documentation/site/guides/contribute/console.md +6 -0
  119. data/documentation/site/guides/contribute/deployment.md +17 -0
  120. data/documentation/site/guides/contribute/documentation.md +37 -0
  121. data/documentation/site/guides/contribute/index.md +18 -0
  122. data/documentation/site/guides/contribute/qa.md +16 -0
  123. data/documentation/site/guides/contribute/testing.md +6 -0
  124. data/documentation/site/guides/customization/custom_resources.md +50 -0
  125. data/documentation/site/guides/customization/custom_serializers.md +47 -0
  126. data/documentation/site/guides/customization/index.md +15 -0
  127. data/documentation/site/guides/customization/resource_converters.md +79 -0
  128. data/documentation/site/guides/getting-started/get-help.md +7 -0
  129. data/documentation/site/guides/getting-started/index.md +8 -0
  130. data/documentation/site/guides/getting-started/installation.md +7 -0
  131. data/documentation/site/guides/getting-started/quick-start.md +123 -0
  132. data/documentation/site/guides/index.md +16 -0
  133. data/documentation/site/guides/ledgers/index.md +12 -0
  134. data/documentation/site/guides/ledgers/netsuite.md +9 -0
  135. data/documentation/site/guides/ledgers/netsuite_soap.md +9 -0
  136. data/documentation/site/guides/ledgers/quickbooks_online.md +9 -0
  137. data/documentation/site/guides/ledgers/stripe.md +9 -0
  138. data/documentation/site/guides/modern-treasury/index.md +14 -0
  139. data/documentation/site/guides/tips_and_more/index.md +76 -0
  140. data/documentation/site/images/1.jpg +0 -0
  141. data/documentation/site/images/10.jpg +0 -0
  142. data/documentation/site/images/2.jpg +0 -0
  143. data/documentation/site/images/3.jpg +0 -0
  144. data/documentation/site/images/4.jpg +0 -0
  145. data/documentation/site/images/5.jpg +0 -0
  146. data/documentation/site/images/6.jpg +0 -0
  147. data/documentation/site/images/7.jpg +0 -0
  148. data/documentation/site/images/8.jpg +0 -0
  149. data/documentation/site/images/9.jpg +0 -0
  150. data/documentation/site/images/logo.svg +8 -0
  151. data/documentation/site/index.md +99 -0
  152. data/documentation/site/overview.md +21 -0
  153. data/documentation/site/reference/index.md +6 -0
  154. data/documentation/site/reference/netsuite/authentication/_token_based_authentication.md +99 -0
  155. data/documentation/site/reference/netsuite/authentication/index.md +15 -0
  156. data/documentation/site/reference/netsuite/authentication/token_based_authentication.md +6 -0
  157. data/documentation/site/reference/netsuite/index.md +25 -0
  158. data/documentation/site/reference/netsuite/resources/account.md +44 -0
  159. data/documentation/site/reference/netsuite/resources/check.md +55 -0
  160. data/documentation/site/reference/netsuite/resources/check_line_item.md +27 -0
  161. data/documentation/site/reference/netsuite/resources/currency.md +49 -0
  162. data/documentation/site/reference/netsuite/resources/customer.md +54 -0
  163. data/documentation/site/reference/netsuite/resources/customer_deposit.md +52 -0
  164. data/documentation/site/reference/netsuite/resources/department.md +53 -0
  165. data/documentation/site/reference/netsuite/resources/deposit.md +29 -0
  166. data/documentation/site/reference/netsuite/resources/deposit_line_item.md +27 -0
  167. data/documentation/site/reference/netsuite/resources/index.md +25 -0
  168. data/documentation/site/reference/netsuite/resources/invoice.md +29 -0
  169. data/documentation/site/reference/netsuite/resources/invoice_line_item.md +26 -0
  170. data/documentation/site/reference/netsuite/resources/item.md +23 -0
  171. data/documentation/site/reference/netsuite/resources/journal_entry.md +52 -0
  172. data/documentation/site/reference/netsuite/resources/journal_entry_line_item.md +28 -0
  173. data/documentation/site/reference/netsuite/resources/ledger_class.md +53 -0
  174. data/documentation/site/reference/netsuite/resources/location.md +49 -0
  175. data/documentation/site/reference/netsuite/resources/resource.md +22 -0
  176. data/documentation/site/reference/netsuite/resources/subsidiary.md +26 -0
  177. data/documentation/site/reference/netsuite/resources/vendor.md +55 -0
  178. data/documentation/site/reference/netsuite_soap/index.md +11 -0
  179. data/documentation/site/reference/netsuite_soap/resources/customer.md +38 -0
  180. data/documentation/site/reference/netsuite_soap/resources/index.md +9 -0
  181. data/documentation/site/reference/netsuite_soap/resources/resource.md +22 -0
  182. data/documentation/site/reference/netsuite_soap/resources/subsidiary.md +36 -0
  183. data/documentation/site/reference/quickbooks_online/authentication/index.md +55 -0
  184. data/documentation/site/reference/quickbooks_online/errors/index.md +9 -0
  185. data/documentation/site/reference/quickbooks_online/index.md +6 -0
  186. data/documentation/site/reference/quickbooks_online/resources/account.md +50 -0
  187. data/documentation/site/reference/quickbooks_online/resources/bill.md +51 -0
  188. data/documentation/site/reference/quickbooks_online/resources/bill_line_item.md +26 -0
  189. data/documentation/site/reference/quickbooks_online/resources/bill_payment.md +53 -0
  190. data/documentation/site/reference/quickbooks_online/resources/bill_payment_line_item.md +24 -0
  191. data/documentation/site/reference/quickbooks_online/resources/currency.md +25 -0
  192. data/documentation/site/reference/quickbooks_online/resources/customer.md +46 -0
  193. data/documentation/site/reference/quickbooks_online/resources/department.md +47 -0
  194. data/documentation/site/reference/quickbooks_online/resources/deposit.md +49 -0
  195. data/documentation/site/reference/quickbooks_online/resources/deposit_line_item.md +27 -0
  196. data/documentation/site/reference/quickbooks_online/resources/expense.md +52 -0
  197. data/documentation/site/reference/quickbooks_online/resources/expense_line_item.md +26 -0
  198. data/documentation/site/reference/quickbooks_online/resources/index.md +33 -0
  199. data/documentation/site/reference/quickbooks_online/resources/invoice.md +47 -0
  200. data/documentation/site/reference/quickbooks_online/resources/invoice_sales_line_item.md +26 -0
  201. data/documentation/site/reference/quickbooks_online/resources/item.md +23 -0
  202. data/documentation/site/reference/quickbooks_online/resources/journal_entry.md +47 -0
  203. data/documentation/site/reference/quickbooks_online/resources/journal_entry_line_item.md +28 -0
  204. data/documentation/site/reference/quickbooks_online/resources/ledger_class.md +47 -0
  205. data/documentation/site/reference/quickbooks_online/resources/payment.md +50 -0
  206. data/documentation/site/reference/quickbooks_online/resources/payment_line_item.md +24 -0
  207. data/documentation/site/reference/quickbooks_online/resources/preferences.md +38 -0
  208. data/documentation/site/reference/quickbooks_online/resources/primary_email_addr.md +23 -0
  209. data/documentation/site/reference/quickbooks_online/resources/primary_phone.md +23 -0
  210. data/documentation/site/reference/quickbooks_online/resources/resource.md +22 -0
  211. data/documentation/site/reference/quickbooks_online/resources/subsidiary.md +24 -0
  212. data/documentation/site/reference/quickbooks_online/resources/transfer.md +46 -0
  213. data/documentation/site/reference/quickbooks_online/resources/vendor.md +49 -0
  214. data/documentation/site/reference/quickbooks_online/webhooks/index.md +42 -0
  215. data/documentation/site/reference/stripe/index.md +6 -0
  216. data/documentation/site/reference/stripe/resources/customer.md +49 -0
  217. data/documentation/site/reference/stripe/resources/index.md +8 -0
  218. data/documentation/site/reference/stripe/resources/resource.md +22 -0
  219. data/documentation/site/style-guide.md +137 -0
  220. data/ledger_sync.gemspec +8 -2
  221. data/lib/ledger_sync.rb +47 -62
  222. data/lib/ledger_sync/concerns/validatable.rb +2 -0
  223. data/lib/ledger_sync/core_ext/resonad.rb +2 -2
  224. data/lib/ledger_sync/deserializer.rb +108 -0
  225. data/lib/ledger_sync/error.rb +15 -0
  226. data/lib/ledger_sync/error/{adaptor_errors.rb → ledger_errors.rb} +13 -13
  227. data/lib/ledger_sync/error/operation_errors.rb +1 -1
  228. data/lib/ledger_sync/error/resource_errors.rb +49 -19
  229. data/lib/ledger_sync/{adaptor_configuration.rb → ledger_configuration.rb} +12 -12
  230. data/lib/ledger_sync/ledger_configuration_store.rb +60 -0
  231. data/lib/ledger_sync/{adaptors/adaptor.rb → ledgers/client.rb} +35 -17
  232. data/lib/ledger_sync/{adaptors → ledgers}/contract.rb +1 -1
  233. data/lib/ledger_sync/ledgers/dashboard_url_helper.rb +23 -0
  234. data/lib/ledger_sync/ledgers/mixins/infer_client_mixin.rb +28 -0
  235. data/lib/ledger_sync/{adaptors → ledgers}/mixins/infer_resource_class_mixin.rb +5 -2
  236. data/lib/ledger_sync/ledgers/mixins/infer_serializer_mixin.rb +54 -0
  237. data/lib/ledger_sync/{adaptors → ledgers}/mixins/infer_validation_contract_mixin.rb +1 -1
  238. data/lib/ledger_sync/{adaptors → ledgers}/mixins/offset_and_limit_pagination_searcher_mixin.rb +1 -1
  239. data/lib/ledger_sync/ledgers/mixins/serialization_mixin.rb +41 -0
  240. data/lib/ledger_sync/ledgers/netsuite/account/deserializer.rb +23 -0
  241. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/account/operations/create.rb +4 -4
  242. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/account/operations/find.rb +4 -4
  243. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/account/searcher.rb +2 -2
  244. data/lib/ledger_sync/ledgers/netsuite/account/searcher_deserializer.rb +29 -0
  245. data/lib/ledger_sync/ledgers/netsuite/account/serializer.rb +21 -0
  246. data/lib/ledger_sync/ledgers/netsuite/check/deserializer.rb +29 -0
  247. data/lib/ledger_sync/ledgers/netsuite/check/operations/create.rb +27 -0
  248. data/lib/ledger_sync/ledgers/netsuite/check/operations/delete.rb +27 -0
  249. data/lib/ledger_sync/ledgers/netsuite/check/operations/find.rb +27 -0
  250. data/lib/ledger_sync/ledgers/netsuite/check/operations/update.rb +27 -0
  251. data/lib/ledger_sync/ledgers/netsuite/check/searcher.rb +15 -0
  252. data/lib/ledger_sync/ledgers/netsuite/check/searcher_deserializer.rb +16 -0
  253. data/lib/ledger_sync/ledgers/netsuite/check/serializer.rb +51 -0
  254. data/lib/ledger_sync/ledgers/netsuite/check_line_item/deserializer.rb +17 -0
  255. data/lib/ledger_sync/ledgers/netsuite/check_line_item/serializer.rb +25 -0
  256. data/lib/ledger_sync/{adaptors/netsuite/adaptor.rb → ledgers/netsuite/client.rb} +47 -16
  257. data/lib/ledger_sync/ledgers/netsuite/config.rb +5 -0
  258. data/lib/ledger_sync/ledgers/netsuite/currency/deserializer.rb +23 -0
  259. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/currency/operations/create.rb +3 -3
  260. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/currency/operations/delete.rb +3 -3
  261. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/currency/operations/find.rb +3 -3
  262. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/currency/operations/update.rb +3 -3
  263. data/lib/ledger_sync/ledgers/netsuite/currency/serializer.rb +21 -0
  264. data/lib/ledger_sync/ledgers/netsuite/customer/deserializer.rb +22 -0
  265. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/customer/operations/create.rb +7 -5
  266. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/customer/operations/delete.rb +7 -5
  267. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/customer/operations/find.rb +7 -5
  268. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/customer/operations/update.rb +7 -5
  269. data/lib/ledger_sync/{adaptors/netsuite/department → ledgers/netsuite/customer}/searcher.rb +2 -2
  270. data/lib/ledger_sync/ledgers/netsuite/customer/searcher_deserializer.rb +18 -0
  271. data/lib/ledger_sync/ledgers/netsuite/customer/serializer.rb +29 -0
  272. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/deserializer.rb +20 -0
  273. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/create.rb +24 -0
  274. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/delete.rb +24 -0
  275. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/find.rb +24 -0
  276. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/operations/update.rb +24 -0
  277. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/searcher.rb +12 -0
  278. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/searcher_deserializer.rb +16 -0
  279. data/lib/ledger_sync/ledgers/netsuite/customer_deposit/serializer.rb +25 -0
  280. data/lib/ledger_sync/ledgers/netsuite/dashboard_url_helper.rb +28 -0
  281. data/lib/ledger_sync/ledgers/netsuite/department/deserializer.rb +15 -0
  282. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/department/operations/create.rb +3 -3
  283. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/department/operations/delete.rb +3 -3
  284. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/department/operations/find.rb +3 -3
  285. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/department/operations/update.rb +3 -3
  286. data/lib/ledger_sync/ledgers/netsuite/department/searcher.rb +12 -0
  287. data/lib/ledger_sync/ledgers/netsuite/department/searcher_deserializer.rb +19 -0
  288. data/lib/ledger_sync/ledgers/netsuite/department/serializer.rb +13 -0
  289. data/lib/ledger_sync/ledgers/netsuite/deserializer.rb +18 -0
  290. data/lib/ledger_sync/ledgers/netsuite/error.rb +19 -0
  291. data/lib/ledger_sync/ledgers/netsuite/journal_entry/deserializer.rb +31 -0
  292. data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/create.rb +26 -0
  293. data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/delete.rb +26 -0
  294. data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/find.rb +26 -0
  295. data/lib/ledger_sync/ledgers/netsuite/journal_entry/operations/update.rb +30 -0
  296. data/lib/ledger_sync/ledgers/netsuite/journal_entry/serializer.rb +36 -0
  297. data/lib/ledger_sync/ledgers/netsuite/journal_entry_line_item/deserializer.rb +20 -0
  298. data/lib/ledger_sync/ledgers/netsuite/journal_entry_line_item/serializer.rb +21 -0
  299. data/lib/ledger_sync/ledgers/netsuite/ledger_class/deserializer.rb +15 -0
  300. data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/create.rb +25 -0
  301. data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/delete.rb +25 -0
  302. data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/find.rb +25 -0
  303. data/lib/ledger_sync/ledgers/netsuite/ledger_class/operations/update.rb +25 -0
  304. data/lib/ledger_sync/ledgers/netsuite/ledger_class/searcher.rb +12 -0
  305. data/lib/ledger_sync/ledgers/netsuite/ledger_class/searcher_deserializer.rb +19 -0
  306. data/lib/ledger_sync/ledgers/netsuite/ledger_class/serializer.rb +13 -0
  307. data/lib/ledger_sync/ledgers/netsuite/location/deserializer.rb +15 -0
  308. data/lib/ledger_sync/ledgers/netsuite/location/operations/create.rb +21 -0
  309. data/lib/ledger_sync/ledgers/netsuite/location/operations/delete.rb +21 -0
  310. data/lib/ledger_sync/ledgers/netsuite/location/operations/find.rb +21 -0
  311. data/lib/ledger_sync/ledgers/netsuite/location/operations/update.rb +21 -0
  312. data/lib/ledger_sync/ledgers/netsuite/location/searcher.rb +12 -0
  313. data/lib/ledger_sync/ledgers/netsuite/location/serializer.rb +13 -0
  314. data/lib/ledger_sync/ledgers/netsuite/operation.rb +40 -0
  315. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/operation/create.rb +6 -13
  316. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/operation/delete.rb +4 -4
  317. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/operation/find.rb +9 -5
  318. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/operation/update.rb +6 -13
  319. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/record/http_method.rb +3 -3
  320. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/record/metadata.rb +17 -13
  321. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/record/parameter.rb +2 -2
  322. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/record/property.rb +2 -2
  323. data/lib/ledger_sync/ledgers/netsuite/reference/serializer.rb +13 -0
  324. data/lib/ledger_sync/ledgers/netsuite/resource.rb +10 -0
  325. data/lib/ledger_sync/ledgers/netsuite/resources/account.rb +43 -0
  326. data/lib/ledger_sync/ledgers/netsuite/resources/check.rb +23 -0
  327. data/lib/ledger_sync/ledgers/netsuite/resources/check_line_item.rb +15 -0
  328. data/lib/ledger_sync/ledgers/netsuite/resources/currency.rb +13 -0
  329. data/lib/ledger_sync/ledgers/netsuite/resources/customer.rb +19 -0
  330. data/lib/ledger_sync/ledgers/netsuite/resources/customer_deposit.rb +15 -0
  331. data/lib/ledger_sync/ledgers/netsuite/resources/department.rb +16 -0
  332. data/lib/ledger_sync/ledgers/netsuite/resources/deposit.rb +28 -0
  333. data/lib/ledger_sync/ledgers/netsuite/resources/deposit_line_item.rb +25 -0
  334. data/lib/ledger_sync/ledgers/netsuite/resources/invoice.rb +28 -0
  335. data/lib/ledger_sync/ledgers/netsuite/resources/invoice_line_item.rb +21 -0
  336. data/lib/ledger_sync/ledgers/netsuite/resources/item.rb +11 -0
  337. data/lib/ledger_sync/ledgers/netsuite/resources/journal_entry.rb +26 -0
  338. data/lib/ledger_sync/ledgers/netsuite/resources/journal_entry_line_item.rb +24 -0
  339. data/lib/ledger_sync/ledgers/netsuite/resources/ledger_class.rb +16 -0
  340. data/lib/ledger_sync/ledgers/netsuite/resources/location.rb +11 -0
  341. data/lib/ledger_sync/ledgers/netsuite/resources/subsidiary.rb +12 -0
  342. data/lib/ledger_sync/ledgers/netsuite/resources/vendor.rb +23 -0
  343. data/lib/ledger_sync/ledgers/netsuite/searcher.rb +66 -0
  344. data/lib/ledger_sync/ledgers/netsuite/serializer.rb +13 -0
  345. data/lib/ledger_sync/ledgers/netsuite/subsidiary/deserializer.rb +17 -0
  346. data/lib/ledger_sync/ledgers/netsuite/subsidiary/searcher.rb +12 -0
  347. data/lib/ledger_sync/ledgers/netsuite/subsidiary/searcher_deserializer.rb +15 -0
  348. data/lib/ledger_sync/ledgers/netsuite/subsidiary/serializer.rb +15 -0
  349. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/token.rb +19 -23
  350. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_active_type.rb +32 -0
  351. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_customer_type.rb +33 -0
  352. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_entity_type.rb +30 -0
  353. data/lib/ledger_sync/ledgers/netsuite/type/deserializer_subsidiary_type.rb +33 -0
  354. data/lib/ledger_sync/ledgers/netsuite/vendor/deserializer.rb +30 -0
  355. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/vendor/operations/create.rb +3 -3
  356. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/vendor/operations/delete.rb +3 -3
  357. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/vendor/operations/find.rb +3 -3
  358. data/lib/ledger_sync/{adaptors → ledgers}/netsuite/vendor/operations/update.rb +3 -3
  359. data/lib/ledger_sync/ledgers/netsuite/vendor/searcher.rb +12 -0
  360. data/lib/ledger_sync/ledgers/netsuite/vendor/searcher_deserializer.rb +21 -0
  361. data/lib/ledger_sync/ledgers/netsuite/vendor/serializer.rb +30 -0
  362. data/lib/ledger_sync/{adaptors/netsuite_soap/adaptor.rb → ledgers/netsuite_soap/client.rb} +17 -23
  363. data/lib/ledger_sync/ledgers/netsuite_soap/config.rb +5 -0
  364. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/customer/operations/create.rb +5 -3
  365. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/customer/operations/find.rb +3 -3
  366. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/operation.rb +5 -5
  367. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/operation/create.rb +5 -5
  368. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/operation/find.rb +2 -2
  369. data/lib/ledger_sync/ledgers/netsuite_soap/resource.rb +10 -0
  370. data/lib/ledger_sync/ledgers/netsuite_soap/resources/customer.rb +29 -0
  371. data/lib/ledger_sync/ledgers/netsuite_soap/resources/subsidiary.rb +12 -0
  372. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/subsidiary/operations/create.rb +3 -3
  373. data/lib/ledger_sync/{adaptors → ledgers}/netsuite_soap/subsidiary/operations/find.rb +3 -3
  374. data/lib/ledger_sync/{adaptors → ledgers}/operation.rb +41 -34
  375. data/lib/ledger_sync/ledgers/quickbooks_online/account/deserializer.rb +43 -0
  376. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/account/operations/create.rb +6 -4
  377. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/account/operations/find.rb +6 -4
  378. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/account/operations/update.rb +4 -4
  379. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/account/searcher.rb +2 -2
  380. data/lib/ledger_sync/ledgers/quickbooks_online/account/serializer.rb +37 -0
  381. data/lib/ledger_sync/ledgers/quickbooks_online/bill/deserializer.rb +45 -0
  382. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill/operations/create.rb +5 -3
  383. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill/operations/find.rb +5 -3
  384. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill/operations/update.rb +5 -3
  385. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill/searcher.rb +2 -2
  386. data/lib/ledger_sync/ledgers/quickbooks_online/bill/serializer.rb +44 -0
  387. data/lib/ledger_sync/ledgers/quickbooks_online/bill_line_item/deserializer.rb +25 -0
  388. data/lib/ledger_sync/ledgers/quickbooks_online/bill_line_item/serializer.rb +29 -0
  389. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/deserializer.rb +59 -0
  390. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill_payment/operations/create.rb +3 -3
  391. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill_payment/operations/find.rb +3 -3
  392. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/bill_payment/operations/update.rb +3 -3
  393. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment/serializer.rb +77 -0
  394. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment_line_item/deserializer.rb +18 -0
  395. data/lib/ledger_sync/ledgers/quickbooks_online/bill_payment_line_item/serializer.rb +18 -0
  396. data/lib/ledger_sync/{adaptors/quickbooks_online/adaptor.rb → ledgers/quickbooks_online/client.rb} +30 -17
  397. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/config.rb +1 -1
  398. data/lib/ledger_sync/ledgers/quickbooks_online/currency/deserializer.rb +17 -0
  399. data/lib/ledger_sync/ledgers/quickbooks_online/currency/serializer.rb +16 -0
  400. data/lib/ledger_sync/ledgers/quickbooks_online/customer/deserializer.rb +19 -0
  401. data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/create.rb +26 -0
  402. data/lib/ledger_sync/ledgers/quickbooks_online/customer/operations/find.rb +26 -0
  403. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/customer/operations/update.rb +8 -6
  404. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/customer/searcher.rb +5 -3
  405. data/lib/ledger_sync/ledgers/quickbooks_online/customer/serializer.rb +19 -0
  406. data/lib/ledger_sync/ledgers/quickbooks_online/dashboard_url_helper.rb +34 -0
  407. data/lib/ledger_sync/ledgers/quickbooks_online/department/deserializer.rb +28 -0
  408. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/department/operations/create.rb +5 -3
  409. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/department/operations/find.rb +5 -3
  410. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/department/operations/update.rb +3 -3
  411. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/department/searcher.rb +3 -3
  412. data/lib/ledger_sync/ledgers/quickbooks_online/department/serializer.rb +49 -0
  413. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/deserializer.rb +39 -0
  414. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/deposit/operations/create.rb +5 -3
  415. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/deposit/operations/find.rb +5 -3
  416. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/deposit/operations/update.rb +3 -3
  417. data/lib/ledger_sync/{adaptors/quickbooks_online/expense → ledgers/quickbooks_online/deposit}/searcher.rb +2 -2
  418. data/lib/ledger_sync/ledgers/quickbooks_online/deposit/serializer.rb +39 -0
  419. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_item/deserializer.rb +38 -0
  420. data/lib/ledger_sync/ledgers/quickbooks_online/deposit_line_item/serializer.rb +41 -0
  421. data/lib/ledger_sync/ledgers/quickbooks_online/deserializer.rb +100 -0
  422. data/lib/ledger_sync/ledgers/quickbooks_online/expense/deserializer.rb +59 -0
  423. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/expense/operations/create.rb +5 -3
  424. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/expense/operations/find.rb +5 -3
  425. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/expense/operations/update.rb +5 -3
  426. data/lib/ledger_sync/{adaptors/quickbooks_online/deposit → ledgers/quickbooks_online/expense}/searcher.rb +3 -2
  427. data/lib/ledger_sync/ledgers/quickbooks_online/expense/serializer.rb +59 -0
  428. data/lib/ledger_sync/ledgers/quickbooks_online/expense_line_item/deserializer.rb +25 -0
  429. data/lib/ledger_sync/ledgers/quickbooks_online/expense_line_item/serializer.rb +27 -0
  430. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/deserializer.rb +35 -0
  431. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/invoice/operations/create.rb +3 -3
  432. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/invoice/operations/find.rb +5 -3
  433. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/invoice/operations/update.rb +5 -3
  434. data/lib/ledger_sync/ledgers/quickbooks_online/invoice/serializer.rb +35 -0
  435. data/lib/ledger_sync/ledgers/quickbooks_online/invoice_sales_line_item/deserializer.rb +25 -0
  436. data/lib/ledger_sync/ledgers/quickbooks_online/invoice_sales_line_item/serializer.rb +29 -0
  437. data/lib/ledger_sync/{adaptors/quickbooks_online/item/ledger_serializer.rb → ledgers/quickbooks_online/item/deserializer.rb} +3 -3
  438. data/lib/ledger_sync/ledgers/quickbooks_online/item/serializer.rb +12 -0
  439. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/deserializer.rb +33 -0
  440. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/journal_entry/operations/create.rb +5 -3
  441. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/journal_entry/operations/find.rb +5 -3
  442. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/journal_entry/operations/update.rb +5 -3
  443. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/journal_entry/searcher.rb +2 -2
  444. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry/serializer.rb +33 -0
  445. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_item/deserializer.rb +32 -0
  446. data/lib/ledger_sync/ledgers/quickbooks_online/journal_entry_line_item/serializer.rb +36 -0
  447. data/lib/ledger_sync/ledgers/quickbooks_online/ledger_class/deserializer.rb +28 -0
  448. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/ledger_class/operations/create.rb +5 -3
  449. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/ledger_class/operations/find.rb +5 -3
  450. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/ledger_class/operations/update.rb +3 -3
  451. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/ledger_class/searcher.rb +3 -3
  452. data/lib/ledger_sync/{adaptors/quickbooks_online/ledger_class/ledger_serializer.rb → ledgers/quickbooks_online/ledger_class/serializer.rb} +8 -9
  453. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/oauth_client.rb +1 -1
  454. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/operation.rb +8 -7
  455. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/operation/create.rb +4 -4
  456. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/operation/find.rb +3 -3
  457. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/operation/full_update.rb +11 -12
  458. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/operation/sparse_update.rb +5 -5
  459. data/lib/ledger_sync/ledgers/quickbooks_online/payment/deserializer.rb +48 -0
  460. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/payment/operations/create.rb +3 -3
  461. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/payment/operations/find.rb +5 -3
  462. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/payment/operations/update.rb +5 -3
  463. data/lib/ledger_sync/ledgers/quickbooks_online/payment/serializer.rb +48 -0
  464. data/lib/ledger_sync/ledgers/quickbooks_online/payment_line_item/deserializer.rb +18 -0
  465. data/lib/ledger_sync/ledgers/quickbooks_online/payment_line_item/serializer.rb +18 -0
  466. data/lib/ledger_sync/ledgers/quickbooks_online/preferences/deserializer.rb +43 -0
  467. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/preferences/operations/find.rb +2 -10
  468. data/lib/ledger_sync/ledgers/quickbooks_online/preferences/serializer.rb +43 -0
  469. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/request.rb +13 -13
  470. data/lib/ledger_sync/ledgers/quickbooks_online/resource.rb +10 -0
  471. data/lib/ledger_sync/ledgers/quickbooks_online/resources/account.rb +355 -0
  472. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill.rb +31 -0
  473. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_line_item.rb +21 -0
  474. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment.rb +42 -0
  475. data/lib/ledger_sync/ledgers/quickbooks_online/resources/bill_payment_line_item.rb +19 -0
  476. data/lib/ledger_sync/ledgers/quickbooks_online/resources/currency.rb +13 -0
  477. data/lib/ledger_sync/ledgers/quickbooks_online/resources/customer.rb +23 -0
  478. data/lib/ledger_sync/ledgers/quickbooks_online/resources/department.rb +16 -0
  479. data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit.rb +28 -0
  480. data/lib/ledger_sync/ledgers/quickbooks_online/resources/deposit_line_item.rb +25 -0
  481. data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense.rb +40 -0
  482. data/lib/ledger_sync/ledgers/quickbooks_online/resources/expense_line_item.rb +21 -0
  483. data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice.rb +28 -0
  484. data/lib/ledger_sync/ledgers/quickbooks_online/resources/invoice_sales_line_item.rb +21 -0
  485. data/lib/ledger_sync/ledgers/quickbooks_online/resources/item.rb +11 -0
  486. data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry.rb +24 -0
  487. data/lib/ledger_sync/ledgers/quickbooks_online/resources/journal_entry_line_item.rb +29 -0
  488. data/lib/ledger_sync/ledgers/quickbooks_online/resources/ledger_class.rb +16 -0
  489. data/lib/ledger_sync/ledgers/quickbooks_online/resources/payment.rb +31 -0
  490. data/lib/ledger_sync/ledgers/quickbooks_online/resources/payment_line_item.rb +19 -0
  491. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/resources/preferences.rb +2 -2
  492. data/lib/ledger_sync/ledgers/quickbooks_online/resources/primary_email_addr.rb +11 -0
  493. data/lib/ledger_sync/ledgers/quickbooks_online/resources/primary_phone.rb +11 -0
  494. data/lib/ledger_sync/ledgers/quickbooks_online/resources/subsidiary.rb +12 -0
  495. data/lib/ledger_sync/ledgers/quickbooks_online/resources/transfer.rb +24 -0
  496. data/lib/ledger_sync/ledgers/quickbooks_online/resources/vendor.rb +23 -0
  497. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/searcher.rb +6 -7
  498. data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/amount_float_to_integer_type.rb +21 -0
  499. data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/deserialize_transaction_reference_type.rb +30 -0
  500. data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/integer_to_amount_float_type.rb +21 -0
  501. data/lib/ledger_sync/ledgers/quickbooks_online/serialization/type/serialize_transaction_reference_type.rb +30 -0
  502. data/lib/ledger_sync/ledgers/quickbooks_online/serializer.rb +71 -0
  503. data/lib/ledger_sync/ledgers/quickbooks_online/serialziation/type/mapping_type.rb +25 -0
  504. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/deserializer.rb +34 -0
  505. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/transfer/operations/create.rb +5 -3
  506. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/transfer/operations/find.rb +5 -3
  507. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/transfer/operations/update.rb +3 -3
  508. data/lib/ledger_sync/ledgers/quickbooks_online/transfer/serializer.rb +34 -0
  509. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/util/error_matcher.rb +11 -8
  510. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/util/error_parser.rb +3 -3
  511. data/lib/ledger_sync/{adaptors/quickbooks_online/util/adaptor_error_parser.rb → ledgers/quickbooks_online/util/ledger_error_parser.rb} +19 -19
  512. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/util/operation_error_parser.rb +9 -9
  513. data/lib/ledger_sync/ledgers/quickbooks_online/vendor/deserializer.rb +25 -0
  514. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/vendor/operations/create.rb +3 -3
  515. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/vendor/operations/find.rb +4 -4
  516. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/vendor/operations/update.rb +3 -3
  517. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/vendor/searcher.rb +2 -2
  518. data/lib/ledger_sync/{adaptors/quickbooks_online/vendor/ledger_serializer.rb → ledgers/quickbooks_online/vendor/serializer.rb} +7 -7
  519. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/webhook.rb +1 -1
  520. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/webhook_event.rb +12 -10
  521. data/lib/ledger_sync/{adaptors → ledgers}/quickbooks_online/webhook_notification.rb +5 -4
  522. data/lib/ledger_sync/{adaptors → ledgers}/request.rb +11 -7
  523. data/lib/ledger_sync/{adaptors → ledgers}/response.rb +4 -2
  524. data/lib/ledger_sync/{adaptors → ledgers}/searcher.rb +11 -10
  525. data/lib/ledger_sync/ledgers/stripe/client.rb +37 -0
  526. data/lib/ledger_sync/{adaptors → ledgers}/stripe/config.rb +1 -1
  527. data/lib/ledger_sync/{adaptors → ledgers}/stripe/customer/operations/create.rb +3 -3
  528. data/lib/ledger_sync/{adaptors → ledgers}/stripe/customer/operations/delete.rb +3 -3
  529. data/lib/ledger_sync/{adaptors → ledgers}/stripe/customer/operations/find.rb +3 -3
  530. data/lib/ledger_sync/{adaptors → ledgers}/stripe/customer/operations/update.rb +3 -3
  531. data/lib/ledger_sync/ledgers/stripe/dashboard_url_helper.rb +21 -0
  532. data/lib/ledger_sync/{adaptors → ledgers}/stripe/operation.rb +5 -5
  533. data/lib/ledger_sync/{adaptors → ledgers}/stripe/operation/create.rb +2 -4
  534. data/lib/ledger_sync/{adaptors → ledgers}/stripe/operation/delete.rb +2 -4
  535. data/lib/ledger_sync/{adaptors → ledgers}/stripe/operation/find.rb +2 -2
  536. data/lib/ledger_sync/{adaptors → ledgers}/stripe/operation/update.rb +2 -4
  537. data/lib/ledger_sync/ledgers/stripe/resource.rb +10 -0
  538. data/lib/ledger_sync/ledgers/stripe/resources/customer.rb +13 -0
  539. data/lib/ledger_sync/operation.rb +23 -0
  540. data/lib/ledger_sync/resource.rb +24 -10
  541. data/lib/ledger_sync/resource_adaptor.rb +52 -0
  542. data/lib/ledger_sync/resource_attribute.rb +31 -9
  543. data/lib/ledger_sync/resource_attribute/dirty_mixin.rb +5 -1
  544. data/lib/ledger_sync/resource_attribute/mixin.rb +17 -27
  545. data/lib/ledger_sync/resource_attribute/reference/many.rb +21 -23
  546. data/lib/ledger_sync/resource_attribute/reference/one.rb +16 -5
  547. data/lib/ledger_sync/resource_attribute_set.rb +4 -8
  548. data/lib/ledger_sync/result.rb +9 -14
  549. data/lib/ledger_sync/serialization/attribute.rb +41 -0
  550. data/lib/ledger_sync/serialization/attribute_set_mixin.rb +27 -0
  551. data/lib/ledger_sync/serialization/deserializer_attribute.rb +82 -0
  552. data/lib/ledger_sync/serialization/deserializer_attribute_set.rb +22 -0
  553. data/lib/ledger_sync/serialization/mixin.rb +70 -0
  554. data/lib/ledger_sync/serialization/serializer_attribute.rb +64 -0
  555. data/lib/ledger_sync/serialization/serializer_attribute_set.rb +22 -0
  556. data/lib/ledger_sync/serialization/type/deserializer_references_many_type.rb +26 -0
  557. data/lib/ledger_sync/serialization/type/deserializer_references_one_type.rb +12 -0
  558. data/lib/ledger_sync/serialization/type/deserializer_type.rb +29 -0
  559. data/lib/ledger_sync/serialization/type/format_date_type.rb +23 -0
  560. data/lib/ledger_sync/serialization/type/mapping_type.rb +23 -0
  561. data/lib/ledger_sync/serialization/type/parse_date_type.rb +23 -0
  562. data/lib/ledger_sync/serialization/type/serializer_references_many_type.rb +21 -0
  563. data/lib/ledger_sync/serialization/type/serializer_references_one_type.rb +12 -0
  564. data/lib/ledger_sync/serialization/type/serializer_type.rb +23 -0
  565. data/lib/ledger_sync/serializer.rb +97 -0
  566. data/lib/ledger_sync/type/boolean.rb +2 -0
  567. data/lib/ledger_sync/type/date.rb +3 -1
  568. data/lib/ledger_sync/type/float.rb +2 -0
  569. data/lib/ledger_sync/type/hash.rb +6 -2
  570. data/lib/ledger_sync/type/id.rb +8 -2
  571. data/lib/ledger_sync/type/integer.rb +2 -0
  572. data/lib/ledger_sync/type/reference_many.rb +15 -5
  573. data/lib/ledger_sync/type/reference_one.rb +8 -17
  574. data/lib/ledger_sync/type/string.rb +2 -0
  575. data/lib/ledger_sync/type/string_from_set.rb +43 -0
  576. data/lib/ledger_sync/type/value_mixin.rb +37 -7
  577. data/lib/ledger_sync/util/hash_helpers.rb +12 -2
  578. data/lib/ledger_sync/util/mixins/delegate_iterable_methods_mixin.rb +44 -0
  579. data/lib/ledger_sync/util/mixins/dupable_mixin.rb +13 -0
  580. data/lib/ledger_sync/util/mixins/resource_registerable_mixin.rb +29 -0
  581. data/lib/ledger_sync/util/read_only_object.rb +1 -1
  582. data/lib/ledger_sync/util/resource_converter.rb +117 -0
  583. data/lib/ledger_sync/util/resource_converter/attribute.rb +133 -0
  584. data/lib/ledger_sync/util/resource_converter/attribute_set.rb +43 -0
  585. data/lib/ledger_sync/util/resource_converter/type/references_many_type.rb +27 -0
  586. data/lib/ledger_sync/util/resource_converter/type/references_one_type.rb +14 -0
  587. data/lib/ledger_sync/util/resource_converter/type/resource_converter_type.rb +26 -0
  588. data/lib/ledger_sync/util/resources_builder.rb +24 -16
  589. data/lib/ledger_sync/util/string_helpers.rb +3 -3
  590. data/lib/ledger_sync/util/url_helpers.rb +38 -0
  591. data/lib/ledger_sync/util/validator.rb +3 -1
  592. data/lib/ledger_sync/version.rb +3 -1
  593. data/licenses/BSL.txt +97 -0
  594. data/licenses/documentation_site.txt +7 -0
  595. metadata +626 -220
  596. data/_config.yml +0 -1
  597. data/lib/ledger_sync/adaptor_configuration_store.rb +0 -56
  598. data/lib/ledger_sync/adaptors/ledger_serializer.rb +0 -143
  599. data/lib/ledger_sync/adaptors/ledger_serializer_attribute.rb +0 -178
  600. data/lib/ledger_sync/adaptors/ledger_serializer_attribute_set.rb +0 -58
  601. data/lib/ledger_sync/adaptors/ledger_serializer_type/mapping_type.rb +0 -41
  602. data/lib/ledger_sync/adaptors/ledger_serializer_type/references_many_type.rb +0 -24
  603. data/lib/ledger_sync/adaptors/ledger_serializer_type/references_one_type.rb +0 -22
  604. data/lib/ledger_sync/adaptors/ledger_serializer_type/value_type.rb +0 -17
  605. data/lib/ledger_sync/adaptors/mixins/infer_adaptor_class_mixin.rb +0 -24
  606. data/lib/ledger_sync/adaptors/mixins/infer_ledger_serializer_mixin.rb +0 -45
  607. data/lib/ledger_sync/adaptors/netsuite/account/ledger_deserializer.rb +0 -24
  608. data/lib/ledger_sync/adaptors/netsuite/account/ledger_serializer.rb +0 -22
  609. data/lib/ledger_sync/adaptors/netsuite/config.rb +0 -5
  610. data/lib/ledger_sync/adaptors/netsuite/currency/deledger_serializer.rb +0 -28
  611. data/lib/ledger_sync/adaptors/netsuite/currency/ledger_serializer.rb +0 -25
  612. data/lib/ledger_sync/adaptors/netsuite/customer/ledger_deserializer.rb +0 -27
  613. data/lib/ledger_sync/adaptors/netsuite/customer/ledger_serializer.rb +0 -38
  614. data/lib/ledger_sync/adaptors/netsuite/department/ledger_serializer.rb +0 -17
  615. data/lib/ledger_sync/adaptors/netsuite/ledger_serializer.rb +0 -30
  616. data/lib/ledger_sync/adaptors/netsuite/ledger_serializer_type/reference_type.rb +0 -24
  617. data/lib/ledger_sync/adaptors/netsuite/ledger_serializer_type/subsidiary_type.rb +0 -22
  618. data/lib/ledger_sync/adaptors/netsuite/operation.rb +0 -19
  619. data/lib/ledger_sync/adaptors/netsuite/searcher.rb +0 -36
  620. data/lib/ledger_sync/adaptors/netsuite/vendor/ledger_deserializer.rb +0 -32
  621. data/lib/ledger_sync/adaptors/netsuite/vendor/ledger_serializer.rb +0 -35
  622. data/lib/ledger_sync/adaptors/netsuite_soap/config.rb +0 -5
  623. data/lib/ledger_sync/adaptors/netsuite_soap/customer/ledger_serializer.rb +0 -13
  624. data/lib/ledger_sync/adaptors/netsuite_soap/ledger_serializer.rb +0 -25
  625. data/lib/ledger_sync/adaptors/quickbooks_online/account/ledger_serializer.rb +0 -37
  626. data/lib/ledger_sync/adaptors/quickbooks_online/bill/ledger_serializer.rb +0 -46
  627. data/lib/ledger_sync/adaptors/quickbooks_online/bill_line_item/ledger_serializer.rb +0 -30
  628. data/lib/ledger_sync/adaptors/quickbooks_online/bill_payment/ledger_serializer.rb +0 -76
  629. data/lib/ledger_sync/adaptors/quickbooks_online/bill_payment_line_item/ledger_serializer.rb +0 -19
  630. data/lib/ledger_sync/adaptors/quickbooks_online/currency/ledger_serializer.rb +0 -17
  631. data/lib/ledger_sync/adaptors/quickbooks_online/customer/ledger_serializer.rb +0 -23
  632. data/lib/ledger_sync/adaptors/quickbooks_online/customer/operations/create.rb +0 -22
  633. data/lib/ledger_sync/adaptors/quickbooks_online/customer/operations/find.rb +0 -22
  634. data/lib/ledger_sync/adaptors/quickbooks_online/dashboard_url_helper.rb +0 -59
  635. data/lib/ledger_sync/adaptors/quickbooks_online/department/ledger_serializer.rb +0 -38
  636. data/lib/ledger_sync/adaptors/quickbooks_online/deposit/ledger_serializer.rb +0 -40
  637. data/lib/ledger_sync/adaptors/quickbooks_online/deposit_line_item/ledger_serializer.rb +0 -34
  638. data/lib/ledger_sync/adaptors/quickbooks_online/expense/ledger_serializer.rb +0 -52
  639. data/lib/ledger_sync/adaptors/quickbooks_online/expense_line_item/ledger_serializer.rb +0 -30
  640. data/lib/ledger_sync/adaptors/quickbooks_online/invoice/ledger_serializer.rb +0 -36
  641. data/lib/ledger_sync/adaptors/quickbooks_online/invoice_sales_line_item/ledger_serializer.rb +0 -30
  642. data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry/ledger_serializer.rb +0 -34
  643. data/lib/ledger_sync/adaptors/quickbooks_online/journal_entry_line_item/ledger_serializer.rb +0 -37
  644. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer.rb +0 -131
  645. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/account_sub_type.rb +0 -305
  646. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/account_type.rb +0 -51
  647. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/amount_type.rb +0 -23
  648. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/classification_type.rb +0 -23
  649. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/date_type.rb +0 -23
  650. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/entity_reference_type.rb +0 -49
  651. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/journal_entry_line_item_type.rb +0 -20
  652. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/payment_type.rb +0 -21
  653. data/lib/ledger_sync/adaptors/quickbooks_online/ledger_serializer_type/transaction_reference_type.rb +0 -49
  654. data/lib/ledger_sync/adaptors/quickbooks_online/payment/ledger_serializer.rb +0 -50
  655. data/lib/ledger_sync/adaptors/quickbooks_online/payment_line_item/ledger_serializer.rb +0 -19
  656. data/lib/ledger_sync/adaptors/quickbooks_online/preferences/ledger_serializer.rb +0 -45
  657. data/lib/ledger_sync/adaptors/quickbooks_online/transfer/ledger_serializer.rb +0 -36
  658. data/lib/ledger_sync/adaptors/stripe/adaptor.rb +0 -45
  659. data/lib/ledger_sync/adaptors/test/customer/ledger_serializer.rb +0 -12
  660. data/lib/ledger_sync/adaptors/test/ledger_serializer.rb +0 -12
  661. data/lib/ledger_sync/resources/account.rb +0 -17
  662. data/lib/ledger_sync/resources/bill.rb +0 -27
  663. data/lib/ledger_sync/resources/bill_line_item.rb +0 -17
  664. data/lib/ledger_sync/resources/bill_payment.rb +0 -32
  665. data/lib/ledger_sync/resources/bill_payment_line_item.rb +0 -15
  666. data/lib/ledger_sync/resources/currency.rb +0 -9
  667. data/lib/ledger_sync/resources/customer.rb +0 -25
  668. data/lib/ledger_sync/resources/department.rb +0 -14
  669. data/lib/ledger_sync/resources/deposit.rb +0 -24
  670. data/lib/ledger_sync/resources/deposit_line_item.rb +0 -22
  671. data/lib/ledger_sync/resources/expense.rb +0 -33
  672. data/lib/ledger_sync/resources/expense_line_item.rb +0 -17
  673. data/lib/ledger_sync/resources/invoice.rb +0 -24
  674. data/lib/ledger_sync/resources/invoice_sales_line_item.rb +0 -17
  675. data/lib/ledger_sync/resources/item.rb +0 -5
  676. data/lib/ledger_sync/resources/journal_entry.rb +0 -20
  677. data/lib/ledger_sync/resources/journal_entry_line_item.rb +0 -20
  678. data/lib/ledger_sync/resources/ledger_class.rb +0 -14
  679. data/lib/ledger_sync/resources/payment.rb +0 -27
  680. data/lib/ledger_sync/resources/payment_line_item.rb +0 -15
  681. data/lib/ledger_sync/resources/subsidiary.rb +0 -8
  682. data/lib/ledger_sync/resources/transfer.rb +0 -20
  683. data/lib/ledger_sync/resources/vendor.rb +0 -19
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ def green(str)
4
+ puts str.colorize(:green)
5
+ end
6
+
7
+ def yellow(str)
8
+ puts str.colorize(:yellow)
9
+ end
10
+
11
+ def red(str)
12
+ puts str.colorize(:red)
13
+ end
14
+
15
+ def nl
16
+ puts "\n"
17
+ end
@@ -0,0 +1 @@
1
+ www.ledgersync.dev
@@ -0,0 +1,40 @@
1
+ # License Agreement
2
+ ##### Version 1.02 (02/14/2019)
3
+
4
+ This Single Project License Agreement (**“Agreement”**) is between you and Stackbit Inc., a Delaware corporation (“Stackbit”) and governs Your right to use the website project including website theme and other media content (the "Project") obtained from or generated using our services available at www.stackbit.com (the "Services"). By clicking on the “Create Account” button (or any similar button) that is presented to you at the time of sign-up or by using the Site to generate a Project, you indicate that you agree to the terms and conditions of this Agreement. If You are accepting this Agreement on behalf of Your employer or other organization, You are agreeing to these terms for the entity and You represent and warrant that You have authority to bind such entity (party bound to this Agreement is referred to as “You”).
5
+
6
+ 1. **Definitions**. The capitalized terms shall have the meaning given in the relevant paragraph where such term is defined. In addition, the following terms shall have the meaning set forth below.
7
+
8
+ **“Client"** means the person or entity whose website you are designing if you are a web developer, web designer, agency or a marketing agent.
9
+
10
+ **“Theme”** means the website theme made available on the Site and generated using the Services, in HTML/JS/CSS electronic source code format together with any related developer documentation.
11
+
12
+ **“Project”** means any work that includes a Theme or that is derived from or is a ‘derivative work’ of a Theme, as such terms are used under the United States Copyright Act of 1976, as amended.
13
+
14
+ 2. **License**. Subject to the terms and conditions of this Agreement, Stackbit hereby grants you a perpetual, non-exclusive, non-transferable, non-sublicensable limited license to use, modify, and display the Theme only as incorporated in a single Project as set forth in Section 3 below. All rights not granted herein are expressly reserved by Stackbit.
15
+
16
+ 3. **Permitted Use**
17
+
18
+ You may use the Theme as it is incorporated into a single Project, either your own Project or the Project of your Client, and You may make modifications to the Theme necessary to fit the requirements of the Project provided that the Project and the use of the Project by You or the Client remains subject to this Agreement. You will own the Project you create, but Stackbit retains all right, title and interest in and to the Theme and other media content that are incorporated in your Project. You must retain and include all copyright notices and the terms of this License without modification in the files of the Project. You and Client must use the Project in compliance with all applicable federal, state and local laws, rules and regulations.
19
+
20
+ 4. **Prohibited Uses**
21
+
22
+ You may not, and shall not permit anyone else to, use the Project or do anything with the Project that is not expressly permitted by this Agreement, including, but not limited to, the following strictly prohibited uses:
23
+
24
+ 1. resell, sublicense or other transfer the Project or the Theme or other components thereof or your rights to use the Theme as set forth herein or otherwise make available or allows a person to access or reproduce the Theme as an electronic file, except in connection with the single Project and subject to Section 3 above;
25
+
26
+ 2. Use, reproduce or display the Theme or Project in any manner that competitive with the Services or our business (e.g. inclusion as part of an online website builder service, or distribution outside the Services such as on a Theme/themes marketplace or a "freebies" website);
27
+
28
+ 3. Use, reproduce or display of the Theme in a fashion that we consider as, or under applicable law is considered, pornographic, obscene, immoral, infringing, defamatory or libelous; and
29
+
30
+ 4. Use or display of the Theme in an electronic format that enables it to be downloaded or distributed in any file sharing arrangement.
31
+
32
+ 5. **Ownership**. Stackbit shall retain and own all right, title and interest, including but not limited to copyright, patent, trade secret and all other intellectual property rights, in and to the Themes. You shall own all right, title and interest, including but not limited to copyright, patent, trade secret and all other intellectual property rights, in and to the Project, subject to Stackbit’s ownership of the Theme and the terms of this license agreement.
33
+
34
+ 6. **Term and Termination**. This Agreement shall commence on the deployment of a Project through Stackbit’s Services to a repository (such as for example to Github) and continue indefinitely until it is terminated in accordance with Section 6. Stackbit may terminate this Agreement if You breach the Agreement and such breach remains uncured for 15 days following Your receipt of written notice from Stackbit. You may terminate this Agreement for convenience and without cause at any time immediately upon written notice to Stackbit. Upon termination of this Agreement for any reason, You and your Client shall a) cease all use of the Theme and the Project b) destroy or delete all copies and archives of the Theme, Projects, and accompanying materials, and c) if requested, confirm to Stackbit in writing that you have complied with these requirements. Any provisions of this Agreement which expressly or by implication are intended to survive its termination will survive and continue to bind the parties.
35
+
36
+ 7. **Warranty and Disclaimer**. THE SERVICES, SITE, THEME, PROJECT AND ALL CONTENT AVAILABLE THROUGH THE SITE ARE OFFERED “AS IS” AND WITHOUT WARRANTY, AND STACKBIT MAKES NO REPRESENTATION OR WARRANTY OF ANY KIND, WHETHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, AND SPECIFICALLY DISCLAIMS ALL WARRANTIES OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE.
37
+
38
+ 8. **Limitation of Liability**. Stackbit’s aggregate liability for all claims, losses, liabilities or damages in connection with this Services, Theme, Project or this Agreement or its subject matter, whether as a result of breach of contract, tort (including negligence) or otherwise, regardless of the theory of liability asserted, is limited to no more than the total amount of fees paid to Stackbit under this Agreement, or $100, whichever is greater. In addition, Stackbit will not be liable in any event for lost profits, consequential, indirect, punitive, exemplary or special damages.
39
+
40
+ 9. **General**. This Agreement shall be governed by the law of the State of California, without reference to conflict of laws principles. The United Nations Convention on contracts for the International Sales of Goods shall not apply. This Agreement, together with the Stackbit Terms of Service at www.stackbit.com/tos/ represents the entire agreement between the parties with regard to the subject matter thereof and supersedes any prior understandings, proposals or agreements concerning the same subject matter. If any provision of this Agreement is found to be unenforceable or invalid, the remainder of such provision shall be enforced to the maximum extent permitted by law. No amendment or modification of this Agreement shall be valid or binding unless in a writing signed by representatives of both parties. You may not assign this Agreement without Stackbit’s prior written consent. Any attempted assignment in violation of this shall be null and void. This Agreement shall be binding upon and inure to the benefit of the parties hereto and their respective permitted successors and assigns. Any notice required or permitted to be given by either party under this Agreement shall be in writing and may be sent via an active Services account dashboard or shall be personally delivered or sent by commercial courier service, or by first class mail (certified or registered if available), or by telecopy confirmed by first class mail (registered or certified if available), to the other party at its address set forth below, or such new address as may from time-to-time be supplied hereunder by the parties hereto.
@@ -0,0 +1,8 @@
1
+ # LedgerSync Documentation
2
+
3
+ ## Run locally
4
+
5
+ ```
6
+ bundle install
7
+ bundle exec jekyll serve
8
+ ```
@@ -0,0 +1,119 @@
1
+ ---
2
+ title: LedgerSync
3
+ baseurl: "/"
4
+ permalink: "/:title/"
5
+ github_url: https://www.github.com/LedgerSync/ledger_sync
6
+ slack_url: https://join.slack.com/t/ledger-sync/shared_invite/zt-e5nbl8qc-eOA~5k7bg3p16_l3J7OS~Q
7
+ modern_treasury_url: https://www.moderntreasury.com
8
+ collections:
9
+ posts:
10
+ permalink: "/posts/:title/"
11
+ description: An open-source library for easily syncing with accounting software, general
12
+ ledgers, ERPs, and other ledgers.
13
+ palette: green
14
+ palettes:
15
+ blue:
16
+ sass:
17
+ accent1: "#00c6ff"
18
+ accent2: "#0072ff"
19
+ green:
20
+ sass:
21
+ accent1: "#12db5d"
22
+ accent2: "#11998e"
23
+ navy:
24
+ sass:
25
+ accent1: "#004e92"
26
+ accent2: "#000428"
27
+ violet:
28
+ sass:
29
+ accent1: "#8e2de2"
30
+ accent2: "#4a00e0"
31
+ header:
32
+ title: LedgerSync
33
+ logo_img: images/logo.svg
34
+ has_nav: true
35
+ nav_links:
36
+ - label: Home
37
+ url: "/"
38
+ type: link
39
+ has_subnav: false
40
+ - label: Guides
41
+ url: "/guides/"
42
+ type: link
43
+ has_subnav: false
44
+ - label: Reference
45
+ url: "/reference"
46
+ type: link
47
+ has_subnav: true
48
+ subnav_links:
49
+ - label: NetSuite REST
50
+ url: reference/netsuite
51
+ type: link
52
+ - label: NetSuite SOAP
53
+ url: reference/netsuite_soap
54
+ type: link
55
+ - label: QuickBooks Online
56
+ url: reference/quickbooks_online
57
+ type: link
58
+ - label: Stripe
59
+ url: reference/stripe
60
+ type: link
61
+ - label: Blog
62
+ url: "/blog"
63
+ type: link
64
+ has_subnav: false
65
+ - label: Contribute
66
+ url: "/guides/contribute"
67
+ type: link
68
+ has_subnav: false
69
+ - label: GitHub
70
+ url: https://github.com/LedgerSync/ledger_sync
71
+ type: primary
72
+ has_subnav: false
73
+ footer:
74
+ content: "© Modern Treasury Inc. All rights reserved."
75
+ links:
76
+ - label: Maintained with ❤️ in San Francisco, CA by Modern Treasury
77
+ url: https://www.moderntreasury.com
78
+ type: link
79
+ new_window: true
80
+ has_social: true
81
+ social_links:
82
+ - label: Netlify
83
+ url: https://www.netlify.com
84
+ type: svg
85
+ svg_url: https://www.netlify.com/img/global/badges/netlify-dark.svg
86
+ svg_alt: Deploys by Netlify
87
+ new_window: true
88
+ - label: Twitter
89
+ url: https://twitter.com/ModernTreasury
90
+ type: icon
91
+ icon_class: fa-twitter
92
+ new_window: true
93
+ - label: LinkedIn
94
+ url: https://www.linkedin.com/company/modern-treasury
95
+ type: icon
96
+ icon_class: fa-linkedin
97
+ new_window: true
98
+ - label: GitHub
99
+ url: https://github.com/LedgerSync/ledger_sync
100
+ type: icon
101
+ icon_class: fa-github
102
+ new_window: true
103
+ sass:
104
+ indentWidth: 4
105
+ style: nested
106
+ precision: 10
107
+ plugins:
108
+ - jekyll-menus
109
+ exclude:
110
+ - Gemfile
111
+ - Gemfile.lock
112
+ - node_modules
113
+ - vendor/bundle/
114
+ - vendor/cache/
115
+ - vendor/gems/
116
+ - vendor/ruby/
117
+ - ssg-build.sh
118
+ - LICENSE.md
119
+ - README.md
@@ -0,0 +1,10 @@
1
+ root_folder: /guides/
2
+ sections:
3
+ - getting-started
4
+ - architecture
5
+ - ledgers
6
+ - customization
7
+ - tips_and_more
8
+ - contribute
9
+ - community
10
+ - modern-treasury
@@ -0,0 +1,5 @@
1
+ root_folder: /reference/
2
+ sections:
3
+ - authentication
4
+ - helpers
5
+ - resources
@@ -0,0 +1,11 @@
1
+ {% assign action = include.action %}
2
+ <a class="{% if action.type != 'link' and action.type != 'svg' %}button{% endif %}{% if action.type == 'secondary' %} button-secondary{% endif %}{% if action.type == 'icon' %} button-icon{% endif %}" href="{{ action.url | relative_url }}" {% assign new_window_is_not_empty=action.new_window
3
+ | is_not_empty %}{% if new_window_is_not_empty %} target="_blank" rel="noopener" {% endif %}>
4
+ {% if action.type == 'icon' and action.icon_class %}
5
+ <span class="icon fab {{ action.icon_class }}" aria-hidden="true"></span><span class="screen-reader-text">{{ action.label }}</span>
6
+ {% elsif action.type == 'svg' and action.svg_url %}
7
+ <img src="{{ action.svg_url }}" alt="{{ action.svg_alt }}" />
8
+ {% else %}
9
+ {{ action.label }}
10
+ {% endif %}
11
+ </a>
@@ -0,0 +1,3 @@
1
+ <div class="alert {{ include.type }}">
2
+ <strong>{{ include.title }}</strong> {{ include.content }}
3
+ </div>
@@ -0,0 +1 @@
1
+ {% include alerts/base.html content=include.content type="danger" title=include.title %}
@@ -0,0 +1 @@
1
+ {% include alerts/base.html content=include.content type="info" title=include.title %}
@@ -0,0 +1 @@
1
+ {% include alerts/base.html content=include.content type="success" title=include.title %}
@@ -0,0 +1 @@
1
+ {% include alerts/base.html content=include.content type="warning" title=include.title %}
@@ -0,0 +1,4 @@
1
+ {% assign actions = include.actions %}
2
+ {% for action in actions %}
3
+ <a class="{% if action.type == 'primary' or action.type == 'secondary' %}button{% endif %}{% if action.type == 'secondary' %} button-secondary{% endif %}" href="{{ action.url | relative_url }}" {% assign new_window_is_not_empty = action.new_window | is_not_empty %}{% if new_window_is_not_empty %}target="_blank" rel="noopener"{% endif %}>{{ action.label }}</a>
4
+ {% endfor %}
@@ -0,0 +1,8 @@
1
+ {::options parse_block_html="true" /}
2
+ <div class="example-container">
3
+ <div class="content">{{ include.content }}</div>
4
+ {% if include.result %}
5
+ {{ include.result }}
6
+ {% endif %}
7
+ </div>
8
+ {::options parse_block_html="false" /}
@@ -0,0 +1,20 @@
1
+ <footer id="colophon" class="site-footer outer">
2
+ <div class="inner">
3
+ <div class="site-footer-inside">
4
+ <p class="site-info">
5
+ {% assign content_is_not_empty = site.footer.content | is_not_empty %} {% if content_is_not_empty %}
6
+ <span class="copyright">{{ site.footer.content }}</span> {% endif %} {% for action in site.footer.links %} {% include action_link.html action=action %} {% endfor %}
7
+ </p>
8
+ <!-- .site-info -->
9
+ {% assign has_social_is_not_empty = site.footer.has_social | is_not_empty %} {% if has_social_is_not_empty %}
10
+ <div class="social-links">
11
+ {% for action in site.footer.social_links %} {% include action_link.html action=action %} {% endfor %}
12
+ </div>
13
+ <!-- .social-links -->
14
+ {% endif %}
15
+ </div>
16
+ <!-- .site-footer-inside -->
17
+ </div>
18
+ <!-- .inner -->
19
+ </footer>
20
+ <!-- .site-footer -->
@@ -0,0 +1,8 @@
1
+ There is a group of passionate maintainers happy to help you get started with LedgerSync. There are two main
2
+ channels for discussing LedgerSync: [Github]({{ site.github_url }}) and
3
+ [Slack]({{ site.slack_url }}).
4
+
5
+ ## Report a bug
6
+
7
+ Please [open an issue on Github]({{ site.github_url }}/issues/new) to report any bugs. Please check if the bug
8
+ has previously been reported and comment on the open issue with your use case.
@@ -0,0 +1,29 @@
1
+ <nav id="guides-nav" class="guides-nav">
2
+ <div id="guides-nav-inside" class="guides-nav-inside sticky">
3
+ <button id="guides-nav-toggle" class="guides-nav-toggle">Navigate<span class="icon-angle-right" aria-hidden="true"></span></button>
4
+ <div class="guides-toc-wrap">
5
+ <ul id="guides-toc" class="guides-toc">
6
+ {% assign site = include.site %} {% assign page = include.page %} {% assign root_page_path = include.root_folder | append: 'index.md' %} {% assign root_page = root_page_path | get_page %}
7
+ <li class="toc-item{% if page.path == root_page.path %} current{% endif %}">
8
+ <a href="{{ root_page.url | relative_url }}">{{ root_page.title }}</a>
9
+ </li>
10
+
11
+ {% for section in include.sections %} {% assign section_folder = include.root_folder | append: section %} {% assign section_page_path = section_folder | append: '/index.md' %} {% assign section_page = section_page_path | get_page %} {% assign child_pages
12
+ = section_folder | get_pages | where_exp: "item", "item.basename != 'index.md'" | sort: 'weight' %} {% assign child_count = child_pages | size %} {% if child_count > 0 %} {% assign has_children = true %}{% else %} {% assign has_children
13
+ = false %}{% endif %} {% if page.path == section_page.path %} {% assign is_current_page = true %}{% else %} {% assign is_current_page = false %}{% endif %} {% if page.rel_dir == section_page.rel_dir or page.path == section_page.path %}
14
+ {% assign is_active = true %}{% else %} {% assign is_active = false %}{% endif %}
15
+ <li class="toc-item{% assign has_children_is_not_empty = has_children | is_not_empty %}{% if has_children_is_not_empty %} has-children{% endif %}{% assign is_current_page_is_not_empty = is_current_page | is_not_empty %}{% if is_current_page_is_not_empty %} current{% endif %}{% assign is_active_is_not_empty = is_active | is_not_empty %}{% if is_active_is_not_empty %} active{% endif %}">
16
+ <a href="{{ section_page.url | relative_url }}">{{ section_page.title }}</a> {% assign has_children_is_not_empty = has_children | is_not_empty %} {% if has_children_is_not_empty %}
17
+ <button class="submenu-toggle"><span class="screen-reader-text">Submenu</span><span class="icon-angle-right" aria-hidden="true"></span></button> {% include guides_submenu.html child_pages=child_pages page=page site=site %} {% endif
18
+ %}
19
+ </li>
20
+ {% endfor %}
21
+
22
+ </ul>
23
+ <!-- .guides-toc -->
24
+ </div>
25
+ <!-- .guides-toc-wrap -->
26
+ </div>
27
+ <!-- .guides-nav-inside -->
28
+ </nav>
29
+ <!-- .guides-nav -->
@@ -0,0 +1,7 @@
1
+ <ul class="toc-submenu">
2
+ {% for child_page in include.child_pages %}
3
+ <li class="toc-item{% if include.page.path == child_page.path %} current{% endif %}">
4
+ <a href="{{ child_page.url | relative_url }}">{{ child_page.title }}</a>
5
+ </li>
6
+ {% endfor %}
7
+ </ul>
@@ -0,0 +1,35 @@
1
+ <header id="masthead" class="site-header outer">
2
+ <div class="inner">
3
+ <div class="site-header-inside">
4
+ <div class="site-branding">
5
+ {% assign logo_img_is_not_empty = site.header.logo_img | is_not_empty %} {% if logo_img_is_not_empty %}
6
+ <p class="site-logo">
7
+ <a href="{{ site.header.url | default: '/' | relative_url }}"><img src="{{ site.header.logo_img | relative_url }}" alt="{{ site.header.title }}" /></a>
8
+ </p>
9
+ {% else %}
10
+ <p class="site-title"><a href="{{ site.header.url | default: '/' | relative_url }}">{{ site.header.title }}</a></p>
11
+ {% endif %}
12
+ </div>
13
+ <!-- .site-branding -->
14
+ {% assign has_nav_is_not_empty = site.header.has_nav | is_not_empty %} {% if has_nav_is_not_empty %}
15
+ <nav id="main-navigation" class="site-navigation" aria-label="Main Navigation">
16
+ <div class="site-nav-inside">
17
+ <button id="menu-close" class="menu-toggle"><span class="screen-reader-text">Open Menu</span><span class="icon-close" aria-hidden="true"></span></button>
18
+ <ul class="menu">
19
+ {% for action in site.header.nav_links %}
20
+ <li class="menu-item{% if action.has_subnav and action.subnav_links %} has-children{% endif %}{% if page.url == action.url %} current{% endif %}{% if action.type != 'link' %} menu-button{% endif %}">
21
+ {% include action_link.html action=action %} {% if action.has_subnav and action.subnav_links %} {% include submenu.html submenu=action.subnav_links menu_class='submenu' page=page %} {% endif %}
22
+ </li>
23
+ {% endfor %}
24
+ </ul>
25
+ </div>
26
+ <!-- .site-nav-inside -->
27
+ </nav>
28
+ <!-- .site-navigation -->
29
+ <button id="menu-open" class="menu-toggle"><span class="screen-reader-text">Close Menu</span><span class="icon-menu" aria-hidden="true"></span></button> {% endif %}
30
+ </div>
31
+ <!-- .site-header-inside -->
32
+ </div>
33
+ <!-- .inner -->
34
+ </header>
35
+ <!-- .site-header -->
@@ -0,0 +1,17 @@
1
+ Add this line to your application's Gemfile:
2
+
3
+ ```ruby
4
+ gem 'ledger_sync'
5
+ ```
6
+
7
+ And then execute:
8
+
9
+ ```bash
10
+ $ bundle
11
+ ```
12
+
13
+ Or install it yourself as:
14
+
15
+ ```bash
16
+ $ gem install ledger_sync
17
+ ```
@@ -0,0 +1 @@
1
+ {% include ledgers/netsuite_summary_shared.md page=page site=site %}
@@ -0,0 +1 @@
1
+ {% include ledgers/netsuite_summary_shared.md page=page site=site %}
@@ -0,0 +1 @@
1
+ NetSuite is an enterprise ERP, providing highly scalable and felxible bookkeeping and accounting software.
@@ -0,0 +1,99 @@
1
+ ## Overview
2
+
3
+ In order to authenticate to NetSuite, you need the following:
4
+
5
+ - `account_id`
6
+ - `consumer_key`
7
+ - `consumer_secret`
8
+ - `token_id`
9
+ - `token_secret`
10
+
11
+ We will walk through how to get each value in the following sections.
12
+
13
+ <div class="note"><strong>Note:</strong>
14
+ You need to have sufficient permissions to set up your account for API authentication.
15
+ </div>
16
+
17
+ ## Prerequisites
18
+
19
+ ### REST Web Services feature
20
+
21
+ Enable the feature at Setup > Company > Setup Tasks > Enable Features, in the SuiteTalk (Web Services) section, on the SuiteCloud subtab. To use the feature, you must accept the SuiteCloud Terms of Service.
22
+
23
+ ### SuiteAnalytics Workbook feature
24
+
25
+ Enable the feature at Setup > Company > Setup Tasks > Enable Features, on the Analytics subtab.
26
+
27
+ ### Permissions
28
+
29
+ You will require the following permissions:
30
+
31
+ - REST Web Services
32
+ - Log in using Access Tokens
33
+ - SuiteAnalytics Workbook
34
+
35
+ Your permissions vary based on which role you are assigned. You can edit roles in Setup > Users/Roles > User Management > Manage Roles. Ensure your user is assigned a role with the aforementioned permissions in order to complete the setup.
36
+
37
+ <div class="note"><strong>Note:</strong>
38
+ <p>
39
+ There are two different sets of permissions you will need:
40
+ </p>
41
+ <p>
42
+ <ul>
43
+ <li>The permissions mentioned above are to <strong>set up</strong> your integration.</li>
44
+ <li>Later when creating a token, you will need to assign a user with a role that has the necessary permissions to <strong>access records</strong> (e.g. payments, invoices, bills, etc.)</li>
45
+ </ul>
46
+ </p>
47
+
48
+ <p>
49
+ These can be the same or different roles. They can be assigned to one or many users.
50
+ </p>
51
+ </div>
52
+
53
+ ## Account ID
54
+
55
+ The `account_id` can be found in the URL when you are logged into the NetSuite dashboard in your browser. It will look
56
+ something like the following:
57
+
58
+ ```
59
+ https://<account_id>.app.netsuite.com/app/center/card.nl?sc=-29&whence=
60
+ ```
61
+
62
+ Example:
63
+
64
+ ```
65
+ https://123456.app.netsuite.com/app/center/card.nl?sc=-29&whence=
66
+ ```
67
+
68
+ The Account ID precedes `.app.netsuite.com`, which in this case is `123456`. Note that your ID may include `-sb1`
69
+ (representing "Sandbox 1"). Be sure to include the entire ID as it appears in the URL, including any letters, numbers,
70
+ and hyphens.
71
+
72
+ ## Consumer Keys
73
+
74
+ The consumer keys are retrieved when you [create an Integration record](https://system.netsuite.com/app/help/helpcenter.nl?fid=bridgehead_4249032125.html&whence=). You can view [the NetSuite documentation](https://system.netsuite.com/app/help/helpcenter.nl?fid=bridgehead_4249032125.html&whence=) for the official documentation.
75
+
76
+ At the last step of creating an Integration record, save the consumer key and consumer secret. They will not be shown again once you navigate away from the page.
77
+
78
+ ## Token
79
+
80
+ To obtain your `token_key` and `token_secret`, you will need to [create a Token](https://system.netsuite.com/app/help/helpcenter.nl?fid=bridgehead_4254081947.html). View [the NetSuite documentation](https://system.netsuite.com/app/help/helpcenter.nl?fid=bridgehead_4254081947.html) for the official documentation.
81
+
82
+ You will use the integration record you created along with your user (or the user who has the necessary permissions to access records).
83
+
84
+ At the last step, save the token key and token secret.
85
+
86
+ ## Conclusion
87
+
88
+ Now with these values, you can successfully authenticate to NetSuite. Simply pass the values into the client:
89
+
90
+ {% highlight ruby linenos %}
91
+ client = LedgerSync::Ledgers::QuickBooksOnline::Client.new(
92
+ account_id: account_id,
93
+ consumer_key: consumer_key,
94
+ consumer_secret: consumer_secret,
95
+ token_id: token_id,
96
+ token_secret: token_secret
97
+ )
98
+ {% endhighlight %}
99
+