ledger_sync 1.4.1 → 1.4.2
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.
- checksums.yaml +4 -4
- data/Gemfile.lock +71 -17
- data/docs/.gitignore +4 -0
- data/documentation/build.sh +3 -1
- data/documentation/site/_includes/ledgers/{Stripe_summary.md → stripe_summary.md} +0 -0
- data/ledger_sync.gemspec +4 -0
- data/lib/ledger_sync/serialization/type/deserializer_references_one_type.rb +1 -1
- data/lib/ledger_sync/version.rb +1 -1
- metadata +59 -136
- data/docs/CNAME +0 -1
- data/docs/assets/css/brands.min.css +0 -5
- data/docs/assets/css/fontawesome.min.css +0 -5
- data/docs/assets/css/main.css +0 -1924
- data/docs/assets/css/monokai.css +0 -441
- data/docs/assets/js/main.js +0 -214
- data/docs/assets/js/plugins.js +0 -22
- data/docs/assets/js/prism.js +0 -9
- data/docs/assets/webfonts/fa-brands-400.eot +0 -0
- data/docs/assets/webfonts/fa-brands-400.svg +0 -3452
- data/docs/assets/webfonts/fa-brands-400.ttf +0 -0
- data/docs/assets/webfonts/fa-brands-400.woff +0 -0
- data/docs/assets/webfonts/fa-brands-400.woff2 +0 -0
- data/docs/blog/index.html +0 -282
- data/docs/guides/architecture/clients/index.html +0 -458
- data/docs/guides/architecture/index.html +0 -435
- data/docs/guides/architecture/operations/index.html +0 -465
- data/docs/guides/architecture/resources/index.html +0 -461
- data/docs/guides/architecture/results/index.html +0 -426
- data/docs/guides/architecture/searchers/index.html +0 -446
- data/docs/guides/architecture/serialization/index.html +0 -476
- data/docs/guides/community/index.html +0 -412
- data/docs/guides/contribute/console/index.html +0 -424
- data/docs/guides/contribute/deployment/index.html +0 -434
- data/docs/guides/contribute/documentation/index.html +0 -450
- data/docs/guides/contribute/index.html +0 -434
- data/docs/guides/contribute/qa/index.html +0 -436
- data/docs/guides/contribute/testing/index.html +0 -424
- data/docs/guides/customization/custom_resources/index.html +0 -461
- data/docs/guides/customization/custom_serializers/index.html +0 -460
- data/docs/guides/customization/index.html +0 -431
- data/docs/guides/customization/resource_converters/index.html +0 -491
- data/docs/guides/getting-started/get-help/index.html +0 -427
- data/docs/guides/getting-started/index.html +0 -421
- data/docs/guides/getting-started/installation/index.html +0 -433
- data/docs/guides/getting-started/quick-start/index.html +0 -531
- data/docs/guides/index.html +0 -428
- data/docs/guides/ledgers/index.html +0 -429
- data/docs/guides/ledgers/netsuite/index.html +0 -424
- data/docs/guides/ledgers/netsuite_soap/index.html +0 -424
- data/docs/guides/ledgers/quickbooks_online/index.html +0 -424
- data/docs/guides/ledgers/stripe/index.html +0 -424
- data/docs/guides/modern-treasury/index.html +0 -411
- data/docs/guides/tips_and_more/index.html +0 -471
- data/docs/images/1.jpg +0 -0
- data/docs/images/10.jpg +0 -0
- data/docs/images/2.jpg +0 -0
- data/docs/images/3.jpg +0 -0
- data/docs/images/4.jpg +0 -0
- data/docs/images/5.jpg +0 -0
- data/docs/images/6.jpg +0 -0
- data/docs/images/7.jpg +0 -0
- data/docs/images/8.jpg +0 -0
- data/docs/images/9.jpg +0 -0
- data/docs/images/logo.svg +0 -8
- data/docs/index.html +0 -379
- data/docs/overview/index.html +0 -409
- data/docs/posts/introducing-docs/index.html +0 -270
- data/docs/posts/netsuite-authentication/index.html +0 -624
- data/docs/reference/architecture/clients/index.html +0 -332
- data/docs/reference/architecture/index.html +0 -311
- data/docs/reference/architecture/operations/index.html +0 -302
- data/docs/reference/architecture/resources/index.html +0 -335
- data/docs/reference/architecture/results/index.html +0 -302
- data/docs/reference/architecture/searchers/index.html +0 -302
- data/docs/reference/architecture/serialization/index.html +0 -302
- data/docs/reference/index.html +0 -281
- data/docs/reference/netsuite/authentication/index.html +0 -392
- data/docs/reference/netsuite/authentication/token_based_authentication/index.html +0 -486
- data/docs/reference/netsuite/index.html +0 -388
- data/docs/reference/netsuite/resources/account/index.html +0 -484
- data/docs/reference/netsuite/resources/check/index.html +0 -492
- data/docs/reference/netsuite/resources/check_line_item/index.html +0 -460
- data/docs/reference/netsuite/resources/currency/index.html +0 -476
- data/docs/reference/netsuite/resources/customer/index.html +0 -488
- data/docs/reference/netsuite/resources/customer_deposit/index.html +0 -480
- data/docs/reference/netsuite/resources/department/index.html +0 -484
- data/docs/reference/netsuite/resources/deposit/index.html +0 -468
- data/docs/reference/netsuite/resources/deposit_line_item/index.html +0 -460
- data/docs/reference/netsuite/resources/index.html +0 -436
- data/docs/reference/netsuite/resources/invoice/index.html +0 -468
- data/docs/reference/netsuite/resources/invoice_line_item/index.html +0 -456
- data/docs/reference/netsuite/resources/item/index.html +0 -444
- data/docs/reference/netsuite/resources/journal_entry/index.html +0 -488
- data/docs/reference/netsuite/resources/journal_entry_line_item/index.html +0 -464
- data/docs/reference/netsuite/resources/ledger_class/index.html +0 -484
- data/docs/reference/netsuite/resources/location/index.html +0 -468
- data/docs/reference/netsuite/resources/resource/index.html +0 -440
- data/docs/reference/netsuite/resources/subsidiary/index.html +0 -448
- data/docs/reference/netsuite/resources/vendor/index.html +0 -492
- data/docs/reference/netsuite_soap/index.html +0 -303
- data/docs/reference/netsuite_soap/resources/customer/index.html +0 -364
- data/docs/reference/netsuite_soap/resources/index.html +0 -316
- data/docs/reference/netsuite_soap/resources/resource/index.html +0 -336
- data/docs/reference/netsuite_soap/resources/subsidiary/index.html +0 -356
- data/docs/reference/quickbooks_online/authentication/index.html +0 -442
- data/docs/reference/quickbooks_online/errors/index.html +0 -395
- data/docs/reference/quickbooks_online/index.html +0 -393
- data/docs/reference/quickbooks_online/resources/account/index.html +0 -530
- data/docs/reference/quickbooks_online/resources/bill/index.html +0 -534
- data/docs/reference/quickbooks_online/resources/bill_line_item/index.html +0 -496
- data/docs/reference/quickbooks_online/resources/bill_payment/index.html +0 -550
- data/docs/reference/quickbooks_online/resources/bill_payment_line_item/index.html +0 -488
- data/docs/reference/quickbooks_online/resources/currency/index.html +0 -492
- data/docs/reference/quickbooks_online/resources/customer/index.html +0 -514
- data/docs/reference/quickbooks_online/resources/department/index.html +0 -518
- data/docs/reference/quickbooks_online/resources/deposit/index.html +0 -526
- data/docs/reference/quickbooks_online/resources/deposit_line_item/index.html +0 -500
- data/docs/reference/quickbooks_online/resources/expense/index.html +0 -538
- data/docs/reference/quickbooks_online/resources/expense_line_item/index.html +0 -496
- data/docs/reference/quickbooks_online/resources/index.html +0 -484
- data/docs/reference/quickbooks_online/resources/invoice/index.html +0 -526
- data/docs/reference/quickbooks_online/resources/invoice_sales_line_item/index.html +0 -496
- data/docs/reference/quickbooks_online/resources/item/index.html +0 -484
- data/docs/reference/quickbooks_online/resources/journal_entry/index.html +0 -518
- data/docs/reference/quickbooks_online/resources/journal_entry_line_item/index.html +0 -504
- data/docs/reference/quickbooks_online/resources/ledger_class/index.html +0 -518
- data/docs/reference/quickbooks_online/resources/payment/index.html +0 -538
- data/docs/reference/quickbooks_online/resources/payment_line_item/index.html +0 -488
- data/docs/reference/quickbooks_online/resources/preferences/index.html +0 -526
- data/docs/reference/quickbooks_online/resources/primary_email_addr/index.html +0 -484
- data/docs/reference/quickbooks_online/resources/primary_phone/index.html +0 -484
- data/docs/reference/quickbooks_online/resources/resource/index.html +0 -480
- data/docs/reference/quickbooks_online/resources/subsidiary/index.html +0 -488
- data/docs/reference/quickbooks_online/resources/transfer/index.html +0 -522
- data/docs/reference/quickbooks_online/resources/vendor/index.html +0 -526
- data/docs/reference/quickbooks_online/webhooks/index.html +0 -427
- data/docs/reference/stripe/index.html +0 -293
- data/docs/reference/stripe/resources/customer/index.html +0 -366
- data/docs/reference/stripe/resources/index.html +0 -309
- data/docs/reference/stripe/resources/resource/index.html +0 -330
- data/docs/style-guide/index.html +0 -375
- data/documentation/site/Gemfile +0 -11
- data/documentation/site/Gemfile.lock +0 -69
@@ -1,460 +0,0 @@
|
|
1
|
-
<!doctype html>
|
2
|
-
<html lang="en">
|
3
|
-
|
4
|
-
<head>
|
5
|
-
|
6
|
-
<title>LedgerSync - Custom Serializers - LedgerSync</title>
|
7
|
-
<meta charset="utf-8">
|
8
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
9
|
-
<meta name="description" content="An open-source library for easily syncing with accounting software, general ledgers, ERPs, and other ledgers." />
|
10
|
-
<link href="https://fonts.googleapis.com/css?family=Lato:400,400i,700,700i%26display=swap" rel="stylesheet">
|
11
|
-
<link rel="stylesheet" href="/assets/css/main.css">
|
12
|
-
|
13
|
-
<!-- Global site tag (gtag.js) - Google Analytics -->
|
14
|
-
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-152343827-1"></script>
|
15
|
-
<script>
|
16
|
-
window.dataLayer = window.dataLayer || [];
|
17
|
-
function gtag(){dataLayer.push(arguments);}
|
18
|
-
gtag('js', new Date());
|
19
|
-
|
20
|
-
gtag('config', 'UA-152343827-1');
|
21
|
-
</script>
|
22
|
-
|
23
|
-
</head>
|
24
|
-
|
25
|
-
<body>
|
26
|
-
|
27
|
-
<div id="page" class="site">
|
28
|
-
<header id="masthead" class="site-header outer">
|
29
|
-
<div class="inner">
|
30
|
-
<div class="site-header-inside">
|
31
|
-
<div class="site-branding">
|
32
|
-
|
33
|
-
|
34
|
-
<p class="site-logo"><a href="/"><img src="/images/logo.svg" alt="LedgerSync" /></a></p>
|
35
|
-
|
36
|
-
</div><!-- .site-branding -->
|
37
|
-
|
38
|
-
|
39
|
-
<nav id="main-navigation" class="site-navigation" aria-label="Main Navigation">
|
40
|
-
<div class="site-nav-inside">
|
41
|
-
<button id="menu-close" class="menu-toggle"><span class="screen-reader-text">Open Menu</span><span class="icon-close" aria-hidden="true"></span></button>
|
42
|
-
<ul class="menu">
|
43
|
-
|
44
|
-
<li class="menu-item">
|
45
|
-
|
46
|
-
|
47
|
-
<a class="" href="/" >
|
48
|
-
|
49
|
-
Home
|
50
|
-
|
51
|
-
</a>
|
52
|
-
|
53
|
-
</li>
|
54
|
-
|
55
|
-
<li class="menu-item">
|
56
|
-
|
57
|
-
|
58
|
-
<a class="" href="/guides/" >
|
59
|
-
|
60
|
-
Guides
|
61
|
-
|
62
|
-
</a>
|
63
|
-
|
64
|
-
</li>
|
65
|
-
|
66
|
-
<li class="menu-item has-children">
|
67
|
-
|
68
|
-
|
69
|
-
<a class="" href="/reference" >
|
70
|
-
|
71
|
-
Reference
|
72
|
-
|
73
|
-
</a>
|
74
|
-
|
75
|
-
|
76
|
-
<ul class="submenu">
|
77
|
-
|
78
|
-
<li class="menu-item">
|
79
|
-
|
80
|
-
|
81
|
-
<a class="" href="/reference/netsuite" >
|
82
|
-
|
83
|
-
NetSuite REST
|
84
|
-
|
85
|
-
</a>
|
86
|
-
</li>
|
87
|
-
|
88
|
-
<li class="menu-item">
|
89
|
-
|
90
|
-
|
91
|
-
<a class="" href="/reference/netsuite_soap" >
|
92
|
-
|
93
|
-
NetSuite SOAP
|
94
|
-
|
95
|
-
</a>
|
96
|
-
</li>
|
97
|
-
|
98
|
-
<li class="menu-item">
|
99
|
-
|
100
|
-
|
101
|
-
<a class="" href="/reference/quickbooks_online" >
|
102
|
-
|
103
|
-
QuickBooks Online
|
104
|
-
|
105
|
-
</a>
|
106
|
-
</li>
|
107
|
-
|
108
|
-
<li class="menu-item">
|
109
|
-
|
110
|
-
|
111
|
-
<a class="" href="/reference/stripe" >
|
112
|
-
|
113
|
-
Stripe
|
114
|
-
|
115
|
-
</a>
|
116
|
-
</li>
|
117
|
-
|
118
|
-
</ul>
|
119
|
-
|
120
|
-
|
121
|
-
</li>
|
122
|
-
|
123
|
-
<li class="menu-item">
|
124
|
-
|
125
|
-
|
126
|
-
<a class="" href="/blog" >
|
127
|
-
|
128
|
-
Blog
|
129
|
-
|
130
|
-
</a>
|
131
|
-
|
132
|
-
</li>
|
133
|
-
|
134
|
-
<li class="menu-item">
|
135
|
-
|
136
|
-
|
137
|
-
<a class="" href="/guides/contribute" >
|
138
|
-
|
139
|
-
Contribute
|
140
|
-
|
141
|
-
</a>
|
142
|
-
|
143
|
-
</li>
|
144
|
-
|
145
|
-
<li class="menu-item menu-button">
|
146
|
-
|
147
|
-
|
148
|
-
<a class="button" href="https://github.com/LedgerSync/ledger_sync" >
|
149
|
-
|
150
|
-
GitHub
|
151
|
-
|
152
|
-
</a>
|
153
|
-
|
154
|
-
</li>
|
155
|
-
|
156
|
-
</ul>
|
157
|
-
</div><!-- .site-nav-inside -->
|
158
|
-
</nav><!-- .site-navigation -->
|
159
|
-
<button id="menu-open" class="menu-toggle"><span class="screen-reader-text">Close Menu</span><span class="icon-menu" aria-hidden="true"></span></button>
|
160
|
-
|
161
|
-
</div><!-- .site-header-inside -->
|
162
|
-
</div><!-- .inner -->
|
163
|
-
</header><!-- .site-header -->
|
164
|
-
|
165
|
-
<main id="content" class="site-content">
|
166
|
-
<div class="inner outer">
|
167
|
-
<div class="guides-content">
|
168
|
-
|
169
|
-
<nav id="guides-nav" class="guides-nav">
|
170
|
-
<div id="guides-nav-inside" class="guides-nav-inside sticky">
|
171
|
-
<button id="guides-nav-toggle" class="guides-nav-toggle">Navigate<span class="icon-angle-right" aria-hidden="true"></span></button>
|
172
|
-
<div class="guides-toc-wrap">
|
173
|
-
<ul id="guides-toc" class="guides-toc">
|
174
|
-
|
175
|
-
<li class="toc-item">
|
176
|
-
<a href="/guides/">Welcome to LedgerSync</a>
|
177
|
-
</li>
|
178
|
-
|
179
|
-
|
180
|
-
<li class="toc-item has-children">
|
181
|
-
<a href="/guides/getting-started/">Getting Started</a>
|
182
|
-
<button class="submenu-toggle"><span class="screen-reader-text">Submenu</span><span class="icon-angle-right" aria-hidden="true"></span></button> <ul class="toc-submenu">
|
183
|
-
|
184
|
-
<li class="toc-item">
|
185
|
-
<a href="/guides/getting-started/installation/">Installation</a>
|
186
|
-
</li>
|
187
|
-
|
188
|
-
<li class="toc-item">
|
189
|
-
<a href="/guides/getting-started/quick-start/">Quick Start</a>
|
190
|
-
</li>
|
191
|
-
|
192
|
-
<li class="toc-item">
|
193
|
-
<a href="/guides/getting-started/get-help/">Get Help</a>
|
194
|
-
</li>
|
195
|
-
|
196
|
-
</ul>
|
197
|
-
|
198
|
-
</li>
|
199
|
-
|
200
|
-
<li class="toc-item has-children">
|
201
|
-
<a href="/guides/architecture/">Architecture</a>
|
202
|
-
<button class="submenu-toggle"><span class="screen-reader-text">Submenu</span><span class="icon-angle-right" aria-hidden="true"></span></button> <ul class="toc-submenu">
|
203
|
-
|
204
|
-
<li class="toc-item">
|
205
|
-
<a href="/guides/architecture/clients/">Clients</a>
|
206
|
-
</li>
|
207
|
-
|
208
|
-
<li class="toc-item">
|
209
|
-
<a href="/guides/architecture/resources/">Resources</a>
|
210
|
-
</li>
|
211
|
-
|
212
|
-
<li class="toc-item">
|
213
|
-
<a href="/guides/architecture/serialization/">Serialization</a>
|
214
|
-
</li>
|
215
|
-
|
216
|
-
<li class="toc-item">
|
217
|
-
<a href="/guides/architecture/operations/">Operations</a>
|
218
|
-
</li>
|
219
|
-
|
220
|
-
<li class="toc-item">
|
221
|
-
<a href="/guides/architecture/searchers/">Operations</a>
|
222
|
-
</li>
|
223
|
-
|
224
|
-
<li class="toc-item">
|
225
|
-
<a href="/guides/architecture/results/">Results</a>
|
226
|
-
</li>
|
227
|
-
|
228
|
-
</ul>
|
229
|
-
|
230
|
-
</li>
|
231
|
-
|
232
|
-
<li class="toc-item has-children">
|
233
|
-
<a href="/guides/ledgers/">Ledgers</a>
|
234
|
-
<button class="submenu-toggle"><span class="screen-reader-text">Submenu</span><span class="icon-angle-right" aria-hidden="true"></span></button> <ul class="toc-submenu">
|
235
|
-
|
236
|
-
<li class="toc-item">
|
237
|
-
<a href="/guides/ledgers/netsuite/">NetSuite REST</a>
|
238
|
-
</li>
|
239
|
-
|
240
|
-
<li class="toc-item">
|
241
|
-
<a href="/guides/ledgers/netsuite_soap/">NetSuite SOAP</a>
|
242
|
-
</li>
|
243
|
-
|
244
|
-
<li class="toc-item">
|
245
|
-
<a href="/guides/ledgers/quickbooks_online/">QuickBooks Online</a>
|
246
|
-
</li>
|
247
|
-
|
248
|
-
<li class="toc-item">
|
249
|
-
<a href="/guides/ledgers/stripe/">Stripe</a>
|
250
|
-
</li>
|
251
|
-
|
252
|
-
</ul>
|
253
|
-
|
254
|
-
</li>
|
255
|
-
|
256
|
-
<li class="toc-item has-children active">
|
257
|
-
<a href="/guides/customization/">Customization</a>
|
258
|
-
<button class="submenu-toggle"><span class="screen-reader-text">Submenu</span><span class="icon-angle-right" aria-hidden="true"></span></button> <ul class="toc-submenu">
|
259
|
-
|
260
|
-
<li class="toc-item">
|
261
|
-
<a href="/guides/customization/resource_converters/">Resource Converters</a>
|
262
|
-
</li>
|
263
|
-
|
264
|
-
<li class="toc-item">
|
265
|
-
<a href="/guides/customization/custom_resources/">Custom Resources</a>
|
266
|
-
</li>
|
267
|
-
|
268
|
-
<li class="toc-item current">
|
269
|
-
<a href="/guides/customization/custom_serializers/">Custom Serializers</a>
|
270
|
-
</li>
|
271
|
-
|
272
|
-
</ul>
|
273
|
-
|
274
|
-
</li>
|
275
|
-
|
276
|
-
<li class="toc-item">
|
277
|
-
<a href="/guides/tips_and_more/">Tips and More</a>
|
278
|
-
</li>
|
279
|
-
|
280
|
-
<li class="toc-item has-children">
|
281
|
-
<a href="/guides/contribute/">Contribute</a>
|
282
|
-
<button class="submenu-toggle"><span class="screen-reader-text">Submenu</span><span class="icon-angle-right" aria-hidden="true"></span></button> <ul class="toc-submenu">
|
283
|
-
|
284
|
-
<li class="toc-item">
|
285
|
-
<a href="/guides/contribute/console/">Console</a>
|
286
|
-
</li>
|
287
|
-
|
288
|
-
<li class="toc-item">
|
289
|
-
<a href="/guides/contribute/deployment/">Deployment</a>
|
290
|
-
</li>
|
291
|
-
|
292
|
-
<li class="toc-item">
|
293
|
-
<a href="/guides/contribute/documentation/">Documentation</a>
|
294
|
-
</li>
|
295
|
-
|
296
|
-
<li class="toc-item">
|
297
|
-
<a href="/guides/contribute/qa/">QA</a>
|
298
|
-
</li>
|
299
|
-
|
300
|
-
<li class="toc-item">
|
301
|
-
<a href="/guides/contribute/testing/">Testing</a>
|
302
|
-
</li>
|
303
|
-
|
304
|
-
</ul>
|
305
|
-
|
306
|
-
</li>
|
307
|
-
|
308
|
-
<li class="toc-item">
|
309
|
-
<a href="/guides/community/">Where To Get Support</a>
|
310
|
-
</li>
|
311
|
-
|
312
|
-
<li class="toc-item">
|
313
|
-
<a href="/guides/modern-treasury/">Modern Treasury</a>
|
314
|
-
</li>
|
315
|
-
|
316
|
-
|
317
|
-
</ul>
|
318
|
-
<!-- .guides-toc -->
|
319
|
-
</div>
|
320
|
-
<!-- .guides-toc-wrap -->
|
321
|
-
</div>
|
322
|
-
<!-- .guides-nav-inside -->
|
323
|
-
</nav>
|
324
|
-
<!-- .guides-nav -->
|
325
|
-
<article class="post type-guides">
|
326
|
-
<div class="post-inside">
|
327
|
-
<header class="post-header">
|
328
|
-
<h1 class="post-title line-left">Custom Serializers</h1>
|
329
|
-
</header>
|
330
|
-
<!-- .post-header -->
|
331
|
-
<div class="post-content">
|
332
|
-
<p>When you need to pass new attributes to/from a ledger, you may to to create custom serializers and deserializers.</p>
|
333
|
-
|
334
|
-
<p>For example, given the following:</p>
|
335
|
-
|
336
|
-
<ul>
|
337
|
-
<li><code class="highlighter-rouge">CustomCustomer</code> is a custom resource that inherits from <code class="highlighter-rouge">LedgerSync::Ledgers::NetSuite::Customer</code> and defines a custom attribute string named <code class="highlighter-rouge">foo</code></li>
|
338
|
-
<li>the attribute <code class="highlighter-rouge">foo</code> is used in both the request and response bodies</li>
|
339
|
-
<li><code class="highlighter-rouge">client</code> defines a valid instance of the NetSuite client</li>
|
340
|
-
</ul>
|
341
|
-
|
342
|
-
<div class="language-ruby highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">class</span> <span class="nc">CustomSerializer</span> <span class="o"><</span> <span class="no">LedgerSync</span><span class="o">::</span><span class="no">Ledgers</span><span class="o">::</span><span class="no">NetSuite</span><span class="o">::</span><span class="no">Customer</span><span class="o">::</span><span class="no">Serializer</span>
|
343
|
-
<span class="n">attribute</span> <span class="ss">:foo</span>
|
344
|
-
<span class="k">end</span>
|
345
|
-
|
346
|
-
<span class="k">class</span> <span class="nc">CustomDeserializer</span> <span class="o"><</span> <span class="no">LedgerSync</span><span class="o">::</span><span class="no">Ledgers</span><span class="o">::</span><span class="no">NetSuite</span><span class="o">::</span><span class="no">Customer</span><span class="o">::</span><span class="no">Deserializer</span>
|
347
|
-
<span class="n">attribute</span> <span class="ss">:foo</span>
|
348
|
-
<span class="k">end</span>
|
349
|
-
|
350
|
-
<span class="c1"># Serializing</span>
|
351
|
-
<span class="n">custom_resource</span> <span class="o">=</span> <span class="no">CustomCustomer</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="ss">foo: </span><span class="s1">'asdf'</span><span class="p">)</span> <span class="c1"># See above under Resources -> Custom Attributes</span>
|
352
|
-
<span class="n">serializer</span> <span class="o">=</span> <span class="no">CustomSerializer</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span><span class="ss">resource: </span><span class="n">custom_resource</span><span class="p">)</span>
|
353
|
-
<span class="n">serializer</span><span class="p">.</span><span class="nf">serialize</span> <span class="c1"># => {..., "foo"=>"asdf",...}</span>
|
354
|
-
|
355
|
-
<span class="c1"># Deserializing</span>
|
356
|
-
<span class="n">deserialized_resource</span> <span class="o">=</span> <span class="n">serializer</span><span class="p">.</span><span class="nf">deserialize</span><span class="p">(</span><span class="ss">hash: </span><span class="p">{</span> <span class="ss">foo: </span><span class="s1">'qwerty'</span> <span class="p">},</span> <span class="ss">resource: </span><span class="no">CustomCustomer</span><span class="p">.</span><span class="nf">new</span><span class="p">)</span>
|
357
|
-
<span class="n">deserialized_resource</span><span class="p">.</span><span class="nf">foo</span> <span class="c1"># => 'qwerty'</span>
|
358
|
-
<span class="n">custom_resource</span><span class="p">.</span><span class="nf">foo</span> <span class="c1"># => 'asdf'</span>
|
359
|
-
|
360
|
-
<span class="n">op</span> <span class="o">=</span> <span class="no">LedgerSync</span><span class="o">::</span><span class="no">Ledgers</span><span class="o">::</span><span class="no">NetSuite</span><span class="o">::</span><span class="no">Customer</span><span class="o">::</span><span class="no">Operations</span><span class="o">::</span><span class="no">Create</span><span class="p">.</span><span class="nf">new</span><span class="p">(</span>
|
361
|
-
<span class="ss">client: </span><span class="n">client</span><span class="p">,</span>
|
362
|
-
<span class="ss">deserializer: </span><span class="no">CustomSerializer</span><span class="p">.</span><span class="nf">new</span><span class="p">,</span>
|
363
|
-
<span class="ss">serializer: </span><span class="no">CustomSerializer</span><span class="p">.</span><span class="nf">new</span><span class="p">,</span>
|
364
|
-
<span class="ss">resource: </span><span class="n">custom_resource</span>
|
365
|
-
<span class="p">)</span>
|
366
|
-
</code></pre></div></div>
|
367
|
-
|
368
|
-
<p>Note that in the above example, we extend an existing customer serializer in the NetSuite ledger. In most cases, serializers have the following inheritance pattern: <code class="highlighter-rouge">LedgerSync::Ledgers::[ADAPTOR]::[RESOURCE]::Serializer < LedgerSync::Ledgers::[ADAPTOR]::Serializer < LedgerSync::Serializer</code>.</p>
|
369
|
-
|
370
|
-
<p>So in this example, it would be <code class="highlighter-rouge">LedgerSync::Ledgers::NetSuite::Customer::Serializer < LedgerSync::Ledgers::NetSuite::Serializer < LedgerSync::Serializer</code>. The more specific the serializer, the more helper methods are available that are ledger and/or resource specific.</p>
|
371
|
-
|
372
|
-
<p>Similarly, deserializers follow the same pattern.</p>
|
373
|
-
|
374
|
-
<hr />
|
375
|
-
|
376
|
-
<div>Related articles:</div><br />
|
377
|
-
|
378
|
-
<ul class="guides-section-items">
|
379
|
-
|
380
|
-
<li class="guides-section-item"><a href="/guides/customization/resource_converters/" class="guides-item-link">Resource Converters<span class="icon-angle-right" aria-hidden="true"></span></a></li>
|
381
|
-
|
382
|
-
<li class="guides-section-item"><a href="/guides/customization/custom_resources/" class="guides-item-link">Custom Resources<span class="icon-angle-right" aria-hidden="true"></span></a></li>
|
383
|
-
|
384
|
-
<li class="guides-section-item"><a href="/guides/customization/custom_serializers/" class="guides-item-link">Custom Serializers<span class="icon-angle-right" aria-hidden="true"></span></a></li>
|
385
|
-
|
386
|
-
</ul>
|
387
|
-
<!-- .guides-section-pages -->
|
388
|
-
|
389
|
-
</div>
|
390
|
-
<!-- .post-content -->
|
391
|
-
</div>
|
392
|
-
<!-- .post-inside -->
|
393
|
-
</article>
|
394
|
-
<!-- .post -->
|
395
|
-
<nav id="page-nav" class="page-nav">
|
396
|
-
<div id="page-nav-inside" class="page-nav-inside sticky">
|
397
|
-
<h2 class="page-nav-title">Jump to Section</h2>
|
398
|
-
</div>
|
399
|
-
<!-- .page-nav-inside -->
|
400
|
-
</nav>
|
401
|
-
<!-- .page-nav -->
|
402
|
-
</div>
|
403
|
-
<!-- .guides-content -->
|
404
|
-
</div>
|
405
|
-
<!-- .inner-->
|
406
|
-
</main><!-- .site-content -->
|
407
|
-
<footer id="colophon" class="site-footer outer">
|
408
|
-
<div class="inner">
|
409
|
-
<div class="site-footer-inside">
|
410
|
-
<p class="site-info">
|
411
|
-
|
412
|
-
<span class="copyright">© Modern Treasury Inc. All rights reserved.</span>
|
413
|
-
<a class="" href="https://www.moderntreasury.com" target="_blank" rel="noopener" >
|
414
|
-
|
415
|
-
Maintained with ❤️ in San Francisco, CA by Modern Treasury
|
416
|
-
|
417
|
-
</a>
|
418
|
-
</p>
|
419
|
-
<!-- .site-info -->
|
420
|
-
|
421
|
-
<div class="social-links">
|
422
|
-
|
423
|
-
<a class="" href="https://www.netlify.com" target="_blank" rel="noopener" >
|
424
|
-
|
425
|
-
<img src="https://www.netlify.com/img/global/badges/netlify-dark.svg" alt="Deploys by Netlify" />
|
426
|
-
|
427
|
-
</a>
|
428
|
-
<a class="button button-icon" href="https://twitter.com/ModernTreasury" target="_blank" rel="noopener" >
|
429
|
-
|
430
|
-
<span class="icon fab fa-twitter" aria-hidden="true"></span><span class="screen-reader-text">Twitter</span>
|
431
|
-
|
432
|
-
</a>
|
433
|
-
<a class="button button-icon" href="https://www.linkedin.com/company/modern-treasury" target="_blank" rel="noopener" >
|
434
|
-
|
435
|
-
<span class="icon fab fa-linkedin" aria-hidden="true"></span><span class="screen-reader-text">LinkedIn</span>
|
436
|
-
|
437
|
-
</a>
|
438
|
-
<a class="button button-icon" href="https://github.com/LedgerSync/ledger_sync" target="_blank" rel="noopener" >
|
439
|
-
|
440
|
-
<span class="icon fab fa-github" aria-hidden="true"></span><span class="screen-reader-text">GitHub</span>
|
441
|
-
|
442
|
-
</a>
|
443
|
-
</div>
|
444
|
-
<!-- .social-links -->
|
445
|
-
|
446
|
-
</div>
|
447
|
-
<!-- .site-footer-inside -->
|
448
|
-
</div>
|
449
|
-
<!-- .inner -->
|
450
|
-
</footer>
|
451
|
-
<!-- .site-footer -->
|
452
|
-
</div><!-- .site -->
|
453
|
-
|
454
|
-
<!-- Scripts -->
|
455
|
-
<script src="/assets/js/plugins.js"></script>
|
456
|
-
<script src="/assets/js/prism.js" data-manual></script>
|
457
|
-
<script src="/assets/js/main.js"></script>
|
458
|
-
</body>
|
459
|
-
|
460
|
-
</html>
|