blackbox 1.0.1 → 1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a6b362ded073826b4441800103177d20c63cd376
4
- data.tar.gz: 85195d9a8093f574af176623253363d889748527
3
+ metadata.gz: cdaefa7436a7c8a81c9451794fb09b6f70ab7c3c
4
+ data.tar.gz: 403ccd62b87e73ecc8638bdbbddc5b27949c671e
5
5
  SHA512:
6
- metadata.gz: 6b696580ad6f409dddbf1be7a5d02490c2e724013017d21d1ba060ffd7b58af03b0d1848e3fabca729808715413d63d17c4dfbcc9842b9cbb8dd5a8ed9e4894f
7
- data.tar.gz: 818590456c83e9bcca705ca0524f2d1e6418b142ee6ce2ee2ea2c3235f6466ea05317c39081bc5402a302abb97b4ca8fedc072d048d8eedb003aa41e2268b55e
6
+ metadata.gz: 540618ca3b6c4995042203b2a66e11b8f76da4edf996ce04f1a4a64ccd411d74574b56c163bfd9634d3b03fb0f3b3faf191a0b6b98ec695592060b294474c841
7
+ data.tar.gz: f7ba66a6d44011d21125ce3657bb09abaaa1403bf6042f650a72fef3248a574ebc5371c0786dd9655b763677d234b9f6d247bed0d8f90155c512a9808054d489
data/.gitattributes ADDED
@@ -0,0 +1,2 @@
1
+ doc/* linguist-documentation
2
+ coverage/* linguist-documentation
data/Guardfile ADDED
@@ -0,0 +1,16 @@
1
+ guard :rspec, cmd: "bundle exec rspec -f Fuubar" do
2
+ require "guard/rspec/dsl"
3
+ dsl = Guard::RSpec::Dsl.new(self)
4
+
5
+ # Feel free to open issues for suggestions and improvements
6
+
7
+ # RSpec files
8
+ rspec = dsl.rspec
9
+ watch(rspec.spec_helper) { rspec.spec_dir }
10
+ watch(rspec.spec_support) { rspec.spec_dir }
11
+ watch(rspec.spec_files)
12
+
13
+ # Ruby files
14
+ ruby = dsl.ruby
15
+ dsl.watch_spec_files_for(ruby.lib_files)
16
+ end
data/Makefile ADDED
@@ -0,0 +1,24 @@
1
+ # 0. make test
2
+ # 1. commit changes
3
+ # 2. bump
4
+ # 3. make release
5
+
6
+ .PHONY: test doc release
7
+
8
+ test:
9
+ bundle exec rake
10
+
11
+ doc:
12
+ bundle exec yardoc
13
+
14
+ push: test doc
15
+ git commit -m 'Documentation update' doc coverage README.md
16
+ git checkout gh-pages
17
+ git checkout master -- doc coverage
18
+ git commit -m 'Documentation update'
19
+ git checkout master
20
+ git push origin gh-pages
21
+
22
+ release: test doc push
23
+ bundle exec rake release
24
+
data/blackbox.gemspec CHANGED
@@ -23,4 +23,8 @@ Gem::Specification.new do |gem|
23
23
  gem.add_development_dependency "simplecov"
24
24
  gem.add_development_dependency "redcarpet"
25
25
  gem.add_development_dependency "yard"
26
+ gem.add_development_dependency "bump"
27
+ gem.add_development_dependency "guard"
28
+ gem.add_development_dependency "guard-rspec"
29
+ gem.add_development_dependency "fuubar"
26
30
  end
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "result": {
3
- "covered_percent": 100.0
3
+ "covered_percent": 95.79
4
4
  }
5
5
  }
@@ -112,7 +112,7 @@
112
112
  null,
113
113
  null,
114
114
  1,
115
- 7,
115
+ 100,
116
116
  null,
117
117
  null,
118
118
  null,
@@ -153,6 +153,175 @@
153
153
  null,
154
154
  null
155
155
  ],
156
+ "/home/moe/code/blackbox/lib/blackbox/number.rb": [
157
+ 1,
158
+ null,
159
+ 1,
160
+ null,
161
+ 1,
162
+ 1,
163
+ 1,
164
+ null,
165
+ null,
166
+ null,
167
+ null,
168
+ null,
169
+ null,
170
+ null,
171
+ null,
172
+ null,
173
+ null,
174
+ null,
175
+ null,
176
+ null,
177
+ null,
178
+ null,
179
+ null,
180
+ null,
181
+ null,
182
+ null,
183
+ null,
184
+ null,
185
+ null,
186
+ null,
187
+ null,
188
+ null,
189
+ null,
190
+ null,
191
+ null,
192
+ null,
193
+ null,
194
+ null,
195
+ null,
196
+ null,
197
+ null,
198
+ null,
199
+ null,
200
+ null,
201
+ 1,
202
+ 11,
203
+ null,
204
+ 11,
205
+ null,
206
+ 11,
207
+ 11,
208
+ 11,
209
+ 11,
210
+ 11,
211
+ null,
212
+ 11,
213
+ null,
214
+ 1,
215
+ null,
216
+ 10,
217
+ 10,
218
+ 10,
219
+ 10,
220
+ 10,
221
+ null,
222
+ 10,
223
+ null,
224
+ 10,
225
+ 10,
226
+ 10,
227
+ null,
228
+ null,
229
+ null,
230
+ null,
231
+ 10,
232
+ 0,
233
+ 0,
234
+ null,
235
+ null,
236
+ null,
237
+ null,
238
+ null,
239
+ null,
240
+ null,
241
+ null,
242
+ null,
243
+ null,
244
+ null,
245
+ null,
246
+ null,
247
+ null,
248
+ null,
249
+ null,
250
+ null,
251
+ null,
252
+ null,
253
+ null,
254
+ null,
255
+ null,
256
+ null,
257
+ null,
258
+ null,
259
+ null,
260
+ null,
261
+ null,
262
+ null,
263
+ null,
264
+ null,
265
+ 1,
266
+ 11,
267
+ null,
268
+ 11,
269
+ 11,
270
+ 11,
271
+ null,
272
+ 11,
273
+ 11,
274
+ 11,
275
+ null,
276
+ null,
277
+ null,
278
+ 0,
279
+ null,
280
+ null,
281
+ null,
282
+ null,
283
+ null,
284
+ null,
285
+ null,
286
+ null,
287
+ null,
288
+ null,
289
+ null,
290
+ null,
291
+ null,
292
+ null,
293
+ null,
294
+ null,
295
+ null,
296
+ null,
297
+ null,
298
+ null,
299
+ null,
300
+ null,
301
+ null,
302
+ null,
303
+ null,
304
+ null,
305
+ null,
306
+ 1,
307
+ 12,
308
+ null,
309
+ 12,
310
+ 12,
311
+ null,
312
+ 12,
313
+ 12,
314
+ 12,
315
+ 12,
316
+ null,
317
+ 0,
318
+ null,
319
+ null,
320
+ null,
321
+ null,
322
+ null,
323
+ null
324
+ ],
156
325
  "/home/moe/code/blackbox/lib/blackbox/string.rb": [
157
326
  1,
158
327
  null,
@@ -173,6 +342,6 @@
173
342
  null
174
343
  ]
175
344
  },
176
- "timestamp": 1419394994
345
+ "timestamp": 1448213121
177
346
  }
178
347
  }
data/coverage/index.html CHANGED
@@ -14,27 +14,27 @@
14
14
  <img src="./assets/0.7.1/loading.gif" alt="loading"/>
15
15
  </div>
16
16
  <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2014-12-24T05:23:14+01:00">2014-12-24T05:23:14+01:00</abbr></div>
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2015-11-22T18:25:21+01:00">2015-11-22T18:25:21+01:00</abbr></div>
18
18
  <ul class="group_tabs"></ul>
19
19
 
20
20
  <div id="content">
21
21
  <div class="file_list_container" id="AllFiles">
22
22
  <h2>
23
23
  <span class="group_name">All Files</span>
24
- (<span class="covered_percent"><span class="green">100.0%</span></span>
24
+ (<span class="covered_percent"><span class="green">95.79%</span></span>
25
25
  covered at
26
26
  <span class="covered_strength">
27
27
  <span class="green">
28
- 81.7
28
+ 65.07
29
29
  </span>
30
30
  </span> hits/line)
31
31
  </h2>
32
32
  <a name="AllFiles"></a>
33
33
  <div>
34
- <b>3</b> files in total.
35
- <b>50</b> relevant lines.
36
- <span class="green"><b>50</b> lines covered</span> and
37
- <span class="red"><b>0</b> lines missed </span>
34
+ <b>4</b> files in total.
35
+ <b>95</b> relevant lines.
36
+ <span class="green"><b>91</b> lines covered</span> and
37
+ <span class="red"><b>4</b> lines missed </span>
38
38
  </div>
39
39
  <table class="file_list">
40
40
  <thead>
@@ -67,7 +67,17 @@
67
67
  <td>13</td>
68
68
  <td>13</td>
69
69
  <td>0</td>
70
- <td>7.5</td>
70
+ <td>14.7</td>
71
+ </tr>
72
+
73
+ <tr>
74
+ <td class="strong"><a href="#7a135b0407697dbb00ab589a4ca6477d724b7276" class="src_link" title="lib/blackbox/number.rb">lib/blackbox/number.rb</a></td>
75
+ <td class="green strong">91.11 %</td>
76
+ <td>167</td>
77
+ <td>45</td>
78
+ <td>41</td>
79
+ <td>4</td>
80
+ <td>8.0</td>
71
81
  </tr>
72
82
 
73
83
  <tr>
@@ -149,7 +159,7 @@
149
159
  <li class="covered" data-hits="1" data-linenumber="7">
150
160
  <span class="hits">1</span>
151
161
 
152
- <code class="ruby"> class &lt;&lt; self </code>
162
+ <code class="ruby"> class &lt;&lt; self</code>
153
163
  </li>
154
164
 
155
165
  <li class="never" data-hits="" data-linenumber="8">
@@ -203,25 +213,25 @@
203
213
  <li class="covered" data-hits="1" data-linenumber="16">
204
214
  <span class="hits">1</span>
205
215
 
206
- <code class="ruby"> def encrypt(plaintext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil) </code>
216
+ <code class="ruby"> def encrypt(plaintext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil)</code>
207
217
  </li>
208
218
 
209
219
  <li class="covered" data-hits="697" data-linenumber="17">
210
220
  <span class="hits">697</span>
211
221
 
212
- <code class="ruby"> aes = OpenSSL::Cipher::Cipher.new(cipher_type) </code>
222
+ <code class="ruby"> cipher = OpenSSL::Cipher::Cipher.new(cipher_type)</code>
213
223
  </li>
214
224
 
215
225
  <li class="covered" data-hits="697" data-linenumber="18">
216
226
  <span class="hits">697</span>
217
227
 
218
- <code class="ruby"> aes.encrypt </code>
228
+ <code class="ruby"> cipher.encrypt</code>
219
229
  </li>
220
230
 
221
231
  <li class="covered" data-hits="697" data-linenumber="19">
222
232
  <span class="hits">697</span>
223
233
 
224
- <code class="ruby"> aes.key = key </code>
234
+ <code class="ruby"> cipher.key = key</code>
225
235
  </li>
226
236
 
227
237
  <li class="covered" data-hits="697" data-linenumber="20">
@@ -233,13 +243,13 @@
233
243
  <li class="covered" data-hits="328" data-linenumber="21">
234
244
  <span class="hits">328</span>
235
245
 
236
- <code class="ruby"> iv = aes.random_iv</code>
246
+ <code class="ruby"> iv = cipher.random_iv</code>
237
247
  </li>
238
248
 
239
249
  <li class="covered" data-hits="328" data-linenumber="22">
240
250
  <span class="hits">328</span>
241
251
 
242
- <code class="ruby"> [iv.length].pack(&#39;C&#39;) + iv + aes.update(plaintext) + aes.final</code>
252
+ <code class="ruby"> [iv.length].pack(&#39;C&#39;) + iv + cipher.update(plaintext) + cipher.final</code>
243
253
  </li>
244
254
 
245
255
  <li class="never" data-hits="" data-linenumber="23">
@@ -251,13 +261,13 @@
251
261
  <li class="covered" data-hits="369" data-linenumber="24">
252
262
  <span class="hits">369</span>
253
263
 
254
- <code class="ruby"> aes.iv = iv</code>
264
+ <code class="ruby"> cipher.iv = iv</code>
255
265
  </li>
256
266
 
257
267
  <li class="covered" data-hits="369" data-linenumber="25">
258
268
  <span class="hits">369</span>
259
269
 
260
- <code class="ruby"> aes.update(plaintext) + aes.final</code>
270
+ <code class="ruby"> cipher.update(plaintext) + cipher.final</code>
261
271
  </li>
262
272
 
263
273
  <li class="never" data-hits="" data-linenumber="26">
@@ -269,7 +279,7 @@
269
279
  <li class="never" data-hits="" data-linenumber="27">
270
280
 
271
281
 
272
- <code class="ruby"> end </code>
282
+ <code class="ruby"> end</code>
273
283
  </li>
274
284
 
275
285
  <li class="never" data-hits="" data-linenumber="28">
@@ -323,25 +333,25 @@
323
333
  <li class="covered" data-hits="1" data-linenumber="36">
324
334
  <span class="hits">1</span>
325
335
 
326
- <code class="ruby"> def decrypt(ciphertext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil) </code>
336
+ <code class="ruby"> def decrypt(ciphertext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil)</code>
327
337
  </li>
328
338
 
329
339
  <li class="covered" data-hits="369" data-linenumber="37">
330
340
  <span class="hits">369</span>
331
341
 
332
- <code class="ruby"> aes = OpenSSL::Cipher::Cipher.new(cipher_type) </code>
342
+ <code class="ruby"> cipher = OpenSSL::Cipher::Cipher.new(cipher_type)</code>
333
343
  </li>
334
344
 
335
345
  <li class="covered" data-hits="369" data-linenumber="38">
336
346
  <span class="hits">369</span>
337
347
 
338
- <code class="ruby"> aes.decrypt </code>
348
+ <code class="ruby"> cipher.decrypt</code>
339
349
  </li>
340
350
 
341
351
  <li class="covered" data-hits="369" data-linenumber="39">
342
352
  <span class="hits">369</span>
343
353
 
344
- <code class="ruby"> aes.key = key </code>
354
+ <code class="ruby"> cipher.key = key</code>
345
355
  </li>
346
356
 
347
357
  <li class="covered" data-hits="369" data-linenumber="40">
@@ -365,7 +375,7 @@
365
375
  <li class="covered" data-hits="180" data-linenumber="43">
366
376
  <span class="hits">180</span>
367
377
 
368
- <code class="ruby"> aes.iv = ciphertext.slice!(0..iv_len-1)</code>
378
+ <code class="ruby"> cipher.iv = ciphertext.slice!(0..iv_len-1)</code>
369
379
  </li>
370
380
 
371
381
  <li class="never" data-hits="" data-linenumber="44">
@@ -383,7 +393,7 @@
383
393
  <li class="covered" data-hits="123" data-linenumber="46">
384
394
  <span class="hits">123</span>
385
395
 
386
- <code class="ruby"> aes.iv = iv</code>
396
+ <code class="ruby"> cipher.iv = iv</code>
387
397
  </li>
388
398
 
389
399
  <li class="never" data-hits="" data-linenumber="47">
@@ -395,19 +405,19 @@
395
405
  <li class="covered" data-hits="369" data-linenumber="48">
396
406
  <span class="hits">369</span>
397
407
 
398
- <code class="ruby"> aes.update(ciphertext) + aes.final</code>
408
+ <code class="ruby"> cipher.update(ciphertext) + cipher.final</code>
399
409
  </li>
400
410
 
401
411
  <li class="never" data-hits="" data-linenumber="49">
402
412
 
403
413
 
404
- <code class="ruby"> end </code>
414
+ <code class="ruby"> end</code>
405
415
  </li>
406
416
 
407
417
  <li class="never" data-hits="" data-linenumber="50">
408
418
 
409
419
 
410
- <code class="ruby"> </code>
420
+ <code class="ruby"></code>
411
421
  </li>
412
422
 
413
423
  <li class="never" data-hits="" data-linenumber="51">
@@ -461,7 +471,7 @@
461
471
  <li class="covered" data-hits="1" data-linenumber="59">
462
472
  <span class="hits">1</span>
463
473
 
464
- <code class="ruby"> def encrypt_base64(plaintext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil) </code>
474
+ <code class="ruby"> def encrypt_base64(plaintext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil)</code>
465
475
  </li>
466
476
 
467
477
  <li class="covered" data-hits="246" data-linenumber="60">
@@ -527,7 +537,7 @@
527
537
  <li class="covered" data-hits="1" data-linenumber="70">
528
538
  <span class="hits">1</span>
529
539
 
530
- <code class="ruby"> def decrypt_base64(ciphertext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil) </code>
540
+ <code class="ruby"> def decrypt_base64(ciphertext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil)</code>
531
541
  </li>
532
542
 
533
543
  <li class="covered" data-hits="123" data-linenumber="71">
@@ -599,7 +609,7 @@
599
609
  <li class="covered" data-hits="1" data-linenumber="82">
600
610
  <span class="hits">1</span>
601
611
 
602
- <code class="ruby"> def encrypt_urlsafe_base64(plaintext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil) </code>
612
+ <code class="ruby"> def encrypt_urlsafe_base64(plaintext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil)</code>
603
613
  </li>
604
614
 
605
615
  <li class="covered" data-hits="246" data-linenumber="83">
@@ -665,7 +675,7 @@
665
675
  <li class="covered" data-hits="1" data-linenumber="93">
666
676
  <span class="hits">1</span>
667
677
 
668
- <code class="ruby"> def decrypt_urlsafe_base64(ciphertext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil) </code>
678
+ <code class="ruby"> def decrypt_urlsafe_base64(ciphertext, key, cipher_type=&#39;aes-256-cbc&#39;, iv=nil)</code>
669
679
  </li>
670
680
 
671
681
  <li class="covered" data-hits="123" data-linenumber="94">
@@ -683,7 +693,7 @@
683
693
  <li class="never" data-hits="" data-linenumber="96">
684
694
 
685
695
 
686
- <code class="ruby"> end </code>
696
+ <code class="ruby"> end</code>
687
697
  </li>
688
698
 
689
699
  <li class="never" data-hits="" data-linenumber="97">
@@ -776,8 +786,8 @@
776
786
  <code class="ruby"> def symbolize_keys(hash)</code>
777
787
  </li>
778
788
 
779
- <li class="covered" data-hits="7" data-linenumber="10">
780
- <span class="hits">7</span>
789
+ <li class="covered" data-hits="100" data-linenumber="10">
790
+ <span class="hits">100</span>
781
791
 
782
792
  <code class="ruby"> hash.each_with_object({}){|(k,v), h| h[k.to_sym] = v}</code>
783
793
  </li>
@@ -1020,6 +1030,1026 @@
1020
1030
  </pre>
1021
1031
  </div>
1022
1032
 
1033
+ <div class="source_table" id="7a135b0407697dbb00ab589a4ca6477d724b7276">
1034
+ <div class="header">
1035
+ <h3>lib/blackbox/number.rb</h3>
1036
+ <h4><span class="green">91.11 %</span> covered</h4>
1037
+ <div>
1038
+ <b>45</b> relevant lines.
1039
+ <span class="green"><b>41</b> lines covered</span> and
1040
+ <span class="red"><b>4</b> lines missed.</span>
1041
+ </div>
1042
+ </div>
1043
+
1044
+ <pre>
1045
+ <ol>
1046
+
1047
+ <li class="covered" data-hits="1" data-linenumber="1">
1048
+ <span class="hits">1</span>
1049
+
1050
+ <code class="ruby">require &#39;blackbox/hash&#39;</code>
1051
+ </li>
1052
+
1053
+ <li class="never" data-hits="" data-linenumber="2">
1054
+
1055
+
1056
+ <code class="ruby"></code>
1057
+ </li>
1058
+
1059
+ <li class="covered" data-hits="1" data-linenumber="3">
1060
+ <span class="hits">1</span>
1061
+
1062
+ <code class="ruby">module BB</code>
1063
+ </li>
1064
+
1065
+ <li class="never" data-hits="" data-linenumber="4">
1066
+
1067
+
1068
+ <code class="ruby"> # String utilities.</code>
1069
+ </li>
1070
+
1071
+ <li class="covered" data-hits="1" data-linenumber="5">
1072
+ <span class="hits">1</span>
1073
+
1074
+ <code class="ruby"> module Number</code>
1075
+ </li>
1076
+
1077
+ <li class="covered" data-hits="1" data-linenumber="6">
1078
+ <span class="hits">1</span>
1079
+
1080
+ <code class="ruby"> class &lt;&lt; self</code>
1081
+ </li>
1082
+
1083
+ <li class="covered" data-hits="1" data-linenumber="7">
1084
+ <span class="hits">1</span>
1085
+
1086
+ <code class="ruby"> STORAGE_UNITS = [&#39;byte&#39;, &#39;k&#39;, &#39;M&#39;, &#39;G&#39;, &#39;T&#39;, &#39;P&#39;, &#39;E&#39;, &#39;Z&#39;, &#39;Y&#39;].freeze</code>
1087
+ </li>
1088
+
1089
+ <li class="never" data-hits="" data-linenumber="8">
1090
+
1091
+
1092
+ <code class="ruby"></code>
1093
+ </li>
1094
+
1095
+ <li class="never" data-hits="" data-linenumber="9">
1096
+
1097
+
1098
+ <code class="ruby"> ##</code>
1099
+ </li>
1100
+
1101
+ <li class="never" data-hits="" data-linenumber="10">
1102
+
1103
+
1104
+ <code class="ruby"> # Formats the bytes in +size+ into a more understandable representation</code>
1105
+ </li>
1106
+
1107
+ <li class="never" data-hits="" data-linenumber="11">
1108
+
1109
+
1110
+ <code class="ruby"> # (e.g., giving it 1500 yields 1.5 KB). This method is useful for</code>
1111
+ </li>
1112
+
1113
+ <li class="never" data-hits="" data-linenumber="12">
1114
+
1115
+
1116
+ <code class="ruby"> # reporting file sizes to users. This method returns nil if</code>
1117
+ </li>
1118
+
1119
+ <li class="never" data-hits="" data-linenumber="13">
1120
+
1121
+
1122
+ <code class="ruby"> # +size+ cannot be converted into a number. You can customize the</code>
1123
+ </li>
1124
+
1125
+ <li class="never" data-hits="" data-linenumber="14">
1126
+
1127
+
1128
+ <code class="ruby"> # format in the +options+ hash.</code>
1129
+ </li>
1130
+
1131
+ <li class="never" data-hits="" data-linenumber="15">
1132
+
1133
+
1134
+ <code class="ruby"> #</code>
1135
+ </li>
1136
+
1137
+ <li class="never" data-hits="" data-linenumber="16">
1138
+
1139
+
1140
+ <code class="ruby"> # @overload to_human_size(number, options={})</code>
1141
+ </li>
1142
+
1143
+ <li class="never" data-hits="" data-linenumber="17">
1144
+
1145
+
1146
+ <code class="ruby"> # @param [Fixnum] number</code>
1147
+ </li>
1148
+
1149
+ <li class="never" data-hits="" data-linenumber="18">
1150
+
1151
+
1152
+ <code class="ruby"> # Number value to format.</code>
1153
+ </li>
1154
+
1155
+ <li class="never" data-hits="" data-linenumber="19">
1156
+
1157
+
1158
+ <code class="ruby"> # @param [Hash] options</code>
1159
+ </li>
1160
+
1161
+ <li class="never" data-hits="" data-linenumber="20">
1162
+
1163
+
1164
+ <code class="ruby"> # Options for formatter.</code>
1165
+ </li>
1166
+
1167
+ <li class="never" data-hits="" data-linenumber="21">
1168
+
1169
+
1170
+ <code class="ruby"> # @option options [Fixnum] :precision (1)</code>
1171
+ </li>
1172
+
1173
+ <li class="never" data-hits="" data-linenumber="22">
1174
+
1175
+
1176
+ <code class="ruby"> # Sets the level of precision.</code>
1177
+ </li>
1178
+
1179
+ <li class="never" data-hits="" data-linenumber="23">
1180
+
1181
+
1182
+ <code class="ruby"> # @option options [String] :separator (&quot;.&quot;)</code>
1183
+ </li>
1184
+
1185
+ <li class="never" data-hits="" data-linenumber="24">
1186
+
1187
+
1188
+ <code class="ruby"> # Sets the separator between the units.</code>
1189
+ </li>
1190
+
1191
+ <li class="never" data-hits="" data-linenumber="25">
1192
+
1193
+
1194
+ <code class="ruby"> # @option options [String] :delimiter (&quot;&quot;)</code>
1195
+ </li>
1196
+
1197
+ <li class="never" data-hits="" data-linenumber="26">
1198
+
1199
+
1200
+ <code class="ruby"> # Sets the thousands delimiter.</code>
1201
+ </li>
1202
+
1203
+ <li class="never" data-hits="" data-linenumber="27">
1204
+
1205
+
1206
+ <code class="ruby"> # @option options [String] :kilo (1024)</code>
1207
+ </li>
1208
+
1209
+ <li class="never" data-hits="" data-linenumber="28">
1210
+
1211
+
1212
+ <code class="ruby"> # Sets the number of bytes in a kilobyte.</code>
1213
+ </li>
1214
+
1215
+ <li class="never" data-hits="" data-linenumber="29">
1216
+
1217
+
1218
+ <code class="ruby"> # @option options [String] :format (&quot;%n %u&quot;)</code>
1219
+ </li>
1220
+
1221
+ <li class="never" data-hits="" data-linenumber="30">
1222
+
1223
+
1224
+ <code class="ruby"> # Sets the display format.</code>
1225
+ </li>
1226
+
1227
+ <li class="never" data-hits="" data-linenumber="31">
1228
+
1229
+
1230
+ <code class="ruby"> #</code>
1231
+ </li>
1232
+
1233
+ <li class="never" data-hits="" data-linenumber="32">
1234
+
1235
+
1236
+ <code class="ruby"> # @return [String] The formatted representation of bytes</code>
1237
+ </li>
1238
+
1239
+ <li class="never" data-hits="" data-linenumber="33">
1240
+
1241
+
1242
+ <code class="ruby"> #</code>
1243
+ </li>
1244
+
1245
+ <li class="never" data-hits="" data-linenumber="34">
1246
+
1247
+
1248
+ <code class="ruby"> # @example</code>
1249
+ </li>
1250
+
1251
+ <li class="never" data-hits="" data-linenumber="35">
1252
+
1253
+
1254
+ <code class="ruby"> # to_human_size(123) # =&gt; 123 Bytes</code>
1255
+ </li>
1256
+
1257
+ <li class="never" data-hits="" data-linenumber="36">
1258
+
1259
+
1260
+ <code class="ruby"> # to_human_size(1234) # =&gt; 1.2 KB</code>
1261
+ </li>
1262
+
1263
+ <li class="never" data-hits="" data-linenumber="37">
1264
+
1265
+
1266
+ <code class="ruby"> # to_human_size(12345) # =&gt; 12.1 KB</code>
1267
+ </li>
1268
+
1269
+ <li class="never" data-hits="" data-linenumber="38">
1270
+
1271
+
1272
+ <code class="ruby"> # to_human_size(1234567) # =&gt; 1.2 MB</code>
1273
+ </li>
1274
+
1275
+ <li class="never" data-hits="" data-linenumber="39">
1276
+
1277
+
1278
+ <code class="ruby"> # to_human_size(1234567890) # =&gt; 1.1 GB</code>
1279
+ </li>
1280
+
1281
+ <li class="never" data-hits="" data-linenumber="40">
1282
+
1283
+
1284
+ <code class="ruby"> # to_human_size(1234567890123) # =&gt; 1.1 TB</code>
1285
+ </li>
1286
+
1287
+ <li class="never" data-hits="" data-linenumber="41">
1288
+
1289
+
1290
+ <code class="ruby"> # to_human_size(1234567, :precision =&gt; 2) # =&gt; 1.18 MB</code>
1291
+ </li>
1292
+
1293
+ <li class="never" data-hits="" data-linenumber="42">
1294
+
1295
+
1296
+ <code class="ruby"> # to_human_size(483989, :precision =&gt; 0) # =&gt; 473 KB</code>
1297
+ </li>
1298
+
1299
+ <li class="never" data-hits="" data-linenumber="43">
1300
+
1301
+
1302
+ <code class="ruby"> # to_human_size(1234567, :precision =&gt; 2, :separator =&gt; &#39;,&#39;) # =&gt; 1,18 MB</code>
1303
+ </li>
1304
+
1305
+ <li class="never" data-hits="" data-linenumber="44">
1306
+
1307
+
1308
+ <code class="ruby"> #</code>
1309
+ </li>
1310
+
1311
+ <li class="covered" data-hits="1" data-linenumber="45">
1312
+ <span class="hits">1</span>
1313
+
1314
+ <code class="ruby"> def to_human_size(number, args={})</code>
1315
+ </li>
1316
+
1317
+ <li class="covered" data-hits="11" data-linenumber="46">
1318
+ <span class="hits">11</span>
1319
+
1320
+ <code class="ruby"> return nil if number.nil?</code>
1321
+ </li>
1322
+
1323
+ <li class="never" data-hits="" data-linenumber="47">
1324
+
1325
+
1326
+ <code class="ruby"></code>
1327
+ </li>
1328
+
1329
+ <li class="covered" data-hits="11" data-linenumber="48">
1330
+ <span class="hits">11</span>
1331
+
1332
+ <code class="ruby"> options = BB::Hash.symbolize_keys(args)</code>
1333
+ </li>
1334
+
1335
+ <li class="never" data-hits="" data-linenumber="49">
1336
+
1337
+
1338
+ <code class="ruby"></code>
1339
+ </li>
1340
+
1341
+ <li class="covered" data-hits="11" data-linenumber="50">
1342
+ <span class="hits">11</span>
1343
+
1344
+ <code class="ruby"> precision ||= (options[:precision] || 1)</code>
1345
+ </li>
1346
+
1347
+ <li class="covered" data-hits="11" data-linenumber="51">
1348
+ <span class="hits">11</span>
1349
+
1350
+ <code class="ruby"> separator ||= (options[:separator] || &#39;.&#39;)</code>
1351
+ </li>
1352
+
1353
+ <li class="covered" data-hits="11" data-linenumber="52">
1354
+ <span class="hits">11</span>
1355
+
1356
+ <code class="ruby"> delimiter ||= (options[:delimiter] || &#39;&#39;)</code>
1357
+ </li>
1358
+
1359
+ <li class="covered" data-hits="11" data-linenumber="53">
1360
+ <span class="hits">11</span>
1361
+
1362
+ <code class="ruby"> kilo ||= (options[:kilo] || 1024)</code>
1363
+ </li>
1364
+
1365
+ <li class="covered" data-hits="11" data-linenumber="54">
1366
+ <span class="hits">11</span>
1367
+
1368
+ <code class="ruby"> storage_units_format ||= (options[:format] || &#39;%n%u&#39;)</code>
1369
+ </li>
1370
+
1371
+ <li class="never" data-hits="" data-linenumber="55">
1372
+
1373
+
1374
+ <code class="ruby"></code>
1375
+ </li>
1376
+
1377
+ <li class="covered" data-hits="11" data-linenumber="56">
1378
+ <span class="hits">11</span>
1379
+
1380
+ <code class="ruby"> if number.to_i &lt; kilo</code>
1381
+ </li>
1382
+
1383
+ <li class="never" data-hits="" data-linenumber="57">
1384
+
1385
+
1386
+ <code class="ruby"> #unit = I18n.translate(:&#39;number.human.storage_units.units.byte&#39;, :locale =&gt; options[:locale], :count =&gt; number.to_i, :raise =&gt; true)</code>
1387
+ </li>
1388
+
1389
+ <li class="covered" data-hits="1" data-linenumber="58">
1390
+ <span class="hits">1</span>
1391
+
1392
+ <code class="ruby"> storage_units_format.gsub(/%n/, number.to_i.to_s).gsub(/%u/, &#39;&#39;)</code>
1393
+ </li>
1394
+
1395
+ <li class="never" data-hits="" data-linenumber="59">
1396
+
1397
+
1398
+ <code class="ruby"> else</code>
1399
+ </li>
1400
+
1401
+ <li class="covered" data-hits="10" data-linenumber="60">
1402
+ <span class="hits">10</span>
1403
+
1404
+ <code class="ruby"> max_exp = STORAGE_UNITS.size - 1</code>
1405
+ </li>
1406
+
1407
+ <li class="covered" data-hits="10" data-linenumber="61">
1408
+ <span class="hits">10</span>
1409
+
1410
+ <code class="ruby"> number = Float(number)</code>
1411
+ </li>
1412
+
1413
+ <li class="covered" data-hits="10" data-linenumber="62">
1414
+ <span class="hits">10</span>
1415
+
1416
+ <code class="ruby"> exponent = (Math.log(number) / Math.log(kilo)).to_i # Convert to base 1024</code>
1417
+ </li>
1418
+
1419
+ <li class="covered" data-hits="10" data-linenumber="63">
1420
+ <span class="hits">10</span>
1421
+
1422
+ <code class="ruby"> exponent = max_exp if exponent &gt; max_exp # we need this to avoid overflow for the highest unit</code>
1423
+ </li>
1424
+
1425
+ <li class="covered" data-hits="10" data-linenumber="64">
1426
+ <span class="hits">10</span>
1427
+
1428
+ <code class="ruby"> number /= kilo ** exponent</code>
1429
+ </li>
1430
+
1431
+ <li class="never" data-hits="" data-linenumber="65">
1432
+
1433
+
1434
+ <code class="ruby"></code>
1435
+ </li>
1436
+
1437
+ <li class="covered" data-hits="10" data-linenumber="66">
1438
+ <span class="hits">10</span>
1439
+
1440
+ <code class="ruby"> unit = STORAGE_UNITS[exponent]</code>
1441
+ </li>
1442
+
1443
+ <li class="never" data-hits="" data-linenumber="67">
1444
+
1445
+
1446
+ <code class="ruby"></code>
1447
+ </li>
1448
+
1449
+ <li class="covered" data-hits="10" data-linenumber="68">
1450
+ <span class="hits">10</span>
1451
+
1452
+ <code class="ruby"> begin</code>
1453
+ </li>
1454
+
1455
+ <li class="covered" data-hits="10" data-linenumber="69">
1456
+ <span class="hits">10</span>
1457
+
1458
+ <code class="ruby"> escaped_separator = Regexp.escape(separator)</code>
1459
+ </li>
1460
+
1461
+ <li class="covered" data-hits="10" data-linenumber="70">
1462
+ <span class="hits">10</span>
1463
+
1464
+ <code class="ruby"> formatted_number = with_precision(number,</code>
1465
+ </li>
1466
+
1467
+ <li class="never" data-hits="" data-linenumber="71">
1468
+
1469
+
1470
+ <code class="ruby"> :precision =&gt; precision,</code>
1471
+ </li>
1472
+
1473
+ <li class="never" data-hits="" data-linenumber="72">
1474
+
1475
+
1476
+ <code class="ruby"> :separator =&gt; separator,</code>
1477
+ </li>
1478
+
1479
+ <li class="never" data-hits="" data-linenumber="73">
1480
+
1481
+
1482
+ <code class="ruby"> :delimiter =&gt; delimiter</code>
1483
+ </li>
1484
+
1485
+ <li class="never" data-hits="" data-linenumber="74">
1486
+
1487
+
1488
+ <code class="ruby"> ).sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, &#39;\1\2&#39;).sub(/#{escaped_separator}\z/, &#39;&#39;)</code>
1489
+ </li>
1490
+
1491
+ <li class="covered" data-hits="10" data-linenumber="75">
1492
+ <span class="hits">10</span>
1493
+
1494
+ <code class="ruby"> storage_units_format.gsub(/%n/, formatted_number).gsub(/%u/, unit)</code>
1495
+ </li>
1496
+
1497
+ <li class="missed" data-hits="0" data-linenumber="76">
1498
+
1499
+
1500
+ <code class="ruby"> rescue =&gt; e</code>
1501
+ </li>
1502
+
1503
+ <li class="missed" data-hits="0" data-linenumber="77">
1504
+
1505
+
1506
+ <code class="ruby"> e</code>
1507
+ </li>
1508
+
1509
+ <li class="never" data-hits="" data-linenumber="78">
1510
+
1511
+
1512
+ <code class="ruby"> #number</code>
1513
+ </li>
1514
+
1515
+ <li class="never" data-hits="" data-linenumber="79">
1516
+
1517
+
1518
+ <code class="ruby"> end</code>
1519
+ </li>
1520
+
1521
+ <li class="never" data-hits="" data-linenumber="80">
1522
+
1523
+
1524
+ <code class="ruby"> end</code>
1525
+ </li>
1526
+
1527
+ <li class="never" data-hits="" data-linenumber="81">
1528
+
1529
+
1530
+ <code class="ruby"> end</code>
1531
+ </li>
1532
+
1533
+ <li class="never" data-hits="" data-linenumber="82">
1534
+
1535
+
1536
+ <code class="ruby"></code>
1537
+ </li>
1538
+
1539
+ <li class="never" data-hits="" data-linenumber="83">
1540
+
1541
+
1542
+ <code class="ruby"> ##</code>
1543
+ </li>
1544
+
1545
+ <li class="never" data-hits="" data-linenumber="84">
1546
+
1547
+
1548
+ <code class="ruby"> # Formats a +number+ with the specified level of &lt;tt&gt;:precision&lt;/tt&gt; (e.g., 112.32 has a precision of 2).</code>
1549
+ </li>
1550
+
1551
+ <li class="never" data-hits="" data-linenumber="85">
1552
+
1553
+
1554
+ <code class="ruby"> # You can customize the format in the +options+ hash.</code>
1555
+ </li>
1556
+
1557
+ <li class="never" data-hits="" data-linenumber="86">
1558
+
1559
+
1560
+ <code class="ruby"> #</code>
1561
+ </li>
1562
+
1563
+ <li class="never" data-hits="" data-linenumber="87">
1564
+
1565
+
1566
+ <code class="ruby"> # @overload with_precision(number, options={})</code>
1567
+ </li>
1568
+
1569
+ <li class="never" data-hits="" data-linenumber="88">
1570
+
1571
+
1572
+ <code class="ruby"> # @param [Fixnum, Float] number</code>
1573
+ </li>
1574
+
1575
+ <li class="never" data-hits="" data-linenumber="89">
1576
+
1577
+
1578
+ <code class="ruby"> # Number value to format.</code>
1579
+ </li>
1580
+
1581
+ <li class="never" data-hits="" data-linenumber="90">
1582
+
1583
+
1584
+ <code class="ruby"> # @param [Hash] options</code>
1585
+ </li>
1586
+
1587
+ <li class="never" data-hits="" data-linenumber="91">
1588
+
1589
+
1590
+ <code class="ruby"> # Options for formatter.</code>
1591
+ </li>
1592
+
1593
+ <li class="never" data-hits="" data-linenumber="92">
1594
+
1595
+
1596
+ <code class="ruby"> # @option options [Fixnum] :precision (3)</code>
1597
+ </li>
1598
+
1599
+ <li class="never" data-hits="" data-linenumber="93">
1600
+
1601
+
1602
+ <code class="ruby"> # Sets the level of precision.</code>
1603
+ </li>
1604
+
1605
+ <li class="never" data-hits="" data-linenumber="94">
1606
+
1607
+
1608
+ <code class="ruby"> # @option options [String] :separator (&quot;.&quot;)</code>
1609
+ </li>
1610
+
1611
+ <li class="never" data-hits="" data-linenumber="95">
1612
+
1613
+
1614
+ <code class="ruby"> # Sets the separator between the units.</code>
1615
+ </li>
1616
+
1617
+ <li class="never" data-hits="" data-linenumber="96">
1618
+
1619
+
1620
+ <code class="ruby"> # @option options [String] :delimiter (&quot;&quot;)</code>
1621
+ </li>
1622
+
1623
+ <li class="never" data-hits="" data-linenumber="97">
1624
+
1625
+
1626
+ <code class="ruby"> # Sets the thousands delimiter.</code>
1627
+ </li>
1628
+
1629
+ <li class="never" data-hits="" data-linenumber="98">
1630
+
1631
+
1632
+ <code class="ruby"> #</code>
1633
+ </li>
1634
+
1635
+ <li class="never" data-hits="" data-linenumber="99">
1636
+
1637
+
1638
+ <code class="ruby"> # @return [String] The formatted representation of the number.</code>
1639
+ </li>
1640
+
1641
+ <li class="never" data-hits="" data-linenumber="100">
1642
+
1643
+
1644
+ <code class="ruby"> #</code>
1645
+ </li>
1646
+
1647
+ <li class="never" data-hits="" data-linenumber="101">
1648
+
1649
+
1650
+ <code class="ruby"> # @example</code>
1651
+ </li>
1652
+
1653
+ <li class="never" data-hits="" data-linenumber="102">
1654
+
1655
+
1656
+ <code class="ruby"> # with_precision(111.2345) # =&gt; 111.235</code>
1657
+ </li>
1658
+
1659
+ <li class="never" data-hits="" data-linenumber="103">
1660
+
1661
+
1662
+ <code class="ruby"> # with_precision(111.2345, :precision =&gt; 2) # =&gt; 111.23</code>
1663
+ </li>
1664
+
1665
+ <li class="never" data-hits="" data-linenumber="104">
1666
+
1667
+
1668
+ <code class="ruby"> # with_precision(13, :precision =&gt; 5) # =&gt; 13.00000</code>
1669
+ </li>
1670
+
1671
+ <li class="never" data-hits="" data-linenumber="105">
1672
+
1673
+
1674
+ <code class="ruby"> # with_precision(389.32314, :precision =&gt; 0) # =&gt; 389</code>
1675
+ </li>
1676
+
1677
+ <li class="never" data-hits="" data-linenumber="106">
1678
+
1679
+
1680
+ <code class="ruby"> # with_precision(1111.2345, :precision =&gt; 2, :separator =&gt; &#39;,&#39;, :delimiter =&gt; &#39;.&#39;)</code>
1681
+ </li>
1682
+
1683
+ <li class="never" data-hits="" data-linenumber="107">
1684
+
1685
+
1686
+ <code class="ruby"> # # =&gt; 1.111,23</code>
1687
+ </li>
1688
+
1689
+ <li class="never" data-hits="" data-linenumber="108">
1690
+
1691
+
1692
+ <code class="ruby"> #</code>
1693
+ </li>
1694
+
1695
+ <li class="covered" data-hits="1" data-linenumber="109">
1696
+ <span class="hits">1</span>
1697
+
1698
+ <code class="ruby"> def with_precision(number, args)</code>
1699
+ </li>
1700
+
1701
+ <li class="covered" data-hits="11" data-linenumber="110">
1702
+ <span class="hits">11</span>
1703
+
1704
+ <code class="ruby"> options = BB::Hash.symbolize_keys(args)</code>
1705
+ </li>
1706
+
1707
+ <li class="never" data-hits="" data-linenumber="111">
1708
+
1709
+
1710
+ <code class="ruby"></code>
1711
+ </li>
1712
+
1713
+ <li class="covered" data-hits="11" data-linenumber="112">
1714
+ <span class="hits">11</span>
1715
+
1716
+ <code class="ruby"> precision ||= (options[:precision] || 3)</code>
1717
+ </li>
1718
+
1719
+ <li class="covered" data-hits="11" data-linenumber="113">
1720
+ <span class="hits">11</span>
1721
+
1722
+ <code class="ruby"> separator ||= (options[:separator] || &#39;.&#39;)</code>
1723
+ </li>
1724
+
1725
+ <li class="covered" data-hits="11" data-linenumber="114">
1726
+ <span class="hits">11</span>
1727
+
1728
+ <code class="ruby"> delimiter ||= (options[:delimiter] || &#39;&#39;)</code>
1729
+ </li>
1730
+
1731
+ <li class="never" data-hits="" data-linenumber="115">
1732
+
1733
+
1734
+ <code class="ruby"></code>
1735
+ </li>
1736
+
1737
+ <li class="covered" data-hits="11" data-linenumber="116">
1738
+ <span class="hits">11</span>
1739
+
1740
+ <code class="ruby"> begin</code>
1741
+ </li>
1742
+
1743
+ <li class="covered" data-hits="11" data-linenumber="117">
1744
+ <span class="hits">11</span>
1745
+
1746
+ <code class="ruby"> rounded_number = (Float(number) * (10 ** precision)).round.to_f / 10 ** precision</code>
1747
+ </li>
1748
+
1749
+ <li class="covered" data-hits="11" data-linenumber="118">
1750
+ <span class="hits">11</span>
1751
+
1752
+ <code class="ruby"> with_delimiter(&quot;%01.#{precision}f&quot; % rounded_number,</code>
1753
+ </li>
1754
+
1755
+ <li class="never" data-hits="" data-linenumber="119">
1756
+
1757
+
1758
+ <code class="ruby"> :separator =&gt; separator,</code>
1759
+ </li>
1760
+
1761
+ <li class="never" data-hits="" data-linenumber="120">
1762
+
1763
+
1764
+ <code class="ruby"> :delimiter =&gt; delimiter)</code>
1765
+ </li>
1766
+
1767
+ <li class="never" data-hits="" data-linenumber="121">
1768
+
1769
+
1770
+ <code class="ruby"> rescue</code>
1771
+ </li>
1772
+
1773
+ <li class="missed" data-hits="0" data-linenumber="122">
1774
+
1775
+
1776
+ <code class="ruby"> number</code>
1777
+ </li>
1778
+
1779
+ <li class="never" data-hits="" data-linenumber="123">
1780
+
1781
+
1782
+ <code class="ruby"> end</code>
1783
+ </li>
1784
+
1785
+ <li class="never" data-hits="" data-linenumber="124">
1786
+
1787
+
1788
+ <code class="ruby"> end</code>
1789
+ </li>
1790
+
1791
+ <li class="never" data-hits="" data-linenumber="125">
1792
+
1793
+
1794
+ <code class="ruby"></code>
1795
+ </li>
1796
+
1797
+ <li class="never" data-hits="" data-linenumber="126">
1798
+
1799
+
1800
+ <code class="ruby"> ##</code>
1801
+ </li>
1802
+
1803
+ <li class="never" data-hits="" data-linenumber="127">
1804
+
1805
+
1806
+ <code class="ruby"> # Formats a +number+ with grouped thousands using +delimiter+ (e.g., 12,324). You can</code>
1807
+ </li>
1808
+
1809
+ <li class="never" data-hits="" data-linenumber="128">
1810
+
1811
+
1812
+ <code class="ruby"> # customize the format in the +options+ hash.</code>
1813
+ </li>
1814
+
1815
+ <li class="never" data-hits="" data-linenumber="129">
1816
+
1817
+
1818
+ <code class="ruby"> #</code>
1819
+ </li>
1820
+
1821
+ <li class="never" data-hits="" data-linenumber="130">
1822
+
1823
+
1824
+ <code class="ruby"> # @overload with_delimiter(number, options={})</code>
1825
+ </li>
1826
+
1827
+ <li class="never" data-hits="" data-linenumber="131">
1828
+
1829
+
1830
+ <code class="ruby"> # @param [Fixnum, Float] number</code>
1831
+ </li>
1832
+
1833
+ <li class="never" data-hits="" data-linenumber="132">
1834
+
1835
+
1836
+ <code class="ruby"> # Number value to format.</code>
1837
+ </li>
1838
+
1839
+ <li class="never" data-hits="" data-linenumber="133">
1840
+
1841
+
1842
+ <code class="ruby"> # @param [Hash] options</code>
1843
+ </li>
1844
+
1845
+ <li class="never" data-hits="" data-linenumber="134">
1846
+
1847
+
1848
+ <code class="ruby"> # Options for formatter.</code>
1849
+ </li>
1850
+
1851
+ <li class="never" data-hits="" data-linenumber="135">
1852
+
1853
+
1854
+ <code class="ruby"> # @option options [String] :delimiter (&quot;, &quot;)</code>
1855
+ </li>
1856
+
1857
+ <li class="never" data-hits="" data-linenumber="136">
1858
+
1859
+
1860
+ <code class="ruby"> # Sets the thousands delimiter.</code>
1861
+ </li>
1862
+
1863
+ <li class="never" data-hits="" data-linenumber="137">
1864
+
1865
+
1866
+ <code class="ruby"> # @option options [String] :separator (&quot;.&quot;)</code>
1867
+ </li>
1868
+
1869
+ <li class="never" data-hits="" data-linenumber="138">
1870
+
1871
+
1872
+ <code class="ruby"> # Sets the separator between the units.</code>
1873
+ </li>
1874
+
1875
+ <li class="never" data-hits="" data-linenumber="139">
1876
+
1877
+
1878
+ <code class="ruby"> #</code>
1879
+ </li>
1880
+
1881
+ <li class="never" data-hits="" data-linenumber="140">
1882
+
1883
+
1884
+ <code class="ruby"> # @return [String] The formatted representation of the number.</code>
1885
+ </li>
1886
+
1887
+ <li class="never" data-hits="" data-linenumber="141">
1888
+
1889
+
1890
+ <code class="ruby"> #</code>
1891
+ </li>
1892
+
1893
+ <li class="never" data-hits="" data-linenumber="142">
1894
+
1895
+
1896
+ <code class="ruby"> # @example</code>
1897
+ </li>
1898
+
1899
+ <li class="never" data-hits="" data-linenumber="143">
1900
+
1901
+
1902
+ <code class="ruby"> # with_delimiter(12345678) # =&gt; 12,345,678</code>
1903
+ </li>
1904
+
1905
+ <li class="never" data-hits="" data-linenumber="144">
1906
+
1907
+
1908
+ <code class="ruby"> # with_delimiter(12345678.05) # =&gt; 12,345,678.05</code>
1909
+ </li>
1910
+
1911
+ <li class="never" data-hits="" data-linenumber="145">
1912
+
1913
+
1914
+ <code class="ruby"> # with_delimiter(12345678, :delimiter =&gt; &quot;.&quot;) # =&gt; 12.345.678</code>
1915
+ </li>
1916
+
1917
+ <li class="never" data-hits="" data-linenumber="146">
1918
+
1919
+
1920
+ <code class="ruby"> # with_delimiter(12345678, :separator =&gt; &quot;,&quot;) # =&gt; 12,345,678</code>
1921
+ </li>
1922
+
1923
+ <li class="never" data-hits="" data-linenumber="147">
1924
+
1925
+
1926
+ <code class="ruby"> # with_delimiter(98765432.98, :delimiter =&gt; &quot; &quot;, :separator =&gt; &quot;,&quot;)</code>
1927
+ </li>
1928
+
1929
+ <li class="never" data-hits="" data-linenumber="148">
1930
+
1931
+
1932
+ <code class="ruby"> # # =&gt; 98 765 432,98</code>
1933
+ </li>
1934
+
1935
+ <li class="never" data-hits="" data-linenumber="149">
1936
+
1937
+
1938
+ <code class="ruby"> #</code>
1939
+ </li>
1940
+
1941
+ <li class="covered" data-hits="1" data-linenumber="150">
1942
+ <span class="hits">1</span>
1943
+
1944
+ <code class="ruby"> def with_delimiter(number, args)</code>
1945
+ </li>
1946
+
1947
+ <li class="covered" data-hits="12" data-linenumber="151">
1948
+ <span class="hits">12</span>
1949
+
1950
+ <code class="ruby"> options = BB::Hash.symbolize_keys(args)</code>
1951
+ </li>
1952
+
1953
+ <li class="never" data-hits="" data-linenumber="152">
1954
+
1955
+
1956
+ <code class="ruby"></code>
1957
+ </li>
1958
+
1959
+ <li class="covered" data-hits="12" data-linenumber="153">
1960
+ <span class="hits">12</span>
1961
+
1962
+ <code class="ruby"> delimiter ||= (options[:delimiter] || &#39;.&#39;)</code>
1963
+ </li>
1964
+
1965
+ <li class="covered" data-hits="12" data-linenumber="154">
1966
+ <span class="hits">12</span>
1967
+
1968
+ <code class="ruby"> separator ||= (options[:separator] || &#39;,&#39;)</code>
1969
+ </li>
1970
+
1971
+ <li class="never" data-hits="" data-linenumber="155">
1972
+
1973
+
1974
+ <code class="ruby"></code>
1975
+ </li>
1976
+
1977
+ <li class="covered" data-hits="12" data-linenumber="156">
1978
+ <span class="hits">12</span>
1979
+
1980
+ <code class="ruby"> begin</code>
1981
+ </li>
1982
+
1983
+ <li class="covered" data-hits="12" data-linenumber="157">
1984
+ <span class="hits">12</span>
1985
+
1986
+ <code class="ruby"> parts = number.to_s.split(&#39;.&#39;)</code>
1987
+ </li>
1988
+
1989
+ <li class="covered" data-hits="12" data-linenumber="158">
1990
+ <span class="hits">12</span>
1991
+
1992
+ <code class="ruby"> parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, &quot;\\1#{delimiter}&quot;)</code>
1993
+ </li>
1994
+
1995
+ <li class="covered" data-hits="12" data-linenumber="159">
1996
+ <span class="hits">12</span>
1997
+
1998
+ <code class="ruby"> parts.join(separator)</code>
1999
+ </li>
2000
+
2001
+ <li class="never" data-hits="" data-linenumber="160">
2002
+
2003
+
2004
+ <code class="ruby"> rescue</code>
2005
+ </li>
2006
+
2007
+ <li class="missed" data-hits="0" data-linenumber="161">
2008
+
2009
+
2010
+ <code class="ruby"> number</code>
2011
+ </li>
2012
+
2013
+ <li class="never" data-hits="" data-linenumber="162">
2014
+
2015
+
2016
+ <code class="ruby"> end</code>
2017
+ </li>
2018
+
2019
+ <li class="never" data-hits="" data-linenumber="163">
2020
+
2021
+
2022
+ <code class="ruby"> end</code>
2023
+ </li>
2024
+
2025
+ <li class="never" data-hits="" data-linenumber="164">
2026
+
2027
+
2028
+ <code class="ruby"> end</code>
2029
+ </li>
2030
+
2031
+ <li class="never" data-hits="" data-linenumber="165">
2032
+
2033
+
2034
+ <code class="ruby"> end</code>
2035
+ </li>
2036
+
2037
+ <li class="never" data-hits="" data-linenumber="166">
2038
+
2039
+
2040
+ <code class="ruby">end</code>
2041
+ </li>
2042
+
2043
+ <li class="never" data-hits="" data-linenumber="167">
2044
+
2045
+
2046
+ <code class="ruby"></code>
2047
+ </li>
2048
+
2049
+ </ol>
2050
+ </pre>
2051
+ </div>
2052
+
1023
2053
  <div class="source_table" id="b75f047c409859a12a41002ece7dbd0d81dd859d">
1024
2054
  <div class="header">
1025
2055
  <h3>lib/blackbox/string.rb</h3>