forklift_etl 1.0.8 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +8 -8
  2. data/forklift.jpg +0 -0
  3. data/lib/forklift/transports/mysql.rb +3 -2
  4. data/lib/forklift/version.rb +1 -1
  5. metadata +1 -58
  6. data/doc/EmailSuffix.html +0 -228
  7. data/doc/Forklift/Base/Connection.html +0 -590
  8. data/doc/Forklift/Base/Logger.html +0 -453
  9. data/doc/Forklift/Base/Mailer/ERBBinding.html +0 -256
  10. data/doc/Forklift/Base/Mailer.html +0 -399
  11. data/doc/Forklift/Base/Pid.html +0 -489
  12. data/doc/Forklift/Base/Utils.html +0 -252
  13. data/doc/Forklift/Base.html +0 -167
  14. data/doc/Forklift/Connection/Elasticsearch.html +0 -419
  15. data/doc/Forklift/Connection/Mysql.html +0 -939
  16. data/doc/Forklift/Connection.html +0 -164
  17. data/doc/Forklift/Patterns/Elasticsearch.html +0 -169
  18. data/doc/Forklift/Patterns/Mysql.html +0 -402
  19. data/doc/Forklift/Patterns.html +0 -164
  20. data/doc/Forklift/Plan.html +0 -704
  21. data/doc/Forklift.html +0 -187
  22. data/doc/Gemfile.html +0 -132
  23. data/doc/Object.html +0 -326
  24. data/doc/Rakefile.html +0 -138
  25. data/doc/SpecClient.html +0 -291
  26. data/doc/SpecPlan.html +0 -253
  27. data/doc/SpecSeeds.html +0 -303
  28. data/doc/created.rid +0 -35
  29. data/doc/example/Gemfile.html +0 -129
  30. data/doc/images/add.png +0 -0
  31. data/doc/images/brick.png +0 -0
  32. data/doc/images/brick_link.png +0 -0
  33. data/doc/images/bug.png +0 -0
  34. data/doc/images/bullet_black.png +0 -0
  35. data/doc/images/bullet_toggle_minus.png +0 -0
  36. data/doc/images/bullet_toggle_plus.png +0 -0
  37. data/doc/images/date.png +0 -0
  38. data/doc/images/delete.png +0 -0
  39. data/doc/images/find.png +0 -0
  40. data/doc/images/loadingAnimation.gif +0 -0
  41. data/doc/images/macFFBgHack.png +0 -0
  42. data/doc/images/package.png +0 -0
  43. data/doc/images/page_green.png +0 -0
  44. data/doc/images/page_white_text.png +0 -0
  45. data/doc/images/page_white_width.png +0 -0
  46. data/doc/images/plugin.png +0 -0
  47. data/doc/images/ruby.png +0 -0
  48. data/doc/images/tag_blue.png +0 -0
  49. data/doc/images/tag_green.png +0 -0
  50. data/doc/images/transparent.png +0 -0
  51. data/doc/images/wrench.png +0 -0
  52. data/doc/images/wrench_orange.png +0 -0
  53. data/doc/images/zoom.png +0 -0
  54. data/doc/index.html +0 -122
  55. data/doc/js/darkfish.js +0 -155
  56. data/doc/js/jquery.js +0 -18
  57. data/doc/js/navigation.js +0 -142
  58. data/doc/js/search.js +0 -94
  59. data/doc/js/search_index.js +0 -1
  60. data/doc/js/searcher.js +0 -228
  61. data/doc/rdoc.css +0 -543
  62. data/doc/table_of_contents.html +0 -309
@@ -1,939 +0,0 @@
1
- <!DOCTYPE html>
2
-
3
- <html>
4
- <head>
5
- <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
-
7
- <title>class Forklift::Connection::Mysql - RDoc Documentation</title>
8
-
9
- <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet">
10
-
11
- <script type="text/javascript">
12
- var rdoc_rel_prefix = "../../";
13
- </script>
14
-
15
- <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
16
- <script type="text/javascript" charset="utf-8" src="../../js/navigation.js"></script>
17
- <script type="text/javascript" charset="utf-8" src="../../js/search_index.js"></script>
18
- <script type="text/javascript" charset="utf-8" src="../../js/search.js"></script>
19
- <script type="text/javascript" charset="utf-8" src="../../js/searcher.js"></script>
20
- <script type="text/javascript" charset="utf-8" src="../../js/darkfish.js"></script>
21
-
22
-
23
- <body id="top" class="class">
24
- <nav id="metadata">
25
- <nav id="home-section" class="section">
26
- <h3 class="section-header">
27
- <a href="../../index.html">Home</a>
28
- <a href="../../table_of_contents.html#classes">Classes</a>
29
- <a href="../../table_of_contents.html#methods">Methods</a>
30
- </h3>
31
- </nav>
32
-
33
-
34
- <nav id="search-section" class="section project-section" class="initially-hidden">
35
- <form action="#" method="get" accept-charset="utf-8">
36
- <h3 class="section-header">
37
- <input type="text" name="search" placeholder="Search" id="search-field"
38
- title="Type to search, Up and Down to navigate, Enter to load">
39
- </h3>
40
- </form>
41
-
42
- <ul id="search-results" class="initially-hidden"></ul>
43
- </nav>
44
-
45
-
46
- <div id="file-metadata">
47
- <nav id="file-list-section" class="section">
48
- <h3 class="section-header">Defined In</h3>
49
- <ul>
50
- <li>lib/forklift/transports/mysql.rb
51
- </ul>
52
- </nav>
53
-
54
-
55
- </div>
56
-
57
- <div id="class-metadata">
58
-
59
- <nav id="parent-class-section" class="section">
60
- <h3 class="section-header">Parent</h3>
61
-
62
- <p class="link"><a href="../Base/Connection.html">Forklift::Base::Connection</a>
63
-
64
- </nav>
65
-
66
-
67
- <!-- Method Quickref -->
68
- <nav id="method-list-section" class="section">
69
- <h3 class="section-header">Methods</h3>
70
-
71
- <ul class="link-list">
72
-
73
- <li><a href="#method-c-new">::new</a>
74
-
75
- <li><a href="#method-i-columns">#columns</a>
76
-
77
- <li><a href="#method-i-config">#config</a>
78
-
79
- <li><a href="#method-i-count">#count</a>
80
-
81
- <li><a href="#method-i-current_database">#current_database</a>
82
-
83
- <li><a href="#method-i-default_matcher">#default_matcher</a>
84
-
85
- <li><a href="#method-i-drop-21">#drop!</a>
86
-
87
- <li><a href="#method-i-dump">#dump</a>
88
-
89
- <li><a href="#method-i-exec_script">#exec_script</a>
90
-
91
- <li><a href="#method-i-forklift">#forklift</a>
92
-
93
- <li><a href="#method-i-lazy_table_create">#lazy_table_create</a>
94
-
95
- <li><a href="#method-i-max_timestamp">#max_timestamp</a>
96
-
97
- <li><a href="#method-i-q">#q</a>
98
-
99
- <li><a href="#method-i-read">#read</a>
100
-
101
- <li><a href="#method-i-read_since">#read_since</a>
102
-
103
- <li><a href="#method-i-sql_type">#sql_type</a>
104
-
105
- <li><a href="#method-i-tables">#tables</a>
106
-
107
- <li><a href="#method-i-truncate">#truncate</a>
108
-
109
- <li><a href="#method-i-truncate-21">#truncate!</a>
110
-
111
- <li><a href="#method-i-write">#write</a>
112
-
113
- </ul>
114
- </nav>
115
-
116
- </div>
117
-
118
- <div id="project-metadata">
119
- <nav id="fileindex-section" class="section project-section">
120
- <h3 class="section-header">Pages</h3>
121
-
122
- <ul>
123
-
124
- <li class="file"><a href="../../Gemfile.html">Gemfile</a>
125
-
126
- <li class="file"><a href="../../Rakefile.html">Rakefile</a>
127
-
128
- <li class="file"><a href="../../example/Gemfile.html">Gemfile</a>
129
-
130
- <li class="file"><a href="../../spec/pid/pidfile.html">pidfile</a>
131
-
132
- </ul>
133
- </nav>
134
-
135
- <nav id="classindex-section" class="section project-section">
136
- <h3 class="section-header">Class and Module Index</h3>
137
-
138
- <ul class="link-list">
139
-
140
- <li><a href="../../Forklift.html">Forklift</a>
141
-
142
- <li><a href="../../Forklift/Base.html">Forklift::Base</a>
143
-
144
- <li><a href="../../Forklift/Base/Connection.html">Forklift::Base::Connection</a>
145
-
146
- <li><a href="../../Forklift/Base/Logger.html">Forklift::Base::Logger</a>
147
-
148
- <li><a href="../../Forklift/Base/Mailer.html">Forklift::Base::Mailer</a>
149
-
150
- <li><a href="../../Forklift/Base/Mailer/ERBBinding.html">Forklift::Base::Mailer::ERBBinding</a>
151
-
152
- <li><a href="../../Forklift/Base/Pid.html">Forklift::Base::Pid</a>
153
-
154
- <li><a href="../../Forklift/Base/Utils.html">Forklift::Base::Utils</a>
155
-
156
- <li><a href="../../Forklift/Connection.html">Forklift::Connection</a>
157
-
158
- <li><a href="../../Forklift/Connection/Elasticsearch.html">Forklift::Connection::Elasticsearch</a>
159
-
160
- <li><a href="../../Forklift/Connection/Mysql.html">Forklift::Connection::Mysql</a>
161
-
162
- <li><a href="../../Forklift/Patterns.html">Forklift::Patterns</a>
163
-
164
- <li><a href="../../Forklift/Patterns/Elasticsearch.html">Forklift::Patterns::Elasticsearch</a>
165
-
166
- <li><a href="../../Forklift/Patterns/Mysql.html">Forklift::Patterns::Mysql</a>
167
-
168
- <li><a href="../../Forklift/Plan.html">Forklift::Plan</a>
169
-
170
- <li><a href="../../EmailSuffix.html">EmailSuffix</a>
171
-
172
- <li><a href="../../Object.html">Object</a>
173
-
174
- <li><a href="../../SpecClient.html">SpecClient</a>
175
-
176
- <li><a href="../../SpecPlan.html">SpecPlan</a>
177
-
178
- <li><a href="../../SpecSeeds.html">SpecSeeds</a>
179
-
180
- </ul>
181
- </nav>
182
-
183
- </div>
184
- </nav>
185
-
186
- <div id="documentation">
187
- <h1 class="class">class Forklift::Connection::Mysql</h1>
188
-
189
- <div id="description" class="description">
190
-
191
- </div><!-- description -->
192
-
193
-
194
-
195
-
196
- <section id="5Buntitled-5D" class="documentation-section">
197
-
198
-
199
-
200
-
201
-
202
-
203
-
204
-
205
- <!-- Methods -->
206
-
207
- <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
208
- <h3 class="section-header">Public Class Methods</h3>
209
-
210
-
211
- <div id="method-c-new" class="method-detail ">
212
-
213
- <div class="method-heading">
214
- <span class="method-name">new</span><span
215
- class="method-args">(config, forklift)</span>
216
- <span class="method-click-advice">click to toggle source</span>
217
- </div>
218
-
219
-
220
- <div class="method-description">
221
-
222
-
223
-
224
-
225
-
226
- <div class="method-source-code" id="new-source">
227
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 7</span>
228
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">forklift</span>)
229
- <span class="ruby-ivar">@config</span> = <span class="ruby-identifier">config</span>
230
- <span class="ruby-ivar">@forklift</span> = <span class="ruby-identifier">forklift</span>
231
- <span class="ruby-ivar">@client</span> = <span class="ruby-constant">Mysql2</span><span class="ruby-operator">::</span><span class="ruby-constant">Client</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">config</span>)
232
- <span class="ruby-comment"># q(&quot;USE #{config['database']}&quot;)</span>
233
- <span class="ruby-keyword">end</span></pre>
234
- </div><!-- new-source -->
235
-
236
- </div>
237
-
238
-
239
-
240
-
241
- </div><!-- new-method -->
242
-
243
-
244
- </section><!-- public-class-method-details -->
245
-
246
- <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
247
- <h3 class="section-header">Public Instance Methods</h3>
248
-
249
-
250
- <div id="method-i-columns" class="method-detail ">
251
-
252
- <div class="method-heading">
253
- <span class="method-name">columns</span><span
254
- class="method-args">(table, database=current_database)</span>
255
- <span class="method-click-advice">click to toggle source</span>
256
- </div>
257
-
258
-
259
- <div class="method-description">
260
-
261
-
262
-
263
-
264
-
265
- <div class="method-source-code" id="columns-source">
266
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 162</span>
267
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">columns</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
268
- <span class="ruby-identifier">cols</span> = []
269
- <span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;describe `#{database}`.`#{table}`&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">row</span><span class="ruby-operator">|</span>
270
- <span class="ruby-identifier">cols</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">row</span>[<span class="ruby-value">:Field</span>]
271
- <span class="ruby-keyword">end</span>
272
- <span class="ruby-identifier">cols</span>
273
- <span class="ruby-keyword">end</span></pre>
274
- </div><!-- columns-source -->
275
-
276
- </div>
277
-
278
-
279
-
280
-
281
- </div><!-- columns-method -->
282
-
283
-
284
- <div id="method-i-config" class="method-detail ">
285
-
286
- <div class="method-heading">
287
- <span class="method-name">config</span><span
288
- class="method-args">()</span>
289
- <span class="method-click-advice">click to toggle source</span>
290
- </div>
291
-
292
-
293
- <div class="method-description">
294
-
295
-
296
-
297
-
298
-
299
- <div class="method-source-code" id="config-source">
300
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 14</span>
301
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">config</span>
302
- <span class="ruby-ivar">@config</span>
303
- <span class="ruby-keyword">end</span></pre>
304
- </div><!-- config-source -->
305
-
306
- </div>
307
-
308
-
309
-
310
-
311
- </div><!-- config-method -->
312
-
313
-
314
- <div id="method-i-count" class="method-detail ">
315
-
316
- <div class="method-heading">
317
- <span class="method-name">count</span><span
318
- class="method-args">(table, database=current_database)</span>
319
- <span class="method-click-advice">click to toggle source</span>
320
- </div>
321
-
322
-
323
- <div class="method-description">
324
-
325
-
326
-
327
-
328
-
329
- <div class="method-source-code" id="count-source">
330
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 146</span>
331
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">count</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
332
- <span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;select count(1) as \&quot;count\&quot; from `#{database}`.`#{table}`&quot;</span>)[<span class="ruby-value">0</span>][<span class="ruby-value">:count</span>]
333
- <span class="ruby-keyword">end</span></pre>
334
- </div><!-- count-source -->
335
-
336
- </div>
337
-
338
-
339
-
340
-
341
- </div><!-- count-method -->
342
-
343
-
344
- <div id="method-i-current_database" class="method-detail ">
345
-
346
- <div class="method-heading">
347
- <span class="method-name">current_database</span><span
348
- class="method-args">()</span>
349
- <span class="method-click-advice">click to toggle source</span>
350
- </div>
351
-
352
-
353
- <div class="method-description">
354
-
355
-
356
-
357
-
358
-
359
- <div class="method-source-code" id="current_database-source">
360
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 142</span>
361
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">current_database</span>
362
- <span class="ruby-identifier">q</span>(<span class="ruby-string">&quot;select database() as 'db'&quot;</span>).<span class="ruby-identifier">first</span>[<span class="ruby-string">'db'</span>]
363
- <span class="ruby-keyword">end</span></pre>
364
- </div><!-- current_database-source -->
365
-
366
- </div>
367
-
368
-
369
-
370
-
371
- </div><!-- current_database-method -->
372
-
373
-
374
- <div id="method-i-default_matcher" class="method-detail ">
375
-
376
- <div class="method-heading">
377
- <span class="method-name">default_matcher</span><span
378
- class="method-args">()</span>
379
- <span class="method-click-advice">click to toggle source</span>
380
- </div>
381
-
382
-
383
- <div class="method-description">
384
-
385
-
386
-
387
-
388
-
389
- <div class="method-source-code" id="default_matcher-source">
390
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 22</span>
391
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">default_matcher</span>
392
- <span class="ruby-string">'updated_at'</span>
393
- <span class="ruby-keyword">end</span></pre>
394
- </div><!-- default_matcher-source -->
395
-
396
- </div>
397
-
398
-
399
-
400
-
401
- </div><!-- default_matcher-method -->
402
-
403
-
404
- <div id="method-i-drop-21" class="method-detail ">
405
-
406
- <div class="method-heading">
407
- <span class="method-name">drop!</span><span
408
- class="method-args">(table, database=current_database)</span>
409
- <span class="method-click-advice">click to toggle source</span>
410
- </div>
411
-
412
-
413
- <div class="method-description">
414
-
415
-
416
-
417
-
418
-
419
- <div class="method-source-code" id="drop-21-source">
420
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 26</span>
421
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">drop!</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
422
- <span class="ruby-identifier">q</span>(<span class="ruby-node">&quot;DROP table `#{database}`.`#{table}`&quot;</span>);
423
- <span class="ruby-keyword">end</span></pre>
424
- </div><!-- drop-21-source -->
425
-
426
- </div>
427
-
428
-
429
-
430
-
431
- </div><!-- drop-21-method -->
432
-
433
-
434
- <div id="method-i-dump" class="method-detail ">
435
-
436
- <div class="method-heading">
437
- <span class="method-name">dump</span><span
438
- class="method-args">(file)</span>
439
- <span class="method-click-advice">click to toggle source</span>
440
- </div>
441
-
442
-
443
- <div class="method-description">
444
-
445
-
446
-
447
-
448
-
449
- <div class="method-source-code" id="dump-source">
450
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 170</span>
451
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">dump</span>(<span class="ruby-identifier">file</span>)
452
- <span class="ruby-identifier">cmd</span> = <span class="ruby-string">&quot;mysqldump&quot;</span>
453
- <span class="ruby-identifier">cmd</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; -u#{config[:username]}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">config</span>[<span class="ruby-value">:username</span>].<span class="ruby-identifier">nil?</span>
454
- <span class="ruby-identifier">cmd</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; -p#{config[:password]}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">config</span>[<span class="ruby-value">:password</span>].<span class="ruby-identifier">nil?</span>
455
- <span class="ruby-identifier">cmd</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot; --max_allowed_packet=512M&quot;</span>
456
- <span class="ruby-identifier">cmd</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; #{config[:database]}&quot;</span>
457
- <span class="ruby-identifier">cmd</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; | gzip &gt; #{file}&quot;</span>
458
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-node">&quot;Dumping #{config['database']} to #{file}&quot;</span>
459
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-identifier">cmd</span>
460
- <span class="ruby-node">%x#{cmd}`</span>
461
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-string">&quot; &gt; Dump complete&quot;</span>
462
- <span class="ruby-keyword">end</span></pre>
463
- </div><!-- dump-source -->
464
-
465
- </div>
466
-
467
-
468
-
469
-
470
- </div><!-- dump-method -->
471
-
472
-
473
- <div id="method-i-exec_script" class="method-detail ">
474
-
475
- <div class="method-heading">
476
- <span class="method-name">exec_script</span><span
477
- class="method-args">(path)</span>
478
- <span class="method-click-advice">click to toggle source</span>
479
- </div>
480
-
481
-
482
- <div class="method-description">
483
-
484
-
485
-
486
-
487
-
488
- <div class="method-source-code" id="exec_script-source">
489
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 183</span>
490
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">exec_script</span>(<span class="ruby-identifier">path</span>)
491
- <span class="ruby-identifier">body</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">path</span>)
492
- <span class="ruby-identifier">lines</span> = <span class="ruby-identifier">body</span>.<span class="ruby-identifier">split</span>(<span class="ruby-string">';'</span>)
493
- <span class="ruby-identifier">lines</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
494
- <span class="ruby-identifier">line</span>.<span class="ruby-identifier">strip!</span>
495
- <span class="ruby-identifier">q</span>(<span class="ruby-identifier">line</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
496
- <span class="ruby-keyword">end</span>
497
- <span class="ruby-keyword">end</span></pre>
498
- </div><!-- exec_script-source -->
499
-
500
- </div>
501
-
502
-
503
-
504
-
505
- </div><!-- exec_script-method -->
506
-
507
-
508
- <div id="method-i-forklift" class="method-detail ">
509
-
510
- <div class="method-heading">
511
- <span class="method-name">forklift</span><span
512
- class="method-args">()</span>
513
- <span class="method-click-advice">click to toggle source</span>
514
- </div>
515
-
516
-
517
- <div class="method-description">
518
-
519
-
520
-
521
-
522
-
523
- <div class="method-source-code" id="forklift-source">
524
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 18</span>
525
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">forklift</span>
526
- <span class="ruby-ivar">@forklift</span>
527
- <span class="ruby-keyword">end</span></pre>
528
- </div><!-- forklift-source -->
529
-
530
- </div>
531
-
532
-
533
-
534
-
535
- </div><!-- forklift-method -->
536
-
537
-
538
- <div id="method-i-lazy_table_create" class="method-detail ">
539
-
540
- <div class="method-heading">
541
- <span class="method-name">lazy_table_create</span><span
542
- class="method-args">(table, data, database=current_database, primary_key='id')</span>
543
- <span class="method-click-advice">click to toggle source</span>
544
- </div>
545
-
546
-
547
- <div class="method-description">
548
-
549
-
550
-
551
-
552
-
553
- <div class="method-source-code" id="lazy_table_create-source">
554
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 80</span>
555
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">lazy_table_create</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>, <span class="ruby-identifier">primary_key</span>=<span class="ruby-string">'id'</span>)
556
- <span class="ruby-identifier">keys</span> = {}
557
- <span class="ruby-identifier">data</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">item</span><span class="ruby-operator">|</span>
558
- <span class="ruby-identifier">item</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
559
- <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">sql_type</span>(<span class="ruby-identifier">v</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">keys</span>[<span class="ruby-identifier">k</span>].<span class="ruby-identifier">nil?</span>
560
- <span class="ruby-keyword">end</span>
561
- <span class="ruby-keyword">end</span>
562
-
563
- <span class="ruby-identifier">command</span> = <span class="ruby-node">&quot;CREATE TABLE `#{database}`.`#{table}` ( &quot;</span>
564
- <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; `#{primary_key}` int(11) NOT NULL AUTO_INCREMENT, &quot;</span> <span class="ruby-keyword">if</span> ( <span class="ruby-identifier">data</span>.<span class="ruby-identifier">first</span>[<span class="ruby-identifier">primary_key</span>.<span class="ruby-identifier">to_sym</span>].<span class="ruby-identifier">nil?</span> )
565
- <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">col</span>, <span class="ruby-identifier">type</span><span class="ruby-operator">|</span>
566
- <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; `#{col}` #{type} DEFAULT NULL, &quot;</span>
567
- <span class="ruby-keyword">end</span>
568
- <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot; PRIMARY KEY (`#{primary_key}`) &quot;</span>
569
- <span class="ruby-identifier">command</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot; ) &quot;</span>
570
-
571
- <span class="ruby-identifier">q</span>(<span class="ruby-identifier">command</span>)
572
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-node">&quot;lazy-created table `#{database}`.`#{table}`&quot;</span>
573
- <span class="ruby-keyword">end</span></pre>
574
- </div><!-- lazy_table_create-source -->
575
-
576
- </div>
577
-
578
-
579
-
580
-
581
- </div><!-- lazy_table_create-method -->
582
-
583
-
584
- <div id="method-i-max_timestamp" class="method-detail ">
585
-
586
- <div class="method-heading">
587
- <span class="method-name">max_timestamp</span><span
588
- class="method-args">(table, matcher=default_matcher, database=current_database)</span>
589
- <span class="method-click-advice">click to toggle source</span>
590
- </div>
591
-
592
-
593
- <div class="method-description">
594
-
595
-
596
-
597
-
598
-
599
- <div class="method-source-code" id="max_timestamp-source">
600
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 125</span>
601
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">max_timestamp</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">matcher</span>=<span class="ruby-identifier">default_matcher</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
602
- <span class="ruby-identifier">last_copied_row</span> = <span class="ruby-identifier">read</span>(<span class="ruby-node">&quot;select max(`#{matcher}`) as \&quot;#{matcher}\&quot; from `#{database}`.`#{table}`&quot;</span>)[<span class="ruby-value">0</span>]
603
- <span class="ruby-keyword">if</span> ( <span class="ruby-identifier">last_copied_row</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">last_copied_row</span>[<span class="ruby-identifier">matcher</span>.<span class="ruby-identifier">to_sym</span>].<span class="ruby-identifier">nil?</span> )
604
- <span class="ruby-identifier">latest_timestamp</span> = <span class="ruby-string">'1970-01-01 00:00'</span>
605
- <span class="ruby-keyword">else</span>
606
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">last_copied_row</span>[<span class="ruby-identifier">matcher</span>.<span class="ruby-identifier">to_sym</span>].<span class="ruby-identifier">to_s</span>
607
- <span class="ruby-keyword">end</span>
608
- <span class="ruby-keyword">end</span></pre>
609
- </div><!-- max_timestamp-source -->
610
-
611
- </div>
612
-
613
-
614
-
615
-
616
- </div><!-- max_timestamp-method -->
617
-
618
-
619
- <div id="method-i-q" class="method-detail ">
620
-
621
- <div class="method-heading">
622
- <span class="method-name">q</span><span
623
- class="method-args">(query, options={})</span>
624
- <span class="method-click-advice">click to toggle source</span>
625
- </div>
626
-
627
-
628
- <div class="method-description">
629
-
630
-
631
-
632
-
633
-
634
- <div class="method-source-code" id="q-source">
635
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 192</span>
636
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">q</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">options</span>={})
637
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-node">&quot; SQL: #{query}&quot;</span>
638
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">client</span>.<span class="ruby-identifier">query</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">options</span>)
639
- <span class="ruby-keyword">end</span></pre>
640
- </div><!-- q-source -->
641
-
642
- </div>
643
-
644
-
645
-
646
-
647
- </div><!-- q-method -->
648
-
649
-
650
- <div id="method-i-read" class="method-detail ">
651
-
652
- <div class="method-heading">
653
- <span class="method-name">read</span><span
654
- class="method-args">(query, database=current_database, looping=true, limit=1000, offset=0) { |data| ... }</span>
655
- <span class="method-click-advice">click to toggle source</span>
656
- </div>
657
-
658
-
659
- <div class="method-description">
660
-
661
-
662
-
663
-
664
-
665
- <div class="method-source-code" id="read-source">
666
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 30</span>
667
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">read</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>, <span class="ruby-identifier">looping</span>=<span class="ruby-keyword">true</span>, <span class="ruby-identifier">limit</span>=<span class="ruby-value">1000</span>, <span class="ruby-identifier">offset</span>=<span class="ruby-value">0</span>)
668
- <span class="ruby-identifier">loop_count</span> = <span class="ruby-value">0</span>
669
- <span class="ruby-comment"># TODO: Detect limit/offset already present in query</span>
670
- <span class="ruby-identifier">q</span>(<span class="ruby-node">&quot;USE `#{database}`&quot;</span>)
671
-
672
- <span class="ruby-keyword">while</span> ( <span class="ruby-identifier">looping</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">loop_count</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span> )
673
- <span class="ruby-identifier">data</span> = []
674
- <span class="ruby-identifier">prepared_query</span> = <span class="ruby-identifier">query</span>
675
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">prepared_query</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&quot;select&quot;</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">prepared_query</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-string">&quot;limit&quot;</span>)
676
- <span class="ruby-identifier">prepared_query</span> = <span class="ruby-node">&quot;#{prepared_query} LIMIT #{offset}, #{limit}&quot;</span>
677
- <span class="ruby-keyword">end</span>
678
- <span class="ruby-identifier">response</span> = <span class="ruby-identifier">q</span>(<span class="ruby-identifier">prepared_query</span>, <span class="ruby-value">:symbolize_keys</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>)
679
- <span class="ruby-identifier">response</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">row</span><span class="ruby-operator">|</span>
680
- <span class="ruby-identifier">data</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">row</span>
681
- <span class="ruby-keyword">end</span>
682
-
683
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
684
- <span class="ruby-keyword">yield</span> <span class="ruby-identifier">data</span>
685
- <span class="ruby-keyword">else</span>
686
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">data</span>
687
- <span class="ruby-keyword">end</span>
688
-
689
- <span class="ruby-identifier">offset</span> = <span class="ruby-identifier">offset</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">limit</span>
690
- <span class="ruby-identifier">looping</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">0</span>
691
- <span class="ruby-identifier">loop_count</span> = <span class="ruby-identifier">loop_count</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>
692
- <span class="ruby-keyword">end</span>
693
- <span class="ruby-keyword">end</span></pre>
694
- </div><!-- read-source -->
695
-
696
- </div>
697
-
698
-
699
-
700
-
701
- </div><!-- read-method -->
702
-
703
-
704
- <div id="method-i-read_since" class="method-detail ">
705
-
706
- <div class="method-heading">
707
- <span class="method-name">read_since</span><span
708
- class="method-args">(table, since, matcher=default_matcher, database=current_database) { |data| ... }</span>
709
- <span class="method-click-advice">click to toggle source</span>
710
- </div>
711
-
712
-
713
- <div class="method-description">
714
-
715
-
716
-
717
-
718
-
719
- <div class="method-source-code" id="read_since-source">
720
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 114</span>
721
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">read_since</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">since</span>, <span class="ruby-identifier">matcher</span>=<span class="ruby-identifier">default_matcher</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
722
- <span class="ruby-identifier">query</span> = <span class="ruby-node">&quot;select * from `#{database}`.`#{table}` where `#{matcher}` &gt;= '#{since}' order by `#{matcher}` asc&quot;</span>
723
- <span class="ruby-keyword">self</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">query</span>, <span class="ruby-identifier">database</span>){<span class="ruby-operator">|</span><span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
724
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
725
- <span class="ruby-keyword">yield</span> <span class="ruby-identifier">data</span>
726
- <span class="ruby-keyword">else</span>
727
- <span class="ruby-keyword">return</span> <span class="ruby-identifier">data</span>
728
- <span class="ruby-keyword">end</span>
729
- }
730
- <span class="ruby-keyword">end</span></pre>
731
- </div><!-- read_since-source -->
732
-
733
- </div>
734
-
735
-
736
-
737
-
738
- </div><!-- read_since-method -->
739
-
740
-
741
- <div id="method-i-sql_type" class="method-detail ">
742
-
743
- <div class="method-heading">
744
- <span class="method-name">sql_type</span><span
745
- class="method-args">(v)</span>
746
- <span class="method-click-advice">click to toggle source</span>
747
- </div>
748
-
749
-
750
- <div class="method-description">
751
-
752
-
753
-
754
-
755
-
756
- <div class="method-source-code" id="sql_type-source">
757
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 100</span>
758
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">sql_type</span>(<span class="ruby-identifier">v</span>)
759
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;int(11)&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Fixnum</span>
760
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;float&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Float</span>
761
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;date&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Date</span>
762
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;datetime&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Time</span>
763
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;datetime&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">DateTime</span>
764
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;varchar(255)&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">Symbol</span>
765
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;tinyint(1)&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">TrueClass</span>
766
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;tinyint(1)&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">FalseClass</span>
767
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;text&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">String</span>
768
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;text&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">v</span>.<span class="ruby-identifier">class</span> <span class="ruby-operator">==</span> <span class="ruby-constant">NilClass</span>
769
- <span class="ruby-keyword">return</span> <span class="ruby-string">&quot;text&quot;</span> <span class="ruby-comment"># catchall</span>
770
- <span class="ruby-keyword">end</span></pre>
771
- </div><!-- sql_type-source -->
772
-
773
- </div>
774
-
775
-
776
-
777
-
778
- </div><!-- sql_type-method -->
779
-
780
-
781
- <div id="method-i-tables" class="method-detail ">
782
-
783
- <div class="method-heading">
784
- <span class="method-name">tables</span><span
785
- class="method-args">()</span>
786
- <span class="method-click-advice">click to toggle source</span>
787
- </div>
788
-
789
-
790
- <div class="method-description">
791
-
792
-
793
-
794
-
795
-
796
- <div class="method-source-code" id="tables-source">
797
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 134</span>
798
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">tables</span>
799
- <span class="ruby-identifier">t</span> = []
800
- <span class="ruby-identifier">client</span>.<span class="ruby-identifier">query</span>(<span class="ruby-string">&quot;show tables&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">row</span><span class="ruby-operator">|</span>
801
- <span class="ruby-identifier">t</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">row</span>.<span class="ruby-identifier">values</span>[<span class="ruby-value">0</span>]
802
- <span class="ruby-keyword">end</span>
803
- <span class="ruby-identifier">t</span>
804
- <span class="ruby-keyword">end</span></pre>
805
- </div><!-- tables-source -->
806
-
807
- </div>
808
-
809
-
810
-
811
-
812
- </div><!-- tables-method -->
813
-
814
-
815
- <div id="method-i-truncate" class="method-detail ">
816
-
817
- <div class="method-heading">
818
- <span class="method-name">truncate</span><span
819
- class="method-args">(table, database=current_database)</span>
820
- <span class="method-click-advice">click to toggle source</span>
821
- </div>
822
-
823
-
824
- <div class="method-description">
825
-
826
-
827
-
828
-
829
-
830
- <div class="method-source-code" id="truncate-source">
831
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 154</span>
832
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">truncate</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
833
- <span class="ruby-keyword">begin</span>
834
- <span class="ruby-keyword">self</span>.<span class="ruby-identifier">truncate!</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
835
- <span class="ruby-keyword">rescue</span> <span class="ruby-constant">Exception</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">e</span>
836
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span> <span class="ruby-identifier">e</span>
837
- <span class="ruby-keyword">end</span>
838
- <span class="ruby-keyword">end</span></pre>
839
- </div><!-- truncate-source -->
840
-
841
- </div>
842
-
843
-
844
-
845
-
846
- </div><!-- truncate-method -->
847
-
848
-
849
- <div id="method-i-truncate-21" class="method-detail ">
850
-
851
- <div class="method-heading">
852
- <span class="method-name">truncate!</span><span
853
- class="method-args">(table, database=current_database)</span>
854
- <span class="method-click-advice">click to toggle source</span>
855
- </div>
856
-
857
-
858
- <div class="method-description">
859
-
860
-
861
-
862
-
863
-
864
- <div class="method-source-code" id="truncate-21-source">
865
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 150</span>
866
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">truncate!</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>)
867
- <span class="ruby-identifier">q</span>(<span class="ruby-node">&quot;truncate table `#{database}`.`#{table}`&quot;</span>)
868
- <span class="ruby-keyword">end</span></pre>
869
- </div><!-- truncate-21-source -->
870
-
871
- </div>
872
-
873
-
874
-
875
-
876
- </div><!-- truncate-21-method -->
877
-
878
-
879
- <div id="method-i-write" class="method-detail ">
880
-
881
- <div class="method-heading">
882
- <span class="method-name">write</span><span
883
- class="method-args">(data, table, to_update=true, database=current_database, primary_key='id', lazy=true, crash_on_extral_col=false)</span>
884
- <span class="method-click-advice">click to toggle source</span>
885
- </div>
886
-
887
-
888
- <div class="method-description">
889
-
890
-
891
-
892
-
893
-
894
- <div class="method-source-code" id="write-source">
895
- <pre><span class="ruby-comment"># File lib/forklift/transports/mysql.rb, line 58</span>
896
- <span class="ruby-keyword">def</span> <span class="ruby-identifier">write</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">table</span>, <span class="ruby-identifier">to_update</span>=<span class="ruby-keyword">true</span>, <span class="ruby-identifier">database</span>=<span class="ruby-identifier">current_database</span>, <span class="ruby-identifier">primary_key</span>=<span class="ruby-string">'id'</span>, <span class="ruby-identifier">lazy</span>=<span class="ruby-keyword">true</span>, <span class="ruby-identifier">crash_on_extral_col</span>=<span class="ruby-keyword">false</span>)
897
- <span class="ruby-identifier">data</span>.<span class="ruby-identifier">map</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span> <span class="ruby-identifier">l</span>.<span class="ruby-identifier">symbolize_keys!</span> }
898
-
899
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">tables</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">table</span>
900
- <span class="ruby-comment"># all good, cary on</span>
901
- <span class="ruby-keyword">elsif</span>(<span class="ruby-identifier">lazy</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>)
902
- <span class="ruby-identifier">lazy_table_create</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">database</span>, <span class="ruby-identifier">primary_key</span>)
903
- <span class="ruby-keyword">end</span>
904
-
905
- <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
906
- <span class="ruby-identifier">columns</span> = <span class="ruby-identifier">columns</span>(<span class="ruby-identifier">table</span>, <span class="ruby-identifier">database</span>)
907
- <span class="ruby-identifier">data</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">d</span><span class="ruby-operator">|</span>
908
- <span class="ruby-identifier">d</span> = <span class="ruby-identifier">clean_to_columns</span>(<span class="ruby-identifier">d</span>, <span class="ruby-identifier">columns</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">crash_on_extral_col</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span>
909
- <span class="ruby-keyword">if</span>(<span class="ruby-identifier">to_update</span> <span class="ruby-operator">==</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span><span class="ruby-identifier">d</span>[<span class="ruby-identifier">primary_key</span>.<span class="ruby-identifier">to_sym</span>].<span class="ruby-identifier">nil?</span>)
910
- <span class="ruby-identifier">q</span>(<span class="ruby-node">&quot;DELETE FROM `#{database}`.`#{table}` WHERE `#{primary_key}` = #{d[primary_key.to_sym]}&quot;</span>)
911
- <span class="ruby-keyword">end</span>
912
- <span class="ruby-identifier">q</span>(<span class="ruby-node">&quot;INSERT INTO `#{database}`.`#{table}` (#{safe_columns(d.keys)}) VALUES (#{safe_values(d.values)});&quot;</span>)
913
- <span class="ruby-keyword">end</span>
914
- <span class="ruby-identifier">forklift</span>.<span class="ruby-identifier">logger</span>.<span class="ruby-identifier">log</span> <span class="ruby-node">&quot;wrote #{data.length} rows to `#{database}`.`#{table}`&quot;</span>
915
- <span class="ruby-keyword">end</span>
916
- <span class="ruby-keyword">end</span></pre>
917
- </div><!-- write-source -->
918
-
919
- </div>
920
-
921
-
922
-
923
-
924
- </div><!-- write-method -->
925
-
926
-
927
- </section><!-- public-instance-method-details -->
928
-
929
- </section><!-- 5Buntitled-5D -->
930
-
931
- </div><!-- documentation -->
932
-
933
-
934
- <footer id="validator-badges">
935
- <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
936
- <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
937
- <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
938
- </footer>
939
-