dwh 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/.rubocop.yml +36 -0
  3. data/CHANGELOG.md +5 -0
  4. data/LICENSE +21 -0
  5. data/README.md +130 -0
  6. data/Rakefile +42 -0
  7. data/docs/DWH/Adapters/Adapter.html +3053 -0
  8. data/docs/DWH/Adapters/Athena.html +1704 -0
  9. data/docs/DWH/Adapters/Boolean.html +121 -0
  10. data/docs/DWH/Adapters/Druid.html +1626 -0
  11. data/docs/DWH/Adapters/DuckDb.html +2012 -0
  12. data/docs/DWH/Adapters/MySql.html +1704 -0
  13. data/docs/DWH/Adapters/OpenAuthorizable/ClassMethods.html +265 -0
  14. data/docs/DWH/Adapters/OpenAuthorizable.html +1102 -0
  15. data/docs/DWH/Adapters/Postgres.html +2000 -0
  16. data/docs/DWH/Adapters/Snowflake.html +1662 -0
  17. data/docs/DWH/Adapters/SqlServer.html +2084 -0
  18. data/docs/DWH/Adapters/Trino.html +1835 -0
  19. data/docs/DWH/Adapters.html +129 -0
  20. data/docs/DWH/AuthenticationError.html +142 -0
  21. data/docs/DWH/Behaviors.html +767 -0
  22. data/docs/DWH/Capabilities.html +748 -0
  23. data/docs/DWH/Column.html +1115 -0
  24. data/docs/DWH/ConfigError.html +143 -0
  25. data/docs/DWH/ConnectionError.html +143 -0
  26. data/docs/DWH/DWHError.html +138 -0
  27. data/docs/DWH/ExecutionError.html +143 -0
  28. data/docs/DWH/Factory.html +1133 -0
  29. data/docs/DWH/Functions/Arrays.html +505 -0
  30. data/docs/DWH/Functions/Dates.html +1644 -0
  31. data/docs/DWH/Functions/ExtractDatePart.html +804 -0
  32. data/docs/DWH/Functions/Nulls.html +377 -0
  33. data/docs/DWH/Functions.html +846 -0
  34. data/docs/DWH/Logger.html +258 -0
  35. data/docs/DWH/OAuthError.html +138 -0
  36. data/docs/DWH/Settings.html +658 -0
  37. data/docs/DWH/StreamingStats.html +804 -0
  38. data/docs/DWH/Table.html +1260 -0
  39. data/docs/DWH/TableStats.html +583 -0
  40. data/docs/DWH/TokenExpiredError.html +142 -0
  41. data/docs/DWH/UnsupportedCapability.html +135 -0
  42. data/docs/DWH.html +220 -0
  43. data/docs/_index.html +471 -0
  44. data/docs/class_list.html +54 -0
  45. data/docs/css/common.css +1 -0
  46. data/docs/css/full_list.css +58 -0
  47. data/docs/css/style.css +503 -0
  48. data/docs/file.README.html +210 -0
  49. data/docs/file.adapters.html +514 -0
  50. data/docs/file.creating-adapters.html +497 -0
  51. data/docs/file.getting-started.html +288 -0
  52. data/docs/file.usage.html +446 -0
  53. data/docs/file_list.html +79 -0
  54. data/docs/frames.html +22 -0
  55. data/docs/guides/adapters.md +445 -0
  56. data/docs/guides/creating-adapters.md +430 -0
  57. data/docs/guides/getting-started.md +225 -0
  58. data/docs/guides/usage.md +378 -0
  59. data/docs/index.html +210 -0
  60. data/docs/js/app.js +344 -0
  61. data/docs/js/full_list.js +242 -0
  62. data/docs/js/jquery.js +4 -0
  63. data/docs/method_list.html +2038 -0
  64. data/docs/top-level-namespace.html +110 -0
  65. data/lib/dwh/adapters/athena.rb +359 -0
  66. data/lib/dwh/adapters/druid.rb +267 -0
  67. data/lib/dwh/adapters/duck_db.rb +235 -0
  68. data/lib/dwh/adapters/my_sql.rb +235 -0
  69. data/lib/dwh/adapters/open_authorizable.rb +215 -0
  70. data/lib/dwh/adapters/postgres.rb +250 -0
  71. data/lib/dwh/adapters/snowflake.rb +489 -0
  72. data/lib/dwh/adapters/sql_server.rb +257 -0
  73. data/lib/dwh/adapters/trino.rb +213 -0
  74. data/lib/dwh/adapters.rb +363 -0
  75. data/lib/dwh/behaviors.rb +67 -0
  76. data/lib/dwh/capabilities.rb +39 -0
  77. data/lib/dwh/column.rb +79 -0
  78. data/lib/dwh/errors.rb +29 -0
  79. data/lib/dwh/factory.rb +125 -0
  80. data/lib/dwh/functions/arrays.rb +42 -0
  81. data/lib/dwh/functions/dates.rb +162 -0
  82. data/lib/dwh/functions/extract_date_part.rb +70 -0
  83. data/lib/dwh/functions/nulls.rb +31 -0
  84. data/lib/dwh/functions.rb +86 -0
  85. data/lib/dwh/logger.rb +50 -0
  86. data/lib/dwh/settings/athena.yml +77 -0
  87. data/lib/dwh/settings/base.yml +81 -0
  88. data/lib/dwh/settings/databricks.yml +51 -0
  89. data/lib/dwh/settings/druid.yml +59 -0
  90. data/lib/dwh/settings/duckdb.yml +44 -0
  91. data/lib/dwh/settings/mysql.yml +67 -0
  92. data/lib/dwh/settings/postgres.yml +30 -0
  93. data/lib/dwh/settings/redshift.yml +52 -0
  94. data/lib/dwh/settings/snowflake.yml +45 -0
  95. data/lib/dwh/settings/sqlserver.yml +80 -0
  96. data/lib/dwh/settings/trino.yml +77 -0
  97. data/lib/dwh/settings.rb +79 -0
  98. data/lib/dwh/streaming_stats.rb +69 -0
  99. data/lib/dwh/table.rb +105 -0
  100. data/lib/dwh/table_stats.rb +51 -0
  101. data/lib/dwh/version.rb +5 -0
  102. data/lib/dwh.rb +54 -0
  103. data/sig/dwh.rbs +4 -0
  104. metadata +231 -0
@@ -0,0 +1,804 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>
7
+ Class: DWH::StreamingStats
8
+
9
+ &mdash; Documentation by YARD 0.9.37
10
+
11
+ </title>
12
+
13
+ <link rel="stylesheet" href="../css/style.css" type="text/css" />
14
+
15
+ <link rel="stylesheet" href="../css/common.css" type="text/css" />
16
+
17
+ <script type="text/javascript">
18
+ pathId = "DWH::StreamingStats";
19
+ relpath = '../';
20
+ </script>
21
+
22
+
23
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
24
+
25
+ <script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
26
+
27
+
28
+ </head>
29
+ <body>
30
+ <div class="nav_wrap">
31
+ <iframe id="nav" src="../class_list.html?1"></iframe>
32
+ <div id="resizer"></div>
33
+ </div>
34
+
35
+ <div id="main" tabindex="-1">
36
+ <div id="header">
37
+ <div id="menu">
38
+
39
+ <a href="../_index.html">Index (S)</a> &raquo;
40
+ <span class='title'><span class='object_link'><a href="../DWH.html" title="DWH (module)">DWH</a></span></span>
41
+ &raquo;
42
+ <span class="title">StreamingStats</span>
43
+
44
+ </div>
45
+
46
+ <div id="search">
47
+
48
+ <a class="full_list_link" id="class_list_link"
49
+ href="../class_list.html">
50
+
51
+ <svg width="24" height="24">
52
+ <rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
53
+ <rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
54
+ <rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
55
+ </svg>
56
+ </a>
57
+
58
+ </div>
59
+ <div class="clear"></div>
60
+ </div>
61
+
62
+ <div id="content"><h1>Class: DWH::StreamingStats
63
+
64
+
65
+
66
+ </h1>
67
+ <div class="box_info">
68
+
69
+ <dl>
70
+ <dt>Inherits:</dt>
71
+ <dd>
72
+ <span class="inheritName">Object</span>
73
+
74
+ <ul class="fullTree">
75
+ <li>Object</li>
76
+
77
+ <li class="next">DWH::StreamingStats</li>
78
+
79
+ </ul>
80
+ <a href="#" class="inheritanceTree">show all</a>
81
+
82
+ </dd>
83
+ </dl>
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
95
+ <dl>
96
+ <dt>Defined in:</dt>
97
+ <dd>lib/dwh/streaming_stats.rb</dd>
98
+ </dl>
99
+
100
+ </div>
101
+
102
+ <h2>Overview</h2><div class="docstring">
103
+ <div class="discussion">
104
+ <p>Basic streaming stats collector. This is used when runing a query
105
+ via execute_streaming method. As the data comes in it will write
106
+ to the stats object. This can be read in another thread to
107
+ update a UI.</p>
108
+
109
+
110
+ </div>
111
+ </div>
112
+ <div class="tags">
113
+
114
+
115
+ </div>
116
+
117
+
118
+
119
+ <h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
120
+ <ul class="summary">
121
+
122
+ <li class="public ">
123
+ <span class="summary_signature">
124
+
125
+ <a href="#in_memory_limit-instance_method" title="#in_memory_limit (instance method)">#<strong>in_memory_limit</strong> &#x21d2; Object </a>
126
+
127
+
128
+
129
+ </span>
130
+
131
+
132
+
133
+
134
+ <span class="note title readonly">readonly</span>
135
+
136
+
137
+
138
+
139
+
140
+
141
+
142
+
143
+
144
+ <span class="summary_desc"><div class='inline'><p>Most cases the streaming data will be streamed to a tempfile rather than memory.</p>
145
+ </div></span>
146
+
147
+ </li>
148
+
149
+
150
+ </ul>
151
+
152
+
153
+
154
+
155
+
156
+ <h2>
157
+ Instance Method Summary
158
+ <small><a href="#" class="summary_toggle">collapse</a></small>
159
+ </h2>
160
+
161
+ <ul class="summary">
162
+
163
+ <li class="public ">
164
+ <span class="summary_signature">
165
+
166
+ <a href="#<<-instance_method" title="#&lt;&lt; (instance method)">#<strong>&lt;&lt;</strong>(row) &#x21d2; Object </a>
167
+
168
+
169
+
170
+ </span>
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+ <span class="summary_desc"><div class='inline'><p>Add a single row to the in memory dataset.</p>
181
+ </div></span>
182
+
183
+ </li>
184
+
185
+
186
+ <li class="public ">
187
+ <span class="summary_signature">
188
+
189
+ <a href="#add_row-instance_method" title="#add_row (instance method)">#<strong>add_row</strong>(row) &#x21d2; Object </a>
190
+
191
+
192
+
193
+ </span>
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+ <span class="summary_desc"><div class='inline'>
204
+ </div></span>
205
+
206
+ </li>
207
+
208
+
209
+ <li class="public ">
210
+ <span class="summary_signature">
211
+
212
+ <a href="#data-instance_method" title="#data (instance method)">#<strong>data</strong> &#x21d2; Object </a>
213
+
214
+
215
+
216
+ </span>
217
+
218
+
219
+
220
+
221
+
222
+
223
+
224
+
225
+
226
+ <span class="summary_desc"><div class='inline'><p>Returns the streamed result set thus far upto the specified limit or default 20,000 rows.</p>
227
+ </div></span>
228
+
229
+ </li>
230
+
231
+
232
+ <li class="public ">
233
+ <span class="summary_signature">
234
+
235
+ <a href="#initialize-instance_method" title="#initialize (instance method)">#<strong>initialize</strong>(limit = 20_000) &#x21d2; StreamingStats </a>
236
+
237
+
238
+
239
+ </span>
240
+
241
+
242
+ <span class="note title constructor">constructor</span>
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+ <span class="summary_desc"><div class='inline'><p>A new instance of StreamingStats.</p>
252
+ </div></span>
253
+
254
+ </li>
255
+
256
+
257
+ <li class="public ">
258
+ <span class="summary_signature">
259
+
260
+ <a href="#limit_reached%3F-instance_method" title="#limit_reached? (instance method)">#<strong>limit_reached?</strong> &#x21d2; Boolean </a>
261
+
262
+
263
+
264
+ </span>
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+ <span class="summary_desc"><div class='inline'><p>Whether the in memory row limit was reached.</p>
275
+ </div></span>
276
+
277
+ </li>
278
+
279
+
280
+ <li class="public ">
281
+ <span class="summary_signature">
282
+
283
+ <a href="#max_row_size-instance_method" title="#max_row_size (instance method)">#<strong>max_row_size</strong> &#x21d2; Object </a>
284
+
285
+
286
+
287
+ </span>
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ <span class="summary_desc"><div class='inline'><p>Largest row in bytesize.</p>
298
+ </div></span>
299
+
300
+ </li>
301
+
302
+
303
+ <li class="public ">
304
+ <span class="summary_signature">
305
+
306
+ <a href="#reset-instance_method" title="#reset (instance method)">#<strong>reset</strong> &#x21d2; Object </a>
307
+
308
+
309
+
310
+ </span>
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+ <span class="summary_desc"><div class='inline'><p>Resets the data, total rows etc back to 0.</p>
321
+ </div></span>
322
+
323
+ </li>
324
+
325
+
326
+ <li class="public ">
327
+ <span class="summary_signature">
328
+
329
+ <a href="#total_rows-instance_method" title="#total_rows (instance method)">#<strong>total_rows</strong> &#x21d2; Object </a>
330
+
331
+
332
+
333
+ </span>
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+ <span class="summary_desc"><div class='inline'><p>The total rows streamed.</p>
344
+ </div></span>
345
+
346
+ </li>
347
+
348
+
349
+ </ul>
350
+
351
+
352
+ <div id="constructor_details" class="method_details_list">
353
+ <h2>Constructor Details</h2>
354
+
355
+ <div class="method_details first">
356
+ <h3 class="signature first" id="initialize-instance_method">
357
+
358
+ #<strong>initialize</strong>(limit = 20_000) &#x21d2; <tt><span class='object_link'><a href="" title="DWH::StreamingStats (class)">StreamingStats</a></span></tt>
359
+
360
+
361
+
362
+
363
+
364
+ </h3><div class="docstring">
365
+ <div class="discussion">
366
+ <p>Returns a new instance of StreamingStats.</p>
367
+
368
+
369
+ </div>
370
+ </div>
371
+ <div class="tags">
372
+
373
+
374
+ </div><table class="source_code">
375
+ <tr>
376
+ <td>
377
+ <pre class="lines">
378
+
379
+
380
+ 13
381
+ 14
382
+ 15
383
+ 16
384
+ 17
385
+ 18</pre>
386
+ </td>
387
+ <td>
388
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 13</span>
389
+
390
+ <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_limit'>limit</span> <span class='op'>=</span> <span class='int'>20_000</span><span class='rparen'>)</span>
391
+ <span class='ivar'>@status</span> <span class='op'>=</span> <span class='symbol'>:init</span>
392
+ <span class='ivar'>@in_memory_limit</span> <span class='op'>=</span> <span class='id identifier rubyid_limit'>limit</span>
393
+ <span class='ivar'>@mutex</span> <span class='op'>=</span> <span class='const'>Mutex</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span>
394
+ <span class='id identifier rubyid_reset'>reset</span>
395
+ <span class='kw'>end</span></pre>
396
+ </td>
397
+ </tr>
398
+ </table>
399
+ </div>
400
+
401
+ </div>
402
+
403
+ <div id="instance_attr_details" class="attr_details">
404
+ <h2>Instance Attribute Details</h2>
405
+
406
+
407
+ <span id=""></span>
408
+ <div class="method_details first">
409
+ <h3 class="signature first" id="in_memory_limit-instance_method">
410
+
411
+ #<strong>in_memory_limit</strong> &#x21d2; <tt>Object</tt> <span class="extras">(readonly)</span>
412
+
413
+
414
+
415
+
416
+
417
+ </h3><div class="docstring">
418
+ <div class="discussion">
419
+ <p>Most cases the streaming data will be streamed to a tempfile
420
+ rather than memory. In those cases, we will keep a limited amount
421
+ of data in memory. This is for previewing or other quick intropsections.
422
+ The default limit is 20,000 rows.</p>
423
+
424
+
425
+ </div>
426
+ </div>
427
+ <div class="tags">
428
+
429
+
430
+ </div><table class="source_code">
431
+ <tr>
432
+ <td>
433
+ <pre class="lines">
434
+
435
+
436
+ 11
437
+ 12
438
+ 13</pre>
439
+ </td>
440
+ <td>
441
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 11</span>
442
+
443
+ <span class='kw'>def</span> <span class='id identifier rubyid_in_memory_limit'>in_memory_limit</span>
444
+ <span class='ivar'>@in_memory_limit</span>
445
+ <span class='kw'>end</span></pre>
446
+ </td>
447
+ </tr>
448
+ </table>
449
+ </div>
450
+
451
+ </div>
452
+
453
+
454
+ <div id="instance_method_details" class="method_details_list">
455
+ <h2>Instance Method Details</h2>
456
+
457
+
458
+ <div class="method_details first">
459
+ <h3 class="signature first" id="<<-instance_method">
460
+
461
+ #<strong>&lt;&lt;</strong>(row) &#x21d2; <tt>Object</tt>
462
+
463
+
464
+
465
+
466
+
467
+ </h3><div class="docstring">
468
+ <div class="discussion">
469
+ <p>Add a single row to the in memory dataset. Will
470
+ automatically stop once the limit is reached.</p>
471
+
472
+
473
+ </div>
474
+ </div>
475
+ <div class="tags">
476
+ <p class="tag_title">Parameters:</p>
477
+ <ul class="param">
478
+
479
+ <li>
480
+
481
+ <span class='name'>row</span>
482
+
483
+
484
+ <span class='type'>(<tt>Array</tt>)</span>
485
+
486
+
487
+
488
+ </li>
489
+
490
+ </ul>
491
+
492
+ <p class="tag_title">Raises:</p>
493
+ <ul class="raise">
494
+
495
+ <li>
496
+
497
+
498
+ <span class='type'>(<tt>ArgumentError</tt>)</span>
499
+
500
+
501
+
502
+ </li>
503
+
504
+ </ul>
505
+
506
+ </div><table class="source_code">
507
+ <tr>
508
+ <td>
509
+ <pre class="lines">
510
+
511
+
512
+ 33
513
+ 34
514
+ 35
515
+ 36
516
+ 37
517
+ 38
518
+ 39
519
+ 40
520
+ 41</pre>
521
+ </td>
522
+ <td>
523
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 33</span>
524
+
525
+ <span class='kw'>def</span> <span class='op'>&lt;&lt;</span><span class='lparen'>(</span><span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
526
+ <span class='id identifier rubyid_raise'>raise</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>&#39;</span><span class='tstring_content'>Row must be an array</span><span class='tstring_end'>&#39;</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_row'>row</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Array</span><span class='rparen'>)</span>
527
+
528
+ <span class='ivar'>@mutex</span><span class='period'>.</span><span class='id identifier rubyid_synchronize'>synchronize</span> <span class='kw'>do</span>
529
+ <span class='ivar'>@data</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_row'>row</span> <span class='kw'>unless</span> <span class='ivar'>@data</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>&gt;=</span> <span class='ivar'>@in_memory_limit</span>
530
+ <span class='ivar'>@total_rows</span> <span class='op'>+=</span> <span class='int'>1</span>
531
+ <span class='ivar'>@max_row_size</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='ivar'>@max_row_size</span><span class='comma'>,</span> <span class='id identifier rubyid_row'>row</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_bytesize'>bytesize</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
532
+ <span class='kw'>end</span>
533
+ <span class='kw'>end</span></pre>
534
+ </td>
535
+ </tr>
536
+ </table>
537
+ </div>
538
+
539
+ <div class="method_details ">
540
+ <h3 class="signature " id="add_row-instance_method">
541
+
542
+ #<strong>add_row</strong>(row) &#x21d2; <tt>Object</tt>
543
+
544
+
545
+
546
+
547
+
548
+ </h3><table class="source_code">
549
+ <tr>
550
+ <td>
551
+ <pre class="lines">
552
+
553
+
554
+ 43
555
+ 44
556
+ 45</pre>
557
+ </td>
558
+ <td>
559
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 43</span>
560
+
561
+ <span class='kw'>def</span> <span class='id identifier rubyid_add_row'>add_row</span><span class='lparen'>(</span><span class='id identifier rubyid_row'>row</span><span class='rparen'>)</span>
562
+ <span class='kw'>self</span> <span class='op'>&lt;&lt;</span> <span class='id identifier rubyid_row'>row</span>
563
+ <span class='kw'>end</span></pre>
564
+ </td>
565
+ </tr>
566
+ </table>
567
+ </div>
568
+
569
+ <div class="method_details ">
570
+ <h3 class="signature " id="data-instance_method">
571
+
572
+ #<strong>data</strong> &#x21d2; <tt>Object</tt>
573
+
574
+
575
+
576
+
577
+
578
+ </h3><div class="docstring">
579
+ <div class="discussion">
580
+ <p>Returns the streamed result set thus far upto the
581
+ specified limit or default 20,000 rows.</p>
582
+
583
+
584
+ </div>
585
+ </div>
586
+ <div class="tags">
587
+
588
+
589
+ </div><table class="source_code">
590
+ <tr>
591
+ <td>
592
+ <pre class="lines">
593
+
594
+
595
+ 49
596
+ 50
597
+ 51</pre>
598
+ </td>
599
+ <td>
600
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 49</span>
601
+
602
+ <span class='kw'>def</span> <span class='id identifier rubyid_data'>data</span>
603
+ <span class='ivar'>@mutex</span><span class='period'>.</span><span class='id identifier rubyid_synchronize'>synchronize</span> <span class='lbrace'>{</span> <span class='ivar'>@data</span> <span class='rbrace'>}</span>
604
+ <span class='kw'>end</span></pre>
605
+ </td>
606
+ </tr>
607
+ </table>
608
+ </div>
609
+
610
+ <div class="method_details ">
611
+ <h3 class="signature " id="limit_reached?-instance_method">
612
+
613
+ #<strong>limit_reached?</strong> &#x21d2; <tt>Boolean</tt>
614
+
615
+
616
+
617
+
618
+
619
+ </h3><div class="docstring">
620
+ <div class="discussion">
621
+ <p>Whether the in memory row limit was reached</p>
622
+
623
+
624
+ </div>
625
+ </div>
626
+ <div class="tags">
627
+
628
+ <p class="tag_title">Returns:</p>
629
+ <ul class="return">
630
+
631
+ <li>
632
+
633
+
634
+ <span class='type'>(<tt>Boolean</tt>)</span>
635
+
636
+
637
+
638
+ </li>
639
+
640
+ </ul>
641
+
642
+ </div><table class="source_code">
643
+ <tr>
644
+ <td>
645
+ <pre class="lines">
646
+
647
+
648
+ 65
649
+ 66
650
+ 67</pre>
651
+ </td>
652
+ <td>
653
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 65</span>
654
+
655
+ <span class='kw'>def</span> <span class='id identifier rubyid_limit_reached?'>limit_reached?</span>
656
+ <span class='id identifier rubyid_data'>data</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>&gt;=</span> <span class='id identifier rubyid_in_memory_limit'>in_memory_limit</span>
657
+ <span class='kw'>end</span></pre>
658
+ </td>
659
+ </tr>
660
+ </table>
661
+ </div>
662
+
663
+ <div class="method_details ">
664
+ <h3 class="signature " id="max_row_size-instance_method">
665
+
666
+ #<strong>max_row_size</strong> &#x21d2; <tt>Object</tt>
667
+
668
+
669
+
670
+
671
+
672
+ </h3><div class="docstring">
673
+ <div class="discussion">
674
+ <p>Largest row in bytesize. Can estimate eventual file size.</p>
675
+
676
+
677
+ </div>
678
+ </div>
679
+ <div class="tags">
680
+
681
+
682
+ </div><table class="source_code">
683
+ <tr>
684
+ <td>
685
+ <pre class="lines">
686
+
687
+
688
+ 60
689
+ 61
690
+ 62</pre>
691
+ </td>
692
+ <td>
693
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 60</span>
694
+
695
+ <span class='kw'>def</span> <span class='id identifier rubyid_max_row_size'>max_row_size</span>
696
+ <span class='ivar'>@mutex</span><span class='period'>.</span><span class='id identifier rubyid_synchronize'>synchronize</span> <span class='lbrace'>{</span> <span class='ivar'>@max_row_size</span> <span class='rbrace'>}</span>
697
+ <span class='kw'>end</span></pre>
698
+ </td>
699
+ </tr>
700
+ </table>
701
+ </div>
702
+
703
+ <div class="method_details ">
704
+ <h3 class="signature " id="reset-instance_method">
705
+
706
+ #<strong>reset</strong> &#x21d2; <tt>Object</tt>
707
+
708
+
709
+
710
+
711
+
712
+ </h3><div class="docstring">
713
+ <div class="discussion">
714
+ <p>Resets the data, total rows etc back to 0</p>
715
+
716
+
717
+ </div>
718
+ </div>
719
+ <div class="tags">
720
+
721
+
722
+ </div><table class="source_code">
723
+ <tr>
724
+ <td>
725
+ <pre class="lines">
726
+
727
+
728
+ 21
729
+ 22
730
+ 23
731
+ 24
732
+ 25
733
+ 26
734
+ 27</pre>
735
+ </td>
736
+ <td>
737
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 21</span>
738
+
739
+ <span class='kw'>def</span> <span class='id identifier rubyid_reset'>reset</span>
740
+ <span class='ivar'>@mutex</span><span class='period'>.</span><span class='id identifier rubyid_synchronize'>synchronize</span> <span class='kw'>do</span>
741
+ <span class='ivar'>@total_rows</span> <span class='op'>=</span> <span class='int'>0</span>
742
+ <span class='ivar'>@max_row_size</span> <span class='op'>=</span> <span class='int'>0</span>
743
+ <span class='ivar'>@data</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
744
+ <span class='kw'>end</span>
745
+ <span class='kw'>end</span></pre>
746
+ </td>
747
+ </tr>
748
+ </table>
749
+ </div>
750
+
751
+ <div class="method_details ">
752
+ <h3 class="signature " id="total_rows-instance_method">
753
+
754
+ #<strong>total_rows</strong> &#x21d2; <tt>Object</tt>
755
+
756
+
757
+
758
+
759
+
760
+ </h3><div class="docstring">
761
+ <div class="discussion">
762
+ <p>The total rows streamed. This is everything written to the IO object
763
+ including whats in memory.</p>
764
+
765
+
766
+ </div>
767
+ </div>
768
+ <div class="tags">
769
+
770
+
771
+ </div><table class="source_code">
772
+ <tr>
773
+ <td>
774
+ <pre class="lines">
775
+
776
+
777
+ 55
778
+ 56
779
+ 57</pre>
780
+ </td>
781
+ <td>
782
+ <pre class="code"><span class="info file"># File 'lib/dwh/streaming_stats.rb', line 55</span>
783
+
784
+ <span class='kw'>def</span> <span class='id identifier rubyid_total_rows'>total_rows</span>
785
+ <span class='ivar'>@mutex</span><span class='period'>.</span><span class='id identifier rubyid_synchronize'>synchronize</span> <span class='lbrace'>{</span> <span class='ivar'>@total_rows</span> <span class='rbrace'>}</span>
786
+ <span class='kw'>end</span></pre>
787
+ </td>
788
+ </tr>
789
+ </table>
790
+ </div>
791
+
792
+ </div>
793
+
794
+ </div>
795
+
796
+ <div id="footer">
797
+ Generated on Fri Aug 22 08:31:22 2025 by
798
+ <a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
799
+ 0.9.37 (ruby-3.4.4).
800
+ </div>
801
+
802
+ </div>
803
+ </body>
804
+ </html>