blackbox 4.0.3 → 4.0.4
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 +5 -5
- data/.rubocop.yml +21 -0
- data/.ruby-version +1 -1
- data/Gemfile +1 -0
- data/Guardfile +1 -0
- data/Rakefile +1 -0
- data/blackbox.gemspec +11 -11
- data/coverage/.last_run.json +1 -1
- data/coverage/.resultset.json +15 -12
- data/coverage/index.html +578 -554
- data/lib/blackbox.rb +1 -0
- data/lib/blackbox/crypto.rb +3 -4
- data/lib/blackbox/gem.rb +2 -1
- data/lib/blackbox/hash.rb +1 -0
- data/lib/blackbox/number.rb +8 -7
- data/lib/blackbox/string.rb +1 -0
- data/lib/blackbox/unix.rb +5 -5
- data/lib/blackbox/version.rb +2 -1
- data/spec/blackbox_spec.rb +1 -0
- data/spec/crypto_spec.rb +14 -13
- data/spec/gem_spec.rb +1 -1
- data/spec/hash_spec.rb +1 -0
- data/spec/number_spec.rb +1 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/string_spec.rb +1 -0
- data/spec/unix_spec.rb +1 -0
- metadata +25 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a75dc7b8e492b44ce83849329fbecc8597a8cc49864518f0fbf171e18beddf99
|
4
|
+
data.tar.gz: 5f9974e1a560d5da0530bfbd78d62c5bf174e4a142c08431c897f1d5dba75196
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ba852fa447008259d28621ce7335aa3b4b35e3258ec78946a80b6d4a3cbf20035ce5eb029a2db46946d9887b96a58ddb5a32b8ecaf339db65d8f3143d165b6b
|
7
|
+
data.tar.gz: 4db2790a85ab902c9a608b8bac2517012a9c0758bbc849c5e739e9abde153397405c518954d3edf0f6602b965d224c82230ab1431c6bb3ad756cacb4b0477e17
|
data/.rubocop.yml
CHANGED
@@ -23,3 +23,24 @@ Style/FormatString:
|
|
23
23
|
Performance/RedundantMerge:
|
24
24
|
Exclude:
|
25
25
|
- 'lib/blackbox/gem.rb'
|
26
|
+
|
27
|
+
Metrics/BlockLength:
|
28
|
+
Max: 420
|
29
|
+
|
30
|
+
Naming/UncommunicativeMethodParamName:
|
31
|
+
Exclude:
|
32
|
+
- lib/blackbox/gem.rb
|
33
|
+
- lib/blackbox/crypto.rb
|
34
|
+
|
35
|
+
Performance/Caller:
|
36
|
+
Exclude:
|
37
|
+
- lib/blackbox/gem.rb
|
38
|
+
|
39
|
+
Style/NumericPredicate:
|
40
|
+
Exclude:
|
41
|
+
- lib/blackbox/crypto.rb
|
42
|
+
- lib/blackbox/unix.rb
|
43
|
+
|
44
|
+
Style/CommentedKeyword:
|
45
|
+
Exclude:
|
46
|
+
- lib/blackbox/crypto.rb
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.1
|
data/Gemfile
CHANGED
data/Guardfile
CHANGED
data/Rakefile
CHANGED
data/blackbox.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
2
1
|
# frozen_string_literal: true
|
3
|
-
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require 'blackbox/version'
|
6
6
|
|
@@ -20,21 +20,21 @@ Gem::Specification.new do |gem|
|
|
20
20
|
gem.require_paths = ['lib']
|
21
21
|
gem.required_ruby_version = '>= 2.3.0'
|
22
22
|
|
23
|
-
gem.add_development_dependency 'rake'
|
24
|
-
gem.add_development_dependency 'rspec'
|
25
|
-
gem.add_development_dependency 'simplecov'
|
26
|
-
gem.add_development_dependency 'redcarpet'
|
27
|
-
gem.add_development_dependency 'yard'
|
28
23
|
gem.add_development_dependency 'bump'
|
24
|
+
gem.add_development_dependency 'fuubar'
|
29
25
|
gem.add_development_dependency 'guard'
|
30
26
|
gem.add_development_dependency 'guard-rspec'
|
31
|
-
gem.add_development_dependency '
|
32
|
-
gem.add_development_dependency '
|
27
|
+
gem.add_development_dependency 'rake'
|
28
|
+
gem.add_development_dependency 'redcarpet'
|
29
|
+
gem.add_development_dependency 'rspec'
|
33
30
|
gem.add_development_dependency 'rubocop'
|
31
|
+
gem.add_development_dependency 'simplecov'
|
32
|
+
gem.add_development_dependency 'timecop'
|
33
|
+
gem.add_development_dependency 'yard'
|
34
34
|
|
35
|
+
gem.add_dependency 'chronic_duration', '~> 0.10.6'
|
35
36
|
gem.add_dependency 'gem_update_checker', '~> 0.2.0'
|
36
37
|
gem.add_dependency 'lolcat', '~> 90.8.8'
|
37
|
-
gem.add_dependency 'rainbow', '~>
|
38
|
-
gem.add_dependency 'chronic_duration', '~> 0.10.6'
|
38
|
+
gem.add_dependency 'rainbow', '~> 3.0.0'
|
39
39
|
gem.add_dependency 'versionomy', '~> 0.5.0'
|
40
40
|
end
|
data/coverage/.last_run.json
CHANGED
data/coverage/.resultset.json
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
"RSpec": {
|
3
3
|
"coverage": {
|
4
4
|
"/Users/moe/code/busyloop/blackbox/lib/blackbox/crypto.rb": [
|
5
|
+
null,
|
5
6
|
null,
|
6
7
|
1,
|
7
8
|
1,
|
@@ -132,19 +133,18 @@
|
|
132
133
|
3,
|
133
134
|
3,
|
134
135
|
3,
|
135
|
-
|
136
|
+
2,
|
136
137
|
null,
|
137
138
|
null,
|
138
139
|
null,
|
139
140
|
null,
|
140
|
-
2,
|
141
|
-
null,
|
142
141
|
null,
|
143
142
|
null,
|
144
143
|
null,
|
145
144
|
null
|
146
145
|
],
|
147
146
|
"/Users/moe/code/busyloop/blackbox/lib/blackbox/gem.rb": [
|
147
|
+
null,
|
148
148
|
null,
|
149
149
|
1,
|
150
150
|
1,
|
@@ -229,9 +229,9 @@
|
|
229
229
|
null,
|
230
230
|
null,
|
231
231
|
6,
|
232
|
-
|
232
|
+
6,
|
233
233
|
null,
|
234
|
-
|
234
|
+
0,
|
235
235
|
null,
|
236
236
|
null,
|
237
237
|
6,
|
@@ -241,6 +241,7 @@
|
|
241
241
|
null
|
242
242
|
],
|
243
243
|
"/Users/moe/code/busyloop/blackbox/lib/blackbox/hash.rb": [
|
244
|
+
null,
|
244
245
|
null,
|
245
246
|
1,
|
246
247
|
null,
|
@@ -292,6 +293,7 @@
|
|
292
293
|
null
|
293
294
|
],
|
294
295
|
"/Users/moe/code/busyloop/blackbox/lib/blackbox/number.rb": [
|
296
|
+
null,
|
295
297
|
null,
|
296
298
|
1,
|
297
299
|
null,
|
@@ -371,7 +373,7 @@
|
|
371
373
|
null,
|
372
374
|
10,
|
373
375
|
null,
|
374
|
-
|
376
|
+
1,
|
375
377
|
1,
|
376
378
|
null,
|
377
379
|
null,
|
@@ -421,7 +423,7 @@
|
|
421
423
|
12,
|
422
424
|
null,
|
423
425
|
null,
|
424
|
-
|
426
|
+
1,
|
425
427
|
1,
|
426
428
|
null,
|
427
429
|
null,
|
@@ -466,7 +468,7 @@
|
|
466
468
|
16,
|
467
469
|
16,
|
468
470
|
16,
|
469
|
-
|
471
|
+
1,
|
470
472
|
1,
|
471
473
|
null,
|
472
474
|
null,
|
@@ -475,6 +477,7 @@
|
|
475
477
|
null
|
476
478
|
],
|
477
479
|
"/Users/moe/code/busyloop/blackbox/lib/blackbox/string.rb": [
|
480
|
+
null,
|
478
481
|
null,
|
479
482
|
1,
|
480
483
|
null,
|
@@ -495,7 +498,7 @@
|
|
495
498
|
],
|
496
499
|
"/Users/moe/code/busyloop/blackbox/lib/blackbox/unix.rb": [
|
497
500
|
null,
|
498
|
-
|
501
|
+
null,
|
499
502
|
1,
|
500
503
|
1,
|
501
504
|
1,
|
@@ -540,7 +543,7 @@
|
|
540
543
|
0,
|
541
544
|
0,
|
542
545
|
0,
|
543
|
-
|
546
|
+
0,
|
544
547
|
0,
|
545
548
|
0,
|
546
549
|
0,
|
@@ -560,7 +563,7 @@
|
|
560
563
|
0,
|
561
564
|
null,
|
562
565
|
null,
|
563
|
-
|
566
|
+
null,
|
564
567
|
null,
|
565
568
|
0,
|
566
569
|
0,
|
@@ -609,6 +612,6 @@
|
|
609
612
|
null
|
610
613
|
]
|
611
614
|
},
|
612
|
-
"timestamp":
|
615
|
+
"timestamp": 1534561738
|
613
616
|
}
|
614
617
|
}
|
data/coverage/index.html
CHANGED
@@ -3,38 +3,38 @@
|
|
3
3
|
<head>
|
4
4
|
<title>Code coverage for Blackbox</title>
|
5
5
|
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
6
|
-
<script src='./assets/0.10.
|
7
|
-
<link href='./assets/0.10.
|
8
|
-
<link rel="shortcut icon" type="image/png" href="./assets/0.10.
|
9
|
-
<link rel="icon" type="image/png" href="./assets/0.10.
|
6
|
+
<script src='./assets/0.10.2/application.js' type='text/javascript'></script>
|
7
|
+
<link href='./assets/0.10.2/application.css' media='screen, projection, print' rel='stylesheet' type='text/css'>
|
8
|
+
<link rel="shortcut icon" type="image/png" href="./assets/0.10.2/favicon_yellow.png" />
|
9
|
+
<link rel="icon" type="image/png" href="./assets/0.10.2/favicon.png" />
|
10
10
|
</head>
|
11
11
|
|
12
12
|
<body>
|
13
13
|
<div id="loading">
|
14
|
-
<img src="./assets/0.10.
|
14
|
+
<img src="./assets/0.10.2/loading.gif" alt="loading"/>
|
15
15
|
</div>
|
16
16
|
<div id="wrapper" style="display:none;">
|
17
|
-
<div class="timestamp">Generated <abbr class="timeago" title="
|
17
|
+
<div class="timestamp">Generated <abbr class="timeago" title="2018-08-18T05:08:58+02:00">2018-08-18T05:08:58+02: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="yellow">82.
|
24
|
+
(<span class="covered_percent"><span class="yellow">82.22%</span></span>
|
25
25
|
covered at
|
26
26
|
<span class="covered_strength">
|
27
27
|
<span class="green">
|
28
|
-
38.
|
28
|
+
38.26
|
29
29
|
</span>
|
30
30
|
</span> hits/line)
|
31
31
|
</h2>
|
32
32
|
<a name="AllFiles"></a>
|
33
33
|
<div>
|
34
34
|
<b>6</b> files in total.
|
35
|
-
<b>
|
35
|
+
<b>225</b> relevant lines.
|
36
36
|
<span class="green"><b>185</b> lines covered</span> and
|
37
|
-
<span class="red"><b>
|
37
|
+
<span class="red"><b>40</b> lines missed </span>
|
38
38
|
</div>
|
39
39
|
<table class="file_list">
|
40
40
|
<thead>
|
@@ -53,27 +53,27 @@
|
|
53
53
|
<tr>
|
54
54
|
<td class="strong"><a href="#f65d5c5fcad29642ef7df71c31f708bfebe1c731" class="src_link" title="lib/blackbox/crypto.rb">lib/blackbox/crypto.rb</a></td>
|
55
55
|
<td class="green strong">100.0 %</td>
|
56
|
-
<td>
|
57
|
-
<td>
|
58
|
-
<td>
|
56
|
+
<td>140</td>
|
57
|
+
<td>47</td>
|
58
|
+
<td>47</td>
|
59
59
|
<td>0</td>
|
60
|
-
<td>
|
60
|
+
<td>160.1</td>
|
61
61
|
</tr>
|
62
62
|
|
63
63
|
<tr>
|
64
64
|
<td class="strong"><a href="#192e300fd7769b750c82567439ee016f85516f3d" class="src_link" title="lib/blackbox/gem.rb">lib/blackbox/gem.rb</a></td>
|
65
|
-
<td class="green strong">
|
66
|
-
<td>
|
67
|
-
<td>34</td>
|
65
|
+
<td class="green strong">97.06 %</td>
|
66
|
+
<td>95</td>
|
68
67
|
<td>34</td>
|
69
|
-
<td>
|
68
|
+
<td>33</td>
|
69
|
+
<td>1</td>
|
70
70
|
<td>8.1</td>
|
71
71
|
</tr>
|
72
72
|
|
73
73
|
<tr>
|
74
74
|
<td class="strong"><a href="#636c073a27c86cd147d7b0f717311b3b9eded478" class="src_link" title="lib/blackbox/hash.rb">lib/blackbox/hash.rb</a></td>
|
75
75
|
<td class="green strong">100.0 %</td>
|
76
|
-
<td>
|
76
|
+
<td>50</td>
|
77
77
|
<td>13</td>
|
78
78
|
<td>13</td>
|
79
79
|
<td>0</td>
|
@@ -83,17 +83,17 @@
|
|
83
83
|
<tr>
|
84
84
|
<td class="strong"><a href="#09e4da465507022615e91e2292a827cde0e5535c" class="src_link" title="lib/blackbox/number.rb">lib/blackbox/number.rb</a></td>
|
85
85
|
<td class="green strong">100.0 %</td>
|
86
|
-
<td>
|
87
|
-
<td>
|
88
|
-
<td>
|
86
|
+
<td>182</td>
|
87
|
+
<td>55</td>
|
88
|
+
<td>55</td>
|
89
89
|
<td>0</td>
|
90
|
-
<td>9.
|
90
|
+
<td>9.0</td>
|
91
91
|
</tr>
|
92
92
|
|
93
93
|
<tr>
|
94
94
|
<td class="strong"><a href="#1503164dbfa2b2b494fd2100a9b38b04be306a6e" class="src_link" title="lib/blackbox/string.rb">lib/blackbox/string.rb</a></td>
|
95
95
|
<td class="green strong">100.0 %</td>
|
96
|
-
<td>
|
96
|
+
<td>18</td>
|
97
97
|
<td>5</td>
|
98
98
|
<td>5</td>
|
99
99
|
<td>0</td>
|
@@ -102,10 +102,10 @@
|
|
102
102
|
|
103
103
|
<tr>
|
104
104
|
<td class="strong"><a href="#ef107940f0bb318164d36d5de1cd48192edb65f2" class="src_link" title="lib/blackbox/unix.rb">lib/blackbox/unix.rb</a></td>
|
105
|
-
<td class="red strong">45.
|
105
|
+
<td class="red strong">45.07 %</td>
|
106
106
|
<td>113</td>
|
107
|
-
<td>
|
108
|
-
<td>
|
107
|
+
<td>71</td>
|
108
|
+
<td>32</td>
|
109
109
|
<td>39</td>
|
110
110
|
<td>1.5</td>
|
111
111
|
</tr>
|
@@ -119,8 +119,8 @@
|
|
119
119
|
</div>
|
120
120
|
|
121
121
|
<div id="footer">
|
122
|
-
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.
|
123
|
-
and simplecov-html v0.10.
|
122
|
+
Generated by <a href="http://github.com/colszowka/simplecov">simplecov</a> v0.16.1
|
123
|
+
and simplecov-html v0.10.2<br/>
|
124
124
|
using RSpec
|
125
125
|
</div>
|
126
126
|
|
@@ -131,8 +131,8 @@
|
|
131
131
|
<h3>lib/blackbox/crypto.rb</h3>
|
132
132
|
<h4><span class="green">100.0 %</span> covered</h4>
|
133
133
|
<div>
|
134
|
-
<b>
|
135
|
-
<span class="green"><b>
|
134
|
+
<b>47</b> relevant lines.
|
135
|
+
<span class="green"><b>47</b> lines covered</span> and
|
136
136
|
<span class="red"><b>0</b> lines missed.</span>
|
137
137
|
</div>
|
138
138
|
</div>
|
@@ -146,841 +146,835 @@
|
|
146
146
|
<code class="ruby"># frozen_string_literal: true</code>
|
147
147
|
</li>
|
148
148
|
|
149
|
-
<li class="
|
149
|
+
<li class="never" data-hits="" data-linenumber="2">
|
150
|
+
|
151
|
+
|
152
|
+
<code class="ruby"></code>
|
153
|
+
</li>
|
154
|
+
|
155
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
150
156
|
<span class="hits">1</span>
|
151
157
|
|
152
158
|
<code class="ruby">require 'openssl'</code>
|
153
159
|
</li>
|
154
160
|
|
155
|
-
<li class="covered" data-hits="1" data-linenumber="
|
161
|
+
<li class="covered" data-hits="1" data-linenumber="4">
|
156
162
|
<span class="hits">1</span>
|
157
163
|
|
158
164
|
<code class="ruby">require 'base64'</code>
|
159
165
|
</li>
|
160
166
|
|
161
|
-
<li class="covered" data-hits="1" data-linenumber="
|
167
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
162
168
|
<span class="hits">1</span>
|
163
169
|
|
164
170
|
<code class="ruby">require 'chronic_duration'</code>
|
165
171
|
</li>
|
166
172
|
|
167
|
-
<li class="never" data-hits="" data-linenumber="
|
173
|
+
<li class="never" data-hits="" data-linenumber="6">
|
168
174
|
|
169
175
|
|
170
176
|
<code class="ruby"></code>
|
171
177
|
</li>
|
172
178
|
|
173
|
-
<li class="covered" data-hits="1" data-linenumber="
|
179
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
174
180
|
<span class="hits">1</span>
|
175
181
|
|
176
182
|
<code class="ruby">module BB</code>
|
177
183
|
</li>
|
178
184
|
|
179
|
-
<li class="never" data-hits="" data-linenumber="
|
185
|
+
<li class="never" data-hits="" data-linenumber="8">
|
180
186
|
|
181
187
|
|
182
188
|
<code class="ruby"> # Crypto utilities.</code>
|
183
189
|
</li>
|
184
190
|
|
185
|
-
<li class="covered" data-hits="1" data-linenumber="
|
191
|
+
<li class="covered" data-hits="1" data-linenumber="9">
|
186
192
|
<span class="hits">1</span>
|
187
193
|
|
188
194
|
<code class="ruby"> module Crypto</code>
|
189
195
|
</li>
|
190
196
|
|
191
|
-
<li class="covered" data-hits="1" data-linenumber="
|
197
|
+
<li class="covered" data-hits="1" data-linenumber="10">
|
192
198
|
<span class="hits">1</span>
|
193
199
|
|
194
200
|
<code class="ruby"> class << self</code>
|
195
201
|
</li>
|
196
202
|
|
197
|
-
<li class="never" data-hits="" data-linenumber="
|
203
|
+
<li class="never" data-hits="" data-linenumber="11">
|
198
204
|
|
199
205
|
|
200
206
|
<code class="ruby"> # Encrypt a String.</code>
|
201
207
|
</li>
|
202
208
|
|
203
|
-
<li class="never" data-hits="" data-linenumber="
|
209
|
+
<li class="never" data-hits="" data-linenumber="12">
|
204
210
|
|
205
211
|
|
206
212
|
<code class="ruby"> #</code>
|
207
213
|
</li>
|
208
214
|
|
209
|
-
<li class="never" data-hits="" data-linenumber="
|
215
|
+
<li class="never" data-hits="" data-linenumber="13">
|
210
216
|
|
211
217
|
|
212
218
|
<code class="ruby"> # @param [String] plaintext Input String (plaintext)</code>
|
213
219
|
</li>
|
214
220
|
|
215
|
-
<li class="never" data-hits="" data-linenumber="
|
221
|
+
<li class="never" data-hits="" data-linenumber="14">
|
216
222
|
|
217
223
|
|
218
224
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
219
225
|
</li>
|
220
226
|
|
221
|
-
<li class="never" data-hits="" data-linenumber="
|
227
|
+
<li class="never" data-hits="" data-linenumber="15">
|
222
228
|
|
223
229
|
|
224
230
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
225
231
|
</li>
|
226
232
|
|
227
|
-
<li class="never" data-hits="" data-linenumber="
|
233
|
+
<li class="never" data-hits="" data-linenumber="16">
|
228
234
|
|
229
235
|
|
230
236
|
<code class="ruby"> # @param [String] iv Initialization vector</code>
|
231
237
|
</li>
|
232
238
|
|
233
|
-
<li class="never" data-hits="" data-linenumber="
|
239
|
+
<li class="never" data-hits="" data-linenumber="17">
|
234
240
|
|
235
241
|
|
236
242
|
<code class="ruby"> # @return [String] When iv == nil: iv_length+iv+ciphertext</code>
|
237
243
|
</li>
|
238
244
|
|
239
|
-
<li class="never" data-hits="" data-linenumber="
|
245
|
+
<li class="never" data-hits="" data-linenumber="18">
|
240
246
|
|
241
247
|
|
242
248
|
<code class="ruby"> # @return [String] When iv != nil: ciphertext</code>
|
243
249
|
</li>
|
244
250
|
|
245
|
-
<li class="covered" data-hits="1" data-linenumber="
|
251
|
+
<li class="covered" data-hits="1" data-linenumber="19">
|
246
252
|
<span class="hits">1</span>
|
247
253
|
|
248
254
|
<code class="ruby"> def encrypt(plaintext, key, cipher_type = 'aes-256-cbc', iv = nil)</code>
|
249
255
|
</li>
|
250
256
|
|
251
|
-
<li class="covered" data-hits="702" data-linenumber="
|
257
|
+
<li class="covered" data-hits="702" data-linenumber="20">
|
252
258
|
<span class="hits">702</span>
|
253
259
|
|
254
260
|
<code class="ruby"> cipher = OpenSSL::Cipher.new(cipher_type)</code>
|
255
261
|
</li>
|
256
262
|
|
257
|
-
<li class="covered" data-hits="702" data-linenumber="
|
263
|
+
<li class="covered" data-hits="702" data-linenumber="21">
|
258
264
|
<span class="hits">702</span>
|
259
265
|
|
260
266
|
<code class="ruby"> cipher.encrypt</code>
|
261
267
|
</li>
|
262
268
|
|
263
|
-
<li class="covered" data-hits="702" data-linenumber="
|
269
|
+
<li class="covered" data-hits="702" data-linenumber="22">
|
264
270
|
<span class="hits">702</span>
|
265
271
|
|
266
272
|
<code class="ruby"> cipher.key = key</code>
|
267
273
|
</li>
|
268
274
|
|
269
|
-
<li class="covered" data-hits="700" data-linenumber="
|
275
|
+
<li class="covered" data-hits="700" data-linenumber="23">
|
270
276
|
<span class="hits">700</span>
|
271
277
|
|
272
278
|
<code class="ruby"> if iv.nil?</code>
|
273
279
|
</li>
|
274
280
|
|
275
|
-
<li class="covered" data-hits="430" data-linenumber="
|
281
|
+
<li class="covered" data-hits="430" data-linenumber="24">
|
276
282
|
<span class="hits">430</span>
|
277
283
|
|
278
284
|
<code class="ruby"> iv = cipher.random_iv</code>
|
279
285
|
</li>
|
280
286
|
|
281
|
-
<li class="covered" data-hits="430" data-linenumber="
|
287
|
+
<li class="covered" data-hits="430" data-linenumber="25">
|
282
288
|
<span class="hits">430</span>
|
283
289
|
|
284
290
|
<code class="ruby"> [iv.length].pack('C') + iv + cipher.update(plaintext) + cipher.final</code>
|
285
291
|
</li>
|
286
292
|
|
287
|
-
<li class="never" data-hits="" data-linenumber="
|
293
|
+
<li class="never" data-hits="" data-linenumber="26">
|
288
294
|
|
289
295
|
|
290
296
|
<code class="ruby"> else</code>
|
291
297
|
</li>
|
292
298
|
|
293
|
-
<li class="covered" data-hits="270" data-linenumber="
|
299
|
+
<li class="covered" data-hits="270" data-linenumber="27">
|
294
300
|
<span class="hits">270</span>
|
295
301
|
|
296
302
|
<code class="ruby"> cipher.iv = iv</code>
|
297
303
|
</li>
|
298
304
|
|
299
|
-
<li class="covered" data-hits="270" data-linenumber="
|
305
|
+
<li class="covered" data-hits="270" data-linenumber="28">
|
300
306
|
<span class="hits">270</span>
|
301
307
|
|
302
308
|
<code class="ruby"> cipher.update(plaintext) + cipher.final</code>
|
303
309
|
</li>
|
304
310
|
|
305
|
-
<li class="never" data-hits="" data-linenumber="
|
311
|
+
<li class="never" data-hits="" data-linenumber="29">
|
306
312
|
|
307
313
|
|
308
314
|
<code class="ruby"> end</code>
|
309
315
|
</li>
|
310
316
|
|
311
|
-
<li class="never" data-hits="" data-linenumber="
|
317
|
+
<li class="never" data-hits="" data-linenumber="30">
|
312
318
|
|
313
319
|
|
314
320
|
<code class="ruby"> end</code>
|
315
321
|
</li>
|
316
322
|
|
317
|
-
<li class="never" data-hits="" data-linenumber="
|
323
|
+
<li class="never" data-hits="" data-linenumber="31">
|
318
324
|
|
319
325
|
|
320
326
|
<code class="ruby"></code>
|
321
327
|
</li>
|
322
328
|
|
323
|
-
<li class="never" data-hits="" data-linenumber="
|
329
|
+
<li class="never" data-hits="" data-linenumber="32">
|
324
330
|
|
325
331
|
|
326
332
|
<code class="ruby"> # Decrypt a String.</code>
|
327
333
|
</li>
|
328
334
|
|
329
|
-
<li class="never" data-hits="" data-linenumber="
|
335
|
+
<li class="never" data-hits="" data-linenumber="33">
|
330
336
|
|
331
337
|
|
332
338
|
<code class="ruby"> #</code>
|
333
339
|
</li>
|
334
340
|
|
335
|
-
<li class="never" data-hits="" data-linenumber="
|
341
|
+
<li class="never" data-hits="" data-linenumber="34">
|
336
342
|
|
337
343
|
|
338
344
|
<code class="ruby"> # @param [String] ciphertext Input String (ciphertext)</code>
|
339
345
|
</li>
|
340
346
|
|
341
|
-
<li class="never" data-hits="" data-linenumber="
|
347
|
+
<li class="never" data-hits="" data-linenumber="35">
|
342
348
|
|
343
349
|
|
344
350
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
345
351
|
</li>
|
346
352
|
|
347
|
-
<li class="never" data-hits="" data-linenumber="
|
353
|
+
<li class="never" data-hits="" data-linenumber="36">
|
348
354
|
|
349
355
|
|
350
356
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
351
357
|
</li>
|
352
358
|
|
353
|
-
<li class="never" data-hits="" data-linenumber="
|
359
|
+
<li class="never" data-hits="" data-linenumber="37">
|
354
360
|
|
355
361
|
|
356
362
|
<code class="ruby"> # @param [String] iv Initialization vector</code>
|
357
363
|
</li>
|
358
364
|
|
359
|
-
<li class="never" data-hits="" data-linenumber="
|
365
|
+
<li class="never" data-hits="" data-linenumber="38">
|
360
366
|
|
361
367
|
|
362
368
|
<code class="ruby"> # @return [String] Plaintext</code>
|
363
369
|
</li>
|
364
370
|
|
365
|
-
<li class="covered" data-hits="1" data-linenumber="
|
371
|
+
<li class="covered" data-hits="1" data-linenumber="39">
|
366
372
|
<span class="hits">1</span>
|
367
373
|
|
368
374
|
<code class="ruby"> def decrypt(ciphertext, key, cipher_type = 'aes-256-cbc', iv = nil)</code>
|
369
375
|
</li>
|
370
376
|
|
371
|
-
<li class="covered" data-hits="372" data-linenumber="
|
377
|
+
<li class="covered" data-hits="372" data-linenumber="40">
|
372
378
|
<span class="hits">372</span>
|
373
379
|
|
374
380
|
<code class="ruby"> cipher = OpenSSL::Cipher.new(cipher_type)</code>
|
375
381
|
</li>
|
376
382
|
|
377
|
-
<li class="covered" data-hits="372" data-linenumber="
|
383
|
+
<li class="covered" data-hits="372" data-linenumber="41">
|
378
384
|
<span class="hits">372</span>
|
379
385
|
|
380
386
|
<code class="ruby"> cipher.decrypt</code>
|
381
387
|
</li>
|
382
388
|
|
383
|
-
<li class="covered" data-hits="372" data-linenumber="
|
389
|
+
<li class="covered" data-hits="372" data-linenumber="42">
|
384
390
|
<span class="hits">372</span>
|
385
391
|
|
386
392
|
<code class="ruby"> cipher.key = key</code>
|
387
393
|
</li>
|
388
394
|
|
389
|
-
<li class="covered" data-hits="372" data-linenumber="
|
395
|
+
<li class="covered" data-hits="372" data-linenumber="43">
|
390
396
|
<span class="hits">372</span>
|
391
397
|
|
392
398
|
<code class="ruby"> if iv.nil?</code>
|
393
399
|
</li>
|
394
400
|
|
395
|
-
<li class="covered" data-hits="282" data-linenumber="
|
401
|
+
<li class="covered" data-hits="282" data-linenumber="44">
|
396
402
|
<span class="hits">282</span>
|
397
403
|
|
398
404
|
<code class="ruby"> iv_len = ciphertext.slice!(0).unpack('C')[0]</code>
|
399
405
|
</li>
|
400
406
|
|
401
|
-
<li class="covered" data-hits="282" data-linenumber="
|
407
|
+
<li class="covered" data-hits="282" data-linenumber="45">
|
402
408
|
<span class="hits">282</span>
|
403
409
|
|
404
|
-
<code class="ruby"> cipher.iv = ciphertext.slice!(0..iv_len - 1) unless
|
410
|
+
<code class="ruby"> cipher.iv = ciphertext.slice!(0..iv_len - 1) unless iv_len == 0</code>
|
405
411
|
</li>
|
406
412
|
|
407
|
-
<li class="never" data-hits="" data-linenumber="
|
413
|
+
<li class="never" data-hits="" data-linenumber="46">
|
408
414
|
|
409
415
|
|
410
416
|
<code class="ruby"> else</code>
|
411
417
|
</li>
|
412
418
|
|
413
|
-
<li class="covered" data-hits="90" data-linenumber="
|
419
|
+
<li class="covered" data-hits="90" data-linenumber="47">
|
414
420
|
<span class="hits">90</span>
|
415
421
|
|
416
422
|
<code class="ruby"> cipher.iv = iv</code>
|
417
423
|
</li>
|
418
424
|
|
419
|
-
<li class="never" data-hits="" data-linenumber="
|
425
|
+
<li class="never" data-hits="" data-linenumber="48">
|
420
426
|
|
421
427
|
|
422
428
|
<code class="ruby"> end</code>
|
423
429
|
</li>
|
424
430
|
|
425
|
-
<li class="covered" data-hits="372" data-linenumber="
|
431
|
+
<li class="covered" data-hits="372" data-linenumber="49">
|
426
432
|
<span class="hits">372</span>
|
427
433
|
|
428
434
|
<code class="ruby"> cipher.update(ciphertext) + cipher.final</code>
|
429
435
|
</li>
|
430
436
|
|
431
|
-
<li class="never" data-hits="" data-linenumber="
|
437
|
+
<li class="never" data-hits="" data-linenumber="50">
|
432
438
|
|
433
439
|
|
434
440
|
<code class="ruby"> end</code>
|
435
441
|
</li>
|
436
442
|
|
437
|
-
<li class="never" data-hits="" data-linenumber="
|
443
|
+
<li class="never" data-hits="" data-linenumber="51">
|
438
444
|
|
439
445
|
|
440
446
|
<code class="ruby"></code>
|
441
447
|
</li>
|
442
448
|
|
443
|
-
<li class="never" data-hits="" data-linenumber="
|
449
|
+
<li class="never" data-hits="" data-linenumber="52">
|
444
450
|
|
445
451
|
|
446
452
|
<code class="ruby"> # Encrypt a String and encode the resulting ciphertext to Base64.</code>
|
447
453
|
</li>
|
448
454
|
|
449
|
-
<li class="never" data-hits="" data-linenumber="
|
455
|
+
<li class="never" data-hits="" data-linenumber="53">
|
450
456
|
|
451
457
|
|
452
458
|
<code class="ruby"> #</code>
|
453
459
|
</li>
|
454
460
|
|
455
|
-
<li class="never" data-hits="" data-linenumber="
|
461
|
+
<li class="never" data-hits="" data-linenumber="54">
|
456
462
|
|
457
463
|
|
458
464
|
<code class="ruby"> # @param [String] plaintext Input String (plaintext)</code>
|
459
465
|
</li>
|
460
466
|
|
461
|
-
<li class="never" data-hits="" data-linenumber="
|
467
|
+
<li class="never" data-hits="" data-linenumber="55">
|
462
468
|
|
463
469
|
|
464
470
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
465
471
|
</li>
|
466
472
|
|
467
|
-
<li class="never" data-hits="" data-linenumber="
|
473
|
+
<li class="never" data-hits="" data-linenumber="56">
|
468
474
|
|
469
475
|
|
470
476
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
471
477
|
</li>
|
472
478
|
|
473
|
-
<li class="never" data-hits="" data-linenumber="
|
479
|
+
<li class="never" data-hits="" data-linenumber="57">
|
474
480
|
|
475
481
|
|
476
482
|
<code class="ruby"> # @param [String] iv Initialization vector</code>
|
477
483
|
</li>
|
478
484
|
|
479
|
-
<li class="never" data-hits="" data-linenumber="
|
485
|
+
<li class="never" data-hits="" data-linenumber="58">
|
480
486
|
|
481
487
|
|
482
488
|
<code class="ruby"> # @return [String] When iv == nil: base64(iv_length+iv+ciphertext)</code>
|
483
489
|
</li>
|
484
490
|
|
485
|
-
<li class="never" data-hits="" data-linenumber="
|
491
|
+
<li class="never" data-hits="" data-linenumber="59">
|
486
492
|
|
487
493
|
|
488
494
|
<code class="ruby"> # @return [String] When iv != nil: base64(ciphertext)</code>
|
489
495
|
</li>
|
490
496
|
|
491
|
-
<li class="covered" data-hits="1" data-linenumber="
|
497
|
+
<li class="covered" data-hits="1" data-linenumber="60">
|
492
498
|
<span class="hits">1</span>
|
493
499
|
|
494
500
|
<code class="ruby"> def encrypt_base64(plaintext, key, cipher_type = 'aes-256-cbc', iv = nil)</code>
|
495
501
|
</li>
|
496
502
|
|
497
|
-
<li class="covered" data-hits="246" data-linenumber="
|
503
|
+
<li class="covered" data-hits="246" data-linenumber="61">
|
498
504
|
<span class="hits">246</span>
|
499
505
|
|
500
506
|
<code class="ruby"> Base64.strict_encode64(encrypt(plaintext, key, cipher_type, iv))</code>
|
501
507
|
</li>
|
502
508
|
|
503
|
-
<li class="never" data-hits="" data-linenumber="
|
509
|
+
<li class="never" data-hits="" data-linenumber="62">
|
504
510
|
|
505
511
|
|
506
512
|
<code class="ruby"> end</code>
|
507
513
|
</li>
|
508
514
|
|
509
|
-
<li class="never" data-hits="" data-linenumber="
|
515
|
+
<li class="never" data-hits="" data-linenumber="63">
|
510
516
|
|
511
517
|
|
512
518
|
<code class="ruby"></code>
|
513
519
|
</li>
|
514
520
|
|
515
|
-
<li class="never" data-hits="" data-linenumber="
|
521
|
+
<li class="never" data-hits="" data-linenumber="64">
|
516
522
|
|
517
523
|
|
518
524
|
<code class="ruby"> # Decode and Decrypt a Base64-String.</code>
|
519
525
|
</li>
|
520
526
|
|
521
|
-
<li class="never" data-hits="" data-linenumber="
|
527
|
+
<li class="never" data-hits="" data-linenumber="65">
|
522
528
|
|
523
529
|
|
524
530
|
<code class="ruby"> #</code>
|
525
531
|
</li>
|
526
532
|
|
527
|
-
<li class="never" data-hits="" data-linenumber="
|
533
|
+
<li class="never" data-hits="" data-linenumber="66">
|
528
534
|
|
529
535
|
|
530
536
|
<code class="ruby"> # @param [String] ciphertext Input String (base64(ciphertext))</code>
|
531
537
|
</li>
|
532
538
|
|
533
|
-
<li class="never" data-hits="" data-linenumber="
|
539
|
+
<li class="never" data-hits="" data-linenumber="67">
|
534
540
|
|
535
541
|
|
536
542
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
537
543
|
</li>
|
538
544
|
|
539
|
-
<li class="never" data-hits="" data-linenumber="
|
545
|
+
<li class="never" data-hits="" data-linenumber="68">
|
540
546
|
|
541
547
|
|
542
548
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
543
549
|
</li>
|
544
550
|
|
545
|
-
<li class="never" data-hits="" data-linenumber="
|
551
|
+
<li class="never" data-hits="" data-linenumber="69">
|
546
552
|
|
547
553
|
|
548
554
|
<code class="ruby"> # @param [String] iv Initialization vector</code>
|
549
555
|
</li>
|
550
556
|
|
551
|
-
<li class="never" data-hits="" data-linenumber="
|
557
|
+
<li class="never" data-hits="" data-linenumber="70">
|
552
558
|
|
553
559
|
|
554
560
|
<code class="ruby"> # @return [String] Plaintext</code>
|
555
561
|
</li>
|
556
562
|
|
557
|
-
<li class="covered" data-hits="1" data-linenumber="
|
563
|
+
<li class="covered" data-hits="1" data-linenumber="71">
|
558
564
|
<span class="hits">1</span>
|
559
565
|
|
560
566
|
<code class="ruby"> def decrypt_base64(ciphertext, key, cipher_type = 'aes-256-cbc', iv = nil)</code>
|
561
567
|
</li>
|
562
568
|
|
563
|
-
<li class="covered" data-hits="123" data-linenumber="
|
569
|
+
<li class="covered" data-hits="123" data-linenumber="72">
|
564
570
|
<span class="hits">123</span>
|
565
571
|
|
566
572
|
<code class="ruby"> decrypt(Base64.decode64(ciphertext), key, cipher_type, iv)</code>
|
567
573
|
</li>
|
568
574
|
|
569
|
-
<li class="never" data-hits="" data-linenumber="
|
575
|
+
<li class="never" data-hits="" data-linenumber="73">
|
570
576
|
|
571
577
|
|
572
578
|
<code class="ruby"> end</code>
|
573
579
|
</li>
|
574
580
|
|
575
|
-
<li class="never" data-hits="" data-linenumber="
|
581
|
+
<li class="never" data-hits="" data-linenumber="74">
|
576
582
|
|
577
583
|
|
578
584
|
<code class="ruby"></code>
|
579
585
|
</li>
|
580
586
|
|
581
|
-
<li class="never" data-hits="" data-linenumber="
|
587
|
+
<li class="never" data-hits="" data-linenumber="75">
|
582
588
|
|
583
589
|
|
584
590
|
<code class="ruby"> # Encrypt a String and encode the resulting ciphertext to urlsafe Base64.</code>
|
585
591
|
</li>
|
586
592
|
|
587
|
-
<li class="never" data-hits="" data-linenumber="
|
593
|
+
<li class="never" data-hits="" data-linenumber="76">
|
588
594
|
|
589
595
|
|
590
596
|
<code class="ruby"> #</code>
|
591
597
|
</li>
|
592
598
|
|
593
|
-
<li class="never" data-hits="" data-linenumber="
|
599
|
+
<li class="never" data-hits="" data-linenumber="77">
|
594
600
|
|
595
601
|
|
596
602
|
<code class="ruby"> # @param [String] plaintext Input String (plaintext)</code>
|
597
603
|
</li>
|
598
604
|
|
599
|
-
<li class="never" data-hits="" data-linenumber="
|
605
|
+
<li class="never" data-hits="" data-linenumber="78">
|
600
606
|
|
601
607
|
|
602
608
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
603
609
|
</li>
|
604
610
|
|
605
|
-
<li class="never" data-hits="" data-linenumber="
|
611
|
+
<li class="never" data-hits="" data-linenumber="79">
|
606
612
|
|
607
613
|
|
608
614
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
609
615
|
</li>
|
610
616
|
|
611
|
-
<li class="never" data-hits="" data-linenumber="
|
617
|
+
<li class="never" data-hits="" data-linenumber="80">
|
612
618
|
|
613
619
|
|
614
620
|
<code class="ruby"> # @param [String] iv Initialization vector</code>
|
615
621
|
</li>
|
616
622
|
|
617
|
-
<li class="never" data-hits="" data-linenumber="
|
623
|
+
<li class="never" data-hits="" data-linenumber="81">
|
618
624
|
|
619
625
|
|
620
626
|
<code class="ruby"> # @return [String] When iv == nil: urlsafe_base64(iv_length+iv+ciphertext)</code>
|
621
627
|
</li>
|
622
628
|
|
623
|
-
<li class="never" data-hits="" data-linenumber="
|
629
|
+
<li class="never" data-hits="" data-linenumber="82">
|
624
630
|
|
625
631
|
|
626
632
|
<code class="ruby"> # @return [String] When iv != nil: urlsafe_base64(ciphertext)</code>
|
627
633
|
</li>
|
628
634
|
|
629
|
-
<li class="covered" data-hits="1" data-linenumber="
|
635
|
+
<li class="covered" data-hits="1" data-linenumber="83">
|
630
636
|
<span class="hits">1</span>
|
631
637
|
|
632
638
|
<code class="ruby"> def encrypt_urlsafe_base64(plaintext, key, cipher_type = 'aes-256-cbc', iv = nil)</code>
|
633
639
|
</li>
|
634
640
|
|
635
|
-
<li class="covered" data-hits="251" data-linenumber="
|
641
|
+
<li class="covered" data-hits="251" data-linenumber="84">
|
636
642
|
<span class="hits">251</span>
|
637
643
|
|
638
644
|
<code class="ruby"> Base64.urlsafe_encode64(encrypt(plaintext, key, cipher_type, iv))</code>
|
639
645
|
</li>
|
640
646
|
|
641
|
-
<li class="never" data-hits="" data-linenumber="
|
647
|
+
<li class="never" data-hits="" data-linenumber="85">
|
642
648
|
|
643
649
|
|
644
650
|
<code class="ruby"> end</code>
|
645
651
|
</li>
|
646
652
|
|
647
|
-
<li class="never" data-hits="" data-linenumber="
|
653
|
+
<li class="never" data-hits="" data-linenumber="86">
|
648
654
|
|
649
655
|
|
650
656
|
<code class="ruby"></code>
|
651
657
|
</li>
|
652
658
|
|
653
|
-
<li class="never" data-hits="" data-linenumber="
|
659
|
+
<li class="never" data-hits="" data-linenumber="87">
|
654
660
|
|
655
661
|
|
656
662
|
<code class="ruby"> # Decode and Decrypt an urlsafe Base64-String.</code>
|
657
663
|
</li>
|
658
664
|
|
659
|
-
<li class="never" data-hits="" data-linenumber="
|
665
|
+
<li class="never" data-hits="" data-linenumber="88">
|
660
666
|
|
661
667
|
|
662
668
|
<code class="ruby"> #</code>
|
663
669
|
</li>
|
664
670
|
|
665
|
-
<li class="never" data-hits="" data-linenumber="
|
671
|
+
<li class="never" data-hits="" data-linenumber="89">
|
666
672
|
|
667
673
|
|
668
674
|
<code class="ruby"> # @param [String] ciphertext Input String (urlsafe_base64(ciphertext))</code>
|
669
675
|
</li>
|
670
676
|
|
671
|
-
<li class="never" data-hits="" data-linenumber="
|
677
|
+
<li class="never" data-hits="" data-linenumber="90">
|
672
678
|
|
673
679
|
|
674
680
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
675
681
|
</li>
|
676
682
|
|
677
|
-
<li class="never" data-hits="" data-linenumber="
|
683
|
+
<li class="never" data-hits="" data-linenumber="91">
|
678
684
|
|
679
685
|
|
680
686
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
681
687
|
</li>
|
682
688
|
|
683
|
-
<li class="never" data-hits="" data-linenumber="
|
689
|
+
<li class="never" data-hits="" data-linenumber="92">
|
684
690
|
|
685
691
|
|
686
692
|
<code class="ruby"> # @param [String] iv Initialization vector</code>
|
687
693
|
</li>
|
688
694
|
|
689
|
-
<li class="never" data-hits="" data-linenumber="
|
695
|
+
<li class="never" data-hits="" data-linenumber="93">
|
690
696
|
|
691
697
|
|
692
698
|
<code class="ruby"> # @return [String] Plaintext</code>
|
693
699
|
</li>
|
694
700
|
|
695
|
-
<li class="covered" data-hits="1" data-linenumber="
|
701
|
+
<li class="covered" data-hits="1" data-linenumber="94">
|
696
702
|
<span class="hits">1</span>
|
697
703
|
|
698
704
|
<code class="ruby"> def decrypt_urlsafe_base64(ciphertext, key, cipher_type = 'aes-256-cbc', iv = nil)</code>
|
699
705
|
</li>
|
700
706
|
|
701
|
-
<li class="covered" data-hits="126" data-linenumber="
|
707
|
+
<li class="covered" data-hits="126" data-linenumber="95">
|
702
708
|
<span class="hits">126</span>
|
703
709
|
|
704
710
|
<code class="ruby"> decrypt(Base64.urlsafe_decode64(ciphertext), key, cipher_type, iv)</code>
|
705
711
|
</li>
|
706
712
|
|
707
|
-
<li class="never" data-hits="" data-linenumber="
|
713
|
+
<li class="never" data-hits="" data-linenumber="96">
|
708
714
|
|
709
715
|
|
710
716
|
<code class="ruby"> end</code>
|
711
717
|
</li>
|
712
718
|
|
713
|
-
<li class="never" data-hits="" data-linenumber="
|
719
|
+
<li class="never" data-hits="" data-linenumber="97">
|
714
720
|
|
715
721
|
|
716
722
|
<code class="ruby"> end</code>
|
717
723
|
</li>
|
718
724
|
|
719
|
-
<li class="never" data-hits="" data-linenumber="
|
725
|
+
<li class="never" data-hits="" data-linenumber="98">
|
720
726
|
|
721
727
|
|
722
728
|
<code class="ruby"></code>
|
723
729
|
</li>
|
724
730
|
|
725
|
-
<li class="never" data-hits="" data-linenumber="
|
731
|
+
<li class="never" data-hits="" data-linenumber="99">
|
726
732
|
|
727
733
|
|
728
734
|
<code class="ruby"> # Secure Control Token.</code>
|
729
735
|
</li>
|
730
736
|
|
731
|
-
<li class="covered" data-hits="1" data-linenumber="
|
737
|
+
<li class="covered" data-hits="1" data-linenumber="100">
|
732
738
|
<span class="hits">1</span>
|
733
739
|
|
734
740
|
<code class="ruby"> class ControlToken</code>
|
735
741
|
</li>
|
736
742
|
|
737
|
-
<li class="covered" data-hits="1" data-linenumber="
|
743
|
+
<li class="covered" data-hits="1" data-linenumber="101">
|
738
744
|
<span class="hits">1</span>
|
739
745
|
|
740
746
|
<code class="ruby"> class << self</code>
|
741
747
|
</li>
|
742
748
|
|
743
|
-
<li class="never" data-hits="" data-linenumber="
|
749
|
+
<li class="never" data-hits="" data-linenumber="102">
|
744
750
|
|
745
751
|
|
746
752
|
<code class="ruby"> # Encode and encrypt an urlsafe ControlToken.</code>
|
747
753
|
</li>
|
748
754
|
|
749
|
-
<li class="never" data-hits="" data-linenumber="
|
755
|
+
<li class="never" data-hits="" data-linenumber="103">
|
750
756
|
|
751
757
|
|
752
758
|
<code class="ruby"> #</code>
|
753
759
|
</li>
|
754
760
|
|
755
|
-
<li class="never" data-hits="" data-linenumber="
|
761
|
+
<li class="never" data-hits="" data-linenumber="104">
|
756
762
|
|
757
763
|
|
758
764
|
<code class="ruby"> # @param [String] op Operation id</code>
|
759
765
|
</li>
|
760
766
|
|
761
|
-
<li class="never" data-hits="" data-linenumber="
|
767
|
+
<li class="never" data-hits="" data-linenumber="105">
|
762
768
|
|
763
769
|
|
764
770
|
<code class="ruby"> # @param [Array] args Arguments (Strings)</code>
|
765
771
|
</li>
|
766
772
|
|
767
|
-
<li class="never" data-hits="" data-linenumber="
|
773
|
+
<li class="never" data-hits="" data-linenumber="106">
|
768
774
|
|
769
775
|
|
770
776
|
<code class="ruby"> # @param [Fixnum] expire_in</code>
|
771
777
|
</li>
|
772
778
|
|
773
|
-
<li class="never" data-hits="" data-linenumber="
|
779
|
+
<li class="never" data-hits="" data-linenumber="107">
|
774
780
|
|
775
781
|
|
776
782
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
777
783
|
</li>
|
778
784
|
|
779
|
-
<li class="never" data-hits="" data-linenumber="
|
785
|
+
<li class="never" data-hits="" data-linenumber="108">
|
780
786
|
|
781
787
|
|
782
788
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
783
789
|
</li>
|
784
790
|
|
785
|
-
<li class="never" data-hits="" data-linenumber="
|
791
|
+
<li class="never" data-hits="" data-linenumber="109">
|
786
792
|
|
787
793
|
|
788
794
|
<code class="ruby"> # @return [String] ControlToken (urlsafe base64)</code>
|
789
795
|
</li>
|
790
796
|
|
791
|
-
<li class="covered" data-hits="1" data-linenumber="
|
797
|
+
<li class="covered" data-hits="1" data-linenumber="110">
|
792
798
|
<span class="hits">1</span>
|
793
799
|
|
794
800
|
<code class="ruby"> def create(op, args, expire_in = 900, key = ENV['CONTROLTOKEN_SECRET'], cipher_type = 'aes-256-cbc')</code>
|
795
801
|
</li>
|
796
802
|
|
797
|
-
<li class="covered" data-hits="6" data-linenumber="
|
803
|
+
<li class="covered" data-hits="6" data-linenumber="111">
|
798
804
|
<span class="hits">6</span>
|
799
805
|
|
800
806
|
<code class="ruby"> raise ArgumentError, 'key can not be blank' if key.nil? || key.empty?</code>
|
801
807
|
</li>
|
802
808
|
|
803
|
-
<li class="never" data-hits="" data-linenumber="
|
809
|
+
<li class="never" data-hits="" data-linenumber="112">
|
804
810
|
|
805
811
|
|
806
812
|
<code class="ruby"> # If you're reading this in the year 2038: Hi there! :-)</code>
|
807
813
|
</li>
|
808
814
|
|
809
|
-
<li class="covered" data-hits="5" data-linenumber="
|
815
|
+
<li class="covered" data-hits="5" data-linenumber="113">
|
810
816
|
<span class="hits">5</span>
|
811
817
|
|
812
818
|
<code class="ruby"> [Time.now.to_i + expire_in].pack('l<')</code>
|
813
819
|
</li>
|
814
820
|
|
815
|
-
<li class="covered" data-hits="5" data-linenumber="
|
821
|
+
<li class="covered" data-hits="5" data-linenumber="114">
|
816
822
|
<span class="hits">5</span>
|
817
823
|
|
818
824
|
<code class="ruby"> body = ([[Time.now.to_i + expire_in].pack('l<'), op] + args).join("\x00")</code>
|
819
825
|
</li>
|
820
826
|
|
821
|
-
<li class="covered" data-hits="5" data-linenumber="
|
827
|
+
<li class="covered" data-hits="5" data-linenumber="115">
|
822
828
|
<span class="hits">5</span>
|
823
829
|
|
824
830
|
<code class="ruby"> BB::Crypto.encrypt_urlsafe_base64(body, key, cipher_type)</code>
|
825
831
|
</li>
|
826
832
|
|
827
|
-
<li class="never" data-hits="" data-linenumber="
|
833
|
+
<li class="never" data-hits="" data-linenumber="116">
|
828
834
|
|
829
835
|
|
830
836
|
<code class="ruby"> end</code>
|
831
837
|
</li>
|
832
838
|
|
833
|
-
<li class="never" data-hits="" data-linenumber="
|
839
|
+
<li class="never" data-hits="" data-linenumber="117">
|
834
840
|
|
835
841
|
|
836
842
|
<code class="ruby"></code>
|
837
843
|
</li>
|
838
844
|
|
839
|
-
<li class="never" data-hits="" data-linenumber="
|
845
|
+
<li class="never" data-hits="" data-linenumber="118">
|
840
846
|
|
841
847
|
|
842
848
|
<code class="ruby"> # Decrypt and parse an urlsafe ControlToken.</code>
|
843
849
|
</li>
|
844
850
|
|
845
|
-
<li class="never" data-hits="" data-linenumber="
|
851
|
+
<li class="never" data-hits="" data-linenumber="119">
|
846
852
|
|
847
853
|
|
848
854
|
<code class="ruby"> #</code>
|
849
855
|
</li>
|
850
856
|
|
851
|
-
<li class="never" data-hits="" data-linenumber="
|
857
|
+
<li class="never" data-hits="" data-linenumber="120">
|
852
858
|
|
853
859
|
|
854
860
|
<code class="ruby"> # @param [String] token Input String (urlsafe base64)</code>
|
855
861
|
</li>
|
856
862
|
|
857
|
-
<li class="never" data-hits="" data-linenumber="
|
863
|
+
<li class="never" data-hits="" data-linenumber="121">
|
858
864
|
|
859
865
|
|
860
866
|
<code class="ruby"> # @param [String] key Encryption key</code>
|
861
867
|
</li>
|
862
868
|
|
863
|
-
<li class="never" data-hits="" data-linenumber="
|
869
|
+
<li class="never" data-hits="" data-linenumber="122">
|
864
870
|
|
865
871
|
|
866
872
|
<code class="ruby"> # @param [Boolean] force Decode expired token (suppress ArgumentError)</code>
|
867
873
|
</li>
|
868
874
|
|
869
|
-
<li class="never" data-hits="" data-linenumber="
|
875
|
+
<li class="never" data-hits="" data-linenumber="123">
|
870
876
|
|
871
877
|
|
872
878
|
<code class="ruby"> # @param [String] cipher_type OpenSSL cipher</code>
|
873
879
|
</li>
|
874
880
|
|
875
|
-
<li class="never" data-hits="" data-linenumber="
|
881
|
+
<li class="never" data-hits="" data-linenumber="124">
|
876
882
|
|
877
883
|
|
878
884
|
<code class="ruby"> # @return [Hash] Token payload</code>
|
879
885
|
</li>
|
880
886
|
|
881
|
-
<li class="covered" data-hits="1" data-linenumber="
|
887
|
+
<li class="covered" data-hits="1" data-linenumber="125">
|
882
888
|
<span class="hits">1</span>
|
883
889
|
|
884
890
|
<code class="ruby"> def parse(token, key = ENV['CONTROLTOKEN_SECRET'], force = false, cipher_type = 'aes-256-cbc')</code>
|
885
891
|
</li>
|
886
892
|
|
887
|
-
<li class="covered" data-hits="3" data-linenumber="
|
893
|
+
<li class="covered" data-hits="3" data-linenumber="126">
|
888
894
|
<span class="hits">3</span>
|
889
895
|
|
890
896
|
<code class="ruby"> raise ArgumentError, 'key can not be blank' if key.nil? || key.empty?</code>
|
891
897
|
</li>
|
892
898
|
|
893
|
-
<li class="covered" data-hits="3" data-linenumber="
|
899
|
+
<li class="covered" data-hits="3" data-linenumber="127">
|
894
900
|
<span class="hits">3</span>
|
895
901
|
|
896
902
|
<code class="ruby"> body = BB::Crypto.decrypt_urlsafe_base64(token, key, cipher_type)</code>
|
897
903
|
</li>
|
898
904
|
|
899
|
-
<li class="covered" data-hits="3" data-linenumber="
|
905
|
+
<li class="covered" data-hits="3" data-linenumber="128">
|
900
906
|
<span class="hits">3</span>
|
901
907
|
|
902
908
|
<code class="ruby"> valid_until, op, *args = body.split("\x00")</code>
|
903
909
|
</li>
|
904
910
|
|
905
|
-
<li class="covered" data-hits="3" data-linenumber="
|
911
|
+
<li class="covered" data-hits="3" data-linenumber="129">
|
906
912
|
<span class="hits">3</span>
|
907
913
|
|
908
914
|
<code class="ruby"> valid_until = valid_until.unpack('l<')[0]</code>
|
909
915
|
</li>
|
910
916
|
|
911
|
-
<li class="covered" data-hits="3" data-linenumber="
|
917
|
+
<li class="covered" data-hits="3" data-linenumber="130">
|
912
918
|
<span class="hits">3</span>
|
913
919
|
|
914
920
|
<code class="ruby"> expired = Time.now.to_i > valid_until</code>
|
915
921
|
</li>
|
916
922
|
|
917
|
-
<li class="covered" data-hits="3" data-linenumber="
|
923
|
+
<li class="covered" data-hits="3" data-linenumber="131">
|
918
924
|
<span class="hits">3</span>
|
919
925
|
|
920
|
-
<code class="ruby"> if expired && !force</code>
|
921
|
-
</li>
|
922
|
-
|
923
|
-
<li class="covered" data-hits="1" data-linenumber="131">
|
924
|
-
<span class="hits">1</span>
|
925
|
-
|
926
|
-
<code class="ruby"> raise ArgumentError, "Token expired at #{Time.at(valid_until)} (#{ChronicDuration.output(Time.now.to_i - valid_until)} ago)"</code>
|
926
|
+
<code class="ruby"> raise ArgumentError, "Token expired at #{Time.at(valid_until)} (#{ChronicDuration.output(Time.now.to_i - valid_until)} ago)" if expired && !force</code>
|
927
927
|
</li>
|
928
928
|
|
929
|
-
<li class="
|
930
|
-
|
929
|
+
<li class="covered" data-hits="2" data-linenumber="132">
|
930
|
+
<span class="hits">2</span>
|
931
931
|
|
932
|
-
<code class="ruby">
|
932
|
+
<code class="ruby"> { valid_until: valid_until,</code>
|
933
933
|
</li>
|
934
934
|
|
935
935
|
<li class="never" data-hits="" data-linenumber="133">
|
936
936
|
|
937
937
|
|
938
|
-
<code class="ruby">
|
938
|
+
<code class="ruby"> op: op,</code>
|
939
939
|
</li>
|
940
940
|
|
941
941
|
<li class="never" data-hits="" data-linenumber="134">
|
942
942
|
|
943
943
|
|
944
|
-
<code class="ruby">
|
944
|
+
<code class="ruby"> args: args,</code>
|
945
945
|
</li>
|
946
946
|
|
947
947
|
<li class="never" data-hits="" data-linenumber="135">
|
948
948
|
|
949
949
|
|
950
|
-
<code class="ruby"> args: args,</code>
|
951
|
-
</li>
|
952
|
-
|
953
|
-
<li class="covered" data-hits="2" data-linenumber="136">
|
954
|
-
<span class="hits">2</span>
|
955
|
-
|
956
950
|
<code class="ruby"> expired: expired }</code>
|
957
951
|
</li>
|
958
952
|
|
959
|
-
<li class="never" data-hits="" data-linenumber="
|
953
|
+
<li class="never" data-hits="" data-linenumber="136">
|
960
954
|
|
961
955
|
|
962
956
|
<code class="ruby"> end</code>
|
963
957
|
</li>
|
964
958
|
|
965
|
-
<li class="never" data-hits="" data-linenumber="
|
959
|
+
<li class="never" data-hits="" data-linenumber="137">
|
966
960
|
|
967
961
|
|
968
962
|
<code class="ruby"> end</code>
|
969
963
|
</li>
|
970
964
|
|
971
|
-
<li class="never" data-hits="" data-linenumber="
|
965
|
+
<li class="never" data-hits="" data-linenumber="138">
|
972
966
|
|
973
967
|
|
974
968
|
<code class="ruby"> end # /BB::Crypto::Token</code>
|
975
969
|
</li>
|
976
970
|
|
977
|
-
<li class="never" data-hits="" data-linenumber="
|
971
|
+
<li class="never" data-hits="" data-linenumber="139">
|
978
972
|
|
979
973
|
|
980
974
|
<code class="ruby"> end # /BB::Crypto</code>
|
981
975
|
</li>
|
982
976
|
|
983
|
-
<li class="never" data-hits="" data-linenumber="
|
977
|
+
<li class="never" data-hits="" data-linenumber="140">
|
984
978
|
|
985
979
|
|
986
980
|
<code class="ruby">end</code>
|
@@ -989,15 +983,16 @@
|
|
989
983
|
</ol>
|
990
984
|
</pre>
|
991
985
|
</div>
|
986
|
+
|
992
987
|
|
993
988
|
<div class="source_table" id="192e300fd7769b750c82567439ee016f85516f3d">
|
994
989
|
<div class="header">
|
995
990
|
<h3>lib/blackbox/gem.rb</h3>
|
996
|
-
<h4><span class="green">
|
991
|
+
<h4><span class="green">97.06 %</span> covered</h4>
|
997
992
|
<div>
|
998
993
|
<b>34</b> relevant lines.
|
999
|
-
<span class="green"><b>
|
1000
|
-
<span class="red"><b>
|
994
|
+
<span class="green"><b>33</b> lines covered</span> and
|
995
|
+
<span class="red"><b>1</b> lines missed.</span>
|
1001
996
|
</div>
|
1002
997
|
</div>
|
1003
998
|
|
@@ -1010,559 +1005,565 @@
|
|
1010
1005
|
<code class="ruby"># frozen_string_literal: true</code>
|
1011
1006
|
</li>
|
1012
1007
|
|
1013
|
-
<li class="
|
1014
|
-
<span class="hits">1</span>
|
1008
|
+
<li class="never" data-hits="" data-linenumber="2">
|
1015
1009
|
|
1016
|
-
|
1010
|
+
|
1011
|
+
<code class="ruby"></code>
|
1017
1012
|
</li>
|
1018
1013
|
|
1019
1014
|
<li class="covered" data-hits="1" data-linenumber="3">
|
1020
1015
|
<span class="hits">1</span>
|
1021
1016
|
|
1022
|
-
<code class="ruby">
|
1017
|
+
<code class="ruby">require 'versionomy'</code>
|
1023
1018
|
</li>
|
1024
1019
|
|
1025
|
-
<li class="
|
1020
|
+
<li class="covered" data-hits="1" data-linenumber="4">
|
1021
|
+
<span class="hits">1</span>
|
1022
|
+
|
1023
|
+
<code class="ruby">module BB</code>
|
1024
|
+
</li>
|
1025
|
+
|
1026
|
+
<li class="never" data-hits="" data-linenumber="5">
|
1026
1027
|
|
1027
1028
|
|
1028
1029
|
<code class="ruby"> # Gem utilities.</code>
|
1029
1030
|
</li>
|
1030
1031
|
|
1031
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1032
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
1032
1033
|
<span class="hits">1</span>
|
1033
1034
|
|
1034
1035
|
<code class="ruby"> module Gem</code>
|
1035
1036
|
</li>
|
1036
1037
|
|
1037
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1038
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
1038
1039
|
<span class="hits">1</span>
|
1039
1040
|
|
1040
1041
|
<code class="ruby"> class << self</code>
|
1041
1042
|
</li>
|
1042
1043
|
|
1043
|
-
<li class="never" data-hits="" data-linenumber="
|
1044
|
+
<li class="never" data-hits="" data-linenumber="8">
|
1044
1045
|
|
1045
1046
|
|
1046
1047
|
<code class="ruby"> # Return information about the currently installed gem</code>
|
1047
1048
|
</li>
|
1048
1049
|
|
1049
|
-
<li class="never" data-hits="" data-linenumber="
|
1050
|
+
<li class="never" data-hits="" data-linenumber="9">
|
1050
1051
|
|
1051
1052
|
|
1052
1053
|
<code class="ruby"> # version and the latest available version on rubygems.org.</code>
|
1053
1054
|
</li>
|
1054
1055
|
|
1055
|
-
<li class="never" data-hits="" data-linenumber="
|
1056
|
+
<li class="never" data-hits="" data-linenumber="10">
|
1056
1057
|
|
1057
1058
|
|
1058
1059
|
<code class="ruby"> #</code>
|
1059
1060
|
</li>
|
1060
1061
|
|
1061
|
-
<li class="never" data-hits="" data-linenumber="
|
1062
|
+
<li class="never" data-hits="" data-linenumber="11">
|
1062
1063
|
|
1063
1064
|
|
1064
1065
|
<code class="ruby"> # @param [Hash] opts the options to create a message with.</code>
|
1065
1066
|
</li>
|
1066
1067
|
|
1067
|
-
<li class="never" data-hits="" data-linenumber="
|
1068
|
+
<li class="never" data-hits="" data-linenumber="12">
|
1068
1069
|
|
1069
1070
|
|
1070
1071
|
<code class="ruby"> # @option opts [Fixnum] :check_interval how frequently to query rubygems.org (default: 3600)</code>
|
1071
1072
|
</li>
|
1072
1073
|
|
1073
|
-
<li class="never" data-hits="" data-linenumber="
|
1074
|
+
<li class="never" data-hits="" data-linenumber="13">
|
1074
1075
|
|
1075
1076
|
|
1076
1077
|
<code class="ruby"> # @option opts [String] :disabling_env_var (default: #{GEMNAME}_DISABLE_VERSION_CHECK)</code>
|
1077
1078
|
</li>
|
1078
1079
|
|
1079
|
-
<li class="never" data-hits="" data-linenumber="
|
1080
|
+
<li class="never" data-hits="" data-linenumber="14">
|
1080
1081
|
|
1081
1082
|
|
1082
1083
|
<code class="ruby"> # @option opts [] :from ('nobody') From address</code>
|
1083
1084
|
</li>
|
1084
1085
|
|
1085
|
-
<li class="never" data-hits="" data-linenumber="
|
1086
|
+
<li class="never" data-hits="" data-linenumber="15">
|
1086
1087
|
|
1087
1088
|
|
1088
1089
|
<code class="ruby"> # @return [Hash] result</code>
|
1089
1090
|
</li>
|
1090
1091
|
|
1091
|
-
<li class="never" data-hits="" data-linenumber="
|
1092
|
+
<li class="never" data-hits="" data-linenumber="16">
|
1092
1093
|
|
1093
1094
|
|
1094
1095
|
<code class="ruby"> # * :gem_name => name of current gem</code>
|
1095
1096
|
</li>
|
1096
1097
|
|
1097
|
-
<li class="never" data-hits="" data-linenumber="
|
1098
|
+
<li class="never" data-hits="" data-linenumber="17">
|
1098
1099
|
|
1099
1100
|
|
1100
1101
|
<code class="ruby"> # * :gem_installed_version => installed version</code>
|
1101
1102
|
</li>
|
1102
1103
|
|
1103
|
-
<li class="never" data-hits="" data-linenumber="
|
1104
|
+
<li class="never" data-hits="" data-linenumber="18">
|
1104
1105
|
|
1105
1106
|
|
1106
1107
|
<code class="ruby"> # * :gem_latest_version => latest version on rubygems.org</code>
|
1107
1108
|
</li>
|
1108
1109
|
|
1109
|
-
<li class="never" data-hits="" data-linenumber="
|
1110
|
+
<li class="never" data-hits="" data-linenumber="19">
|
1110
1111
|
|
1111
1112
|
|
1112
1113
|
<code class="ruby"> # * :last_checked_for_update => timestamp of last query to rubygems.org</code>
|
1113
1114
|
</li>
|
1114
1115
|
|
1115
|
-
<li class="never" data-hits="" data-linenumber="
|
1116
|
+
<li class="never" data-hits="" data-linenumber="20">
|
1116
1117
|
|
1117
1118
|
|
1118
1119
|
<code class="ruby"> # * :next_check_for_update => timestamp of next query to rubygems.org</code>
|
1119
1120
|
</li>
|
1120
1121
|
|
1121
|
-
<li class="never" data-hits="" data-linenumber="
|
1122
|
+
<li class="never" data-hits="" data-linenumber="21">
|
1122
1123
|
|
1123
1124
|
|
1124
1125
|
<code class="ruby"> # * :gem_update_available => update available?</code>
|
1125
1126
|
</li>
|
1126
1127
|
|
1127
|
-
<li class="never" data-hits="" data-linenumber="
|
1128
|
+
<li class="never" data-hits="" data-linenumber="22">
|
1128
1129
|
|
1129
1130
|
|
1130
1131
|
<code class="ruby"> # * :installed_is_latest => is installed version == latest available version?</code>
|
1131
1132
|
</li>
|
1132
1133
|
|
1133
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1134
|
+
<li class="covered" data-hits="1" data-linenumber="23">
|
1134
1135
|
<span class="hits">1</span>
|
1135
1136
|
|
1136
1137
|
<code class="ruby"> def version_info(*_, **opts)</code>
|
1137
1138
|
</li>
|
1138
1139
|
|
1139
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1140
|
+
<li class="covered" data-hits="8" data-linenumber="24">
|
1140
1141
|
<span class="hits">8</span>
|
1141
1142
|
|
1142
1143
|
<code class="ruby"> ret = {</code>
|
1143
1144
|
</li>
|
1144
1145
|
|
1145
|
-
<li class="never" data-hits="" data-linenumber="
|
1146
|
+
<li class="never" data-hits="" data-linenumber="25">
|
1146
1147
|
|
1147
1148
|
|
1148
1149
|
<code class="ruby"> gem_name: :unknown,</code>
|
1149
1150
|
</li>
|
1150
1151
|
|
1151
|
-
<li class="never" data-hits="" data-linenumber="
|
1152
|
+
<li class="never" data-hits="" data-linenumber="26">
|
1152
1153
|
|
1153
1154
|
|
1154
1155
|
<code class="ruby"> gem_installed_version: :unknown,</code>
|
1155
1156
|
</li>
|
1156
1157
|
|
1157
|
-
<li class="never" data-hits="" data-linenumber="
|
1158
|
+
<li class="never" data-hits="" data-linenumber="27">
|
1158
1159
|
|
1159
1160
|
|
1160
1161
|
<code class="ruby"> gem_latest_version: :unknown,</code>
|
1161
1162
|
</li>
|
1162
1163
|
|
1163
|
-
<li class="never" data-hits="" data-linenumber="
|
1164
|
+
<li class="never" data-hits="" data-linenumber="28">
|
1164
1165
|
|
1165
1166
|
|
1166
1167
|
<code class="ruby"> gem_update_available: false,</code>
|
1167
1168
|
</li>
|
1168
1169
|
|
1169
|
-
<li class="never" data-hits="" data-linenumber="
|
1170
|
+
<li class="never" data-hits="" data-linenumber="29">
|
1170
1171
|
|
1171
1172
|
|
1172
1173
|
<code class="ruby"> last_checked_for_update: :unknown,</code>
|
1173
1174
|
</li>
|
1174
1175
|
|
1175
|
-
<li class="never" data-hits="" data-linenumber="
|
1176
|
+
<li class="never" data-hits="" data-linenumber="30">
|
1176
1177
|
|
1177
1178
|
|
1178
1179
|
<code class="ruby"> next_check_for_update: :unknown,</code>
|
1179
1180
|
</li>
|
1180
1181
|
|
1181
|
-
<li class="never" data-hits="" data-linenumber="
|
1182
|
+
<li class="never" data-hits="" data-linenumber="31">
|
1182
1183
|
|
1183
1184
|
|
1184
1185
|
<code class="ruby"> installed_is_latest: true</code>
|
1185
1186
|
</li>
|
1186
1187
|
|
1187
|
-
<li class="never" data-hits="" data-linenumber="
|
1188
|
+
<li class="never" data-hits="" data-linenumber="32">
|
1188
1189
|
|
1189
1190
|
|
1190
1191
|
<code class="ruby"> }</code>
|
1191
1192
|
</li>
|
1192
1193
|
|
1193
|
-
<li class="never" data-hits="" data-linenumber="
|
1194
|
+
<li class="never" data-hits="" data-linenumber="33">
|
1194
1195
|
|
1195
1196
|
|
1196
1197
|
<code class="ruby"></code>
|
1197
1198
|
</li>
|
1198
1199
|
|
1199
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1200
|
+
<li class="covered" data-hits="8" data-linenumber="34">
|
1200
1201
|
<span class="hits">8</span>
|
1201
1202
|
|
1202
1203
|
<code class="ruby"> calling_file = caller[0].split(':')[0]</code>
|
1203
1204
|
</li>
|
1204
1205
|
|
1205
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1206
|
+
<li class="covered" data-hits="8" data-linenumber="35">
|
1206
1207
|
<span class="hits">8</span>
|
1207
1208
|
|
1208
1209
|
<code class="ruby"> spec = ::Gem::Specification.find do |s|</code>
|
1209
1210
|
</li>
|
1210
1211
|
|
1211
|
-
<li class="covered" data-hits="96" data-linenumber="
|
1212
|
+
<li class="covered" data-hits="96" data-linenumber="36">
|
1212
1213
|
<span class="hits">96</span>
|
1213
1214
|
|
1214
1215
|
<code class="ruby"> File.fnmatch(File.join(s.full_gem_path, '*'), calling_file)</code>
|
1215
1216
|
</li>
|
1216
1217
|
|
1217
|
-
<li class="never" data-hits="" data-linenumber="
|
1218
|
+
<li class="never" data-hits="" data-linenumber="37">
|
1218
1219
|
|
1219
1220
|
|
1220
1221
|
<code class="ruby"> end</code>
|
1221
1222
|
</li>
|
1222
1223
|
|
1223
|
-
<li class="never" data-hits="" data-linenumber="
|
1224
|
+
<li class="never" data-hits="" data-linenumber="38">
|
1224
1225
|
|
1225
1226
|
|
1226
1227
|
<code class="ruby"></code>
|
1227
1228
|
</li>
|
1228
1229
|
|
1229
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1230
|
+
<li class="covered" data-hits="8" data-linenumber="39">
|
1230
1231
|
<span class="hits">8</span>
|
1231
1232
|
|
1232
1233
|
<code class="ruby"> ret[:gem_installed_version] = spec&.version&.to_s || :unknown</code>
|
1233
1234
|
</li>
|
1234
1235
|
|
1235
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1236
|
+
<li class="covered" data-hits="8" data-linenumber="40">
|
1236
1237
|
<span class="hits">8</span>
|
1237
1238
|
|
1238
1239
|
<code class="ruby"> ret[:gem_name] = spec&.name || :unknown</code>
|
1239
1240
|
</li>
|
1240
1241
|
|
1241
|
-
<li class="never" data-hits="" data-linenumber="
|
1242
|
+
<li class="never" data-hits="" data-linenumber="41">
|
1242
1243
|
|
1243
1244
|
|
1244
1245
|
<code class="ruby"></code>
|
1245
1246
|
</li>
|
1246
1247
|
|
1247
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1248
|
+
<li class="covered" data-hits="8" data-linenumber="42">
|
1248
1249
|
<span class="hits">8</span>
|
1249
1250
|
|
1250
1251
|
<code class="ruby"> opts = { # defaults</code>
|
1251
1252
|
</li>
|
1252
1253
|
|
1253
|
-
<li class="never" data-hits="" data-linenumber="
|
1254
|
+
<li class="never" data-hits="" data-linenumber="43">
|
1254
1255
|
|
1255
1256
|
|
1256
1257
|
<code class="ruby"> check_interval: 3600,</code>
|
1257
1258
|
</li>
|
1258
1259
|
|
1259
|
-
<li class="never" data-hits="" data-linenumber="
|
1260
|
+
<li class="never" data-hits="" data-linenumber="44">
|
1260
1261
|
|
1261
1262
|
|
1262
1263
|
<code class="ruby"> disabling_env_var: "#{ret[:gem_name].upcase}_DISABLE_VERSION_CHECK"</code>
|
1263
1264
|
</li>
|
1264
1265
|
|
1265
|
-
<li class="never" data-hits="" data-linenumber="
|
1266
|
+
<li class="never" data-hits="" data-linenumber="45">
|
1266
1267
|
|
1267
1268
|
|
1268
1269
|
<code class="ruby"> }.merge(opts)</code>
|
1269
1270
|
</li>
|
1270
1271
|
|
1271
|
-
<li class="never" data-hits="" data-linenumber="
|
1272
|
+
<li class="never" data-hits="" data-linenumber="46">
|
1272
1273
|
|
1273
1274
|
|
1274
1275
|
<code class="ruby"></code>
|
1275
1276
|
</li>
|
1276
1277
|
|
1277
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1278
|
+
<li class="covered" data-hits="8" data-linenumber="47">
|
1278
1279
|
<span class="hits">8</span>
|
1279
1280
|
|
1280
1281
|
<code class="ruby"> return ret if ret[:gem_name] == :unknown</code>
|
1281
1282
|
</li>
|
1282
1283
|
|
1283
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1284
|
+
<li class="covered" data-hits="8" data-linenumber="48">
|
1284
1285
|
<span class="hits">8</span>
|
1285
1286
|
|
1286
1287
|
<code class="ruby"> return ret if ret[:gem_installed_version] == :unknown</code>
|
1287
1288
|
</li>
|
1288
1289
|
|
1289
|
-
<li class="covered" data-hits="8" data-linenumber="
|
1290
|
+
<li class="covered" data-hits="8" data-linenumber="49">
|
1290
1291
|
<span class="hits">8</span>
|
1291
1292
|
|
1292
1293
|
<code class="ruby"> if opts[:disabling_env_var] && ENV.include?(opts[:disabling_env_var])</code>
|
1293
1294
|
</li>
|
1294
1295
|
|
1295
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1296
|
+
<li class="covered" data-hits="1" data-linenumber="50">
|
1296
1297
|
<span class="hits">1</span>
|
1297
1298
|
|
1298
1299
|
<code class="ruby"> ret[:next_check_for_update] = :never</code>
|
1299
1300
|
</li>
|
1300
1301
|
|
1301
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1302
|
+
<li class="covered" data-hits="1" data-linenumber="51">
|
1302
1303
|
<span class="hits">1</span>
|
1303
1304
|
|
1304
1305
|
<code class="ruby"> return ret</code>
|
1305
1306
|
</li>
|
1306
1307
|
|
1307
|
-
<li class="never" data-hits="" data-linenumber="
|
1308
|
+
<li class="never" data-hits="" data-linenumber="52">
|
1308
1309
|
|
1309
1310
|
|
1310
1311
|
<code class="ruby"> end</code>
|
1311
1312
|
</li>
|
1312
1313
|
|
1313
|
-
<li class="never" data-hits="" data-linenumber="
|
1314
|
+
<li class="never" data-hits="" data-linenumber="53">
|
1314
1315
|
|
1315
1316
|
|
1316
1317
|
<code class="ruby"></code>
|
1317
1318
|
</li>
|
1318
1319
|
|
1319
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1320
|
+
<li class="covered" data-hits="7" data-linenumber="54">
|
1320
1321
|
<span class="hits">7</span>
|
1321
1322
|
|
1322
1323
|
<code class="ruby"> require 'gem_update_checker'</code>
|
1323
1324
|
</li>
|
1324
1325
|
|
1325
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1326
|
+
<li class="covered" data-hits="7" data-linenumber="55">
|
1326
1327
|
<span class="hits">7</span>
|
1327
1328
|
|
1328
1329
|
<code class="ruby"> require 'tmpdir'</code>
|
1329
1330
|
</li>
|
1330
1331
|
|
1331
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1332
|
+
<li class="covered" data-hits="7" data-linenumber="56">
|
1332
1333
|
<span class="hits">7</span>
|
1333
1334
|
|
1334
1335
|
<code class="ruby"> require 'fileutils'</code>
|
1335
1336
|
</li>
|
1336
1337
|
|
1337
|
-
<li class="never" data-hits="" data-linenumber="
|
1338
|
+
<li class="never" data-hits="" data-linenumber="57">
|
1338
1339
|
|
1339
1340
|
|
1340
1341
|
<code class="ruby"></code>
|
1341
1342
|
</li>
|
1342
1343
|
|
1343
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1344
|
+
<li class="covered" data-hits="7" data-linenumber="58">
|
1344
1345
|
<span class="hits">7</span>
|
1345
1346
|
|
1346
1347
|
<code class="ruby"> statefile_path = File.join(Dir.tmpdir, "#{ret[:gem_name]}-#{ret[:gem_installed_version]}.last_update_check")</code>
|
1347
1348
|
</li>
|
1348
1349
|
|
1349
|
-
<li class="never" data-hits="" data-linenumber="
|
1350
|
+
<li class="never" data-hits="" data-linenumber="59">
|
1350
1351
|
|
1351
1352
|
|
1352
1353
|
<code class="ruby"></code>
|
1353
1354
|
</li>
|
1354
1355
|
|
1355
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1356
|
+
<li class="covered" data-hits="7" data-linenumber="60">
|
1356
1357
|
<span class="hits">7</span>
|
1357
1358
|
|
1358
1359
|
<code class="ruby"> last_check_at = nil</code>
|
1359
1360
|
</li>
|
1360
1361
|
|
1361
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1362
|
+
<li class="covered" data-hits="7" data-linenumber="61">
|
1362
1363
|
<span class="hits">7</span>
|
1363
1364
|
|
1364
1365
|
<code class="ruby"> begin</code>
|
1365
1366
|
</li>
|
1366
1367
|
|
1367
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1368
|
+
<li class="covered" data-hits="7" data-linenumber="62">
|
1368
1369
|
<span class="hits">7</span>
|
1369
1370
|
|
1370
1371
|
<code class="ruby"> last_check_at = File.stat(statefile_path).mtime</code>
|
1371
1372
|
</li>
|
1372
1373
|
|
1373
|
-
<li class="never" data-hits="" data-linenumber="
|
1374
|
+
<li class="never" data-hits="" data-linenumber="63">
|
1374
1375
|
|
1375
1376
|
|
1376
|
-
<code class="ruby"> rescue</code>
|
1377
|
+
<code class="ruby"> rescue StandardError</code>
|
1377
1378
|
</li>
|
1378
1379
|
|
1379
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1380
|
+
<li class="covered" data-hits="1" data-linenumber="64">
|
1380
1381
|
<span class="hits">1</span>
|
1381
1382
|
|
1382
1383
|
<code class="ruby"> last_check_at = Time.at(0)</code>
|
1383
1384
|
</li>
|
1384
1385
|
|
1385
|
-
<li class="never" data-hits="" data-linenumber="
|
1386
|
+
<li class="never" data-hits="" data-linenumber="65">
|
1386
1387
|
|
1387
1388
|
|
1388
1389
|
<code class="ruby"> end</code>
|
1389
1390
|
</li>
|
1390
1391
|
|
1391
|
-
<li class="never" data-hits="" data-linenumber="
|
1392
|
+
<li class="never" data-hits="" data-linenumber="66">
|
1392
1393
|
|
1393
1394
|
|
1394
1395
|
<code class="ruby"></code>
|
1395
1396
|
</li>
|
1396
1397
|
|
1397
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1398
|
+
<li class="covered" data-hits="7" data-linenumber="67">
|
1398
1399
|
<span class="hits">7</span>
|
1399
1400
|
|
1400
1401
|
<code class="ruby"> ret.merge!(</code>
|
1401
1402
|
</li>
|
1402
1403
|
|
1403
|
-
<li class="never" data-hits="" data-linenumber="
|
1404
|
+
<li class="never" data-hits="" data-linenumber="68">
|
1404
1405
|
|
1405
1406
|
|
1406
1407
|
<code class="ruby"> last_checked_for_update: last_check_at,</code>
|
1407
1408
|
</li>
|
1408
1409
|
|
1409
|
-
<li class="never" data-hits="" data-linenumber="
|
1410
|
+
<li class="never" data-hits="" data-linenumber="69">
|
1410
1411
|
|
1411
1412
|
|
1412
1413
|
<code class="ruby"> next_check_for_update: last_check_at + opts[:check_interval]</code>
|
1413
1414
|
</li>
|
1414
1415
|
|
1415
|
-
<li class="never" data-hits="" data-linenumber="
|
1416
|
+
<li class="never" data-hits="" data-linenumber="70">
|
1416
1417
|
|
1417
1418
|
|
1418
1419
|
<code class="ruby"> )</code>
|
1419
1420
|
</li>
|
1420
1421
|
|
1421
|
-
<li class="never" data-hits="" data-linenumber="
|
1422
|
+
<li class="never" data-hits="" data-linenumber="71">
|
1422
1423
|
|
1423
1424
|
|
1424
1425
|
<code class="ruby"></code>
|
1425
1426
|
</li>
|
1426
1427
|
|
1427
|
-
<li class="covered" data-hits="7" data-linenumber="
|
1428
|
+
<li class="covered" data-hits="7" data-linenumber="72">
|
1428
1429
|
<span class="hits">7</span>
|
1429
1430
|
|
1430
1431
|
<code class="ruby"> return ret if last_check_at + opts[:check_interval] > Time.now && !opts[:force_check]</code>
|
1431
1432
|
</li>
|
1432
1433
|
|
1433
|
-
<li class="never" data-hits="" data-linenumber="
|
1434
|
+
<li class="never" data-hits="" data-linenumber="73">
|
1434
1435
|
|
1435
1436
|
|
1436
1437
|
<code class="ruby"></code>
|
1437
1438
|
</li>
|
1438
1439
|
|
1439
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1440
|
+
<li class="covered" data-hits="6" data-linenumber="74">
|
1440
1441
|
<span class="hits">6</span>
|
1441
1442
|
|
1442
1443
|
<code class="ruby"> checker = GemUpdateChecker::Client.new(ret[:gem_name], ret[:gem_installed_version])</code>
|
1443
1444
|
</li>
|
1444
1445
|
|
1445
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1446
|
+
<li class="covered" data-hits="6" data-linenumber="75">
|
1446
1447
|
<span class="hits">6</span>
|
1447
1448
|
|
1448
1449
|
<code class="ruby"> last_check_at = Time.now</code>
|
1449
1450
|
</li>
|
1450
1451
|
|
1451
|
-
<li class="never" data-hits="" data-linenumber="
|
1452
|
+
<li class="never" data-hits="" data-linenumber="76">
|
1452
1453
|
|
1453
1454
|
|
1454
1455
|
<code class="ruby"></code>
|
1455
1456
|
</li>
|
1456
1457
|
|
1457
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1458
|
+
<li class="covered" data-hits="6" data-linenumber="77">
|
1458
1459
|
<span class="hits">6</span>
|
1459
1460
|
|
1460
1461
|
<code class="ruby"> ret.merge!(</code>
|
1461
1462
|
</li>
|
1462
1463
|
|
1463
|
-
<li class="never" data-hits="" data-linenumber="
|
1464
|
+
<li class="never" data-hits="" data-linenumber="78">
|
1464
1465
|
|
1465
1466
|
|
1466
1467
|
<code class="ruby"> gem_latest_version: checker.latest_version,</code>
|
1467
1468
|
</li>
|
1468
1469
|
|
1469
|
-
<li class="never" data-hits="" data-linenumber="
|
1470
|
+
<li class="never" data-hits="" data-linenumber="79">
|
1470
1471
|
|
1471
1472
|
|
1472
1473
|
<code class="ruby"> last_checked_for_update: last_check_at,</code>
|
1473
1474
|
</li>
|
1474
1475
|
|
1475
|
-
<li class="never" data-hits="" data-linenumber="
|
1476
|
+
<li class="never" data-hits="" data-linenumber="80">
|
1476
1477
|
|
1477
1478
|
|
1478
1479
|
<code class="ruby"> next_check_for_update: last_check_at + opts[:check_interval],</code>
|
1479
1480
|
</li>
|
1480
1481
|
|
1481
|
-
<li class="never" data-hits="" data-linenumber="
|
1482
|
+
<li class="never" data-hits="" data-linenumber="81">
|
1482
1483
|
|
1483
1484
|
|
1484
1485
|
<code class="ruby"> installed_is_latest: ret[:gem_installed_version] == checker.latest_version,</code>
|
1485
1486
|
</li>
|
1486
1487
|
|
1487
|
-
<li class="never" data-hits="" data-linenumber="
|
1488
|
+
<li class="never" data-hits="" data-linenumber="82">
|
1488
1489
|
|
1489
1490
|
|
1490
1491
|
<code class="ruby"> gem_update_available: Versionomy.parse(ret[:gem_installed_version]) < Versionomy.parse(checker.latest_version)</code>
|
1491
1492
|
</li>
|
1492
1493
|
|
1493
|
-
<li class="never" data-hits="" data-linenumber="
|
1494
|
+
<li class="never" data-hits="" data-linenumber="83">
|
1494
1495
|
|
1495
1496
|
|
1496
1497
|
<code class="ruby"> )</code>
|
1497
1498
|
</li>
|
1498
1499
|
|
1499
|
-
<li class="never" data-hits="" data-linenumber="
|
1500
|
+
<li class="never" data-hits="" data-linenumber="84">
|
1500
1501
|
|
1501
1502
|
|
1502
1503
|
<code class="ruby"></code>
|
1503
1504
|
</li>
|
1504
1505
|
|
1505
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1506
|
+
<li class="covered" data-hits="6" data-linenumber="85">
|
1506
1507
|
<span class="hits">6</span>
|
1507
1508
|
|
1508
1509
|
<code class="ruby"> if ret[:installed_is_latest] || opts[:force_check]</code>
|
1509
1510
|
</li>
|
1510
1511
|
|
1511
|
-
<li class="covered" data-hits="
|
1512
|
-
<span class="hits">
|
1512
|
+
<li class="covered" data-hits="6" data-linenumber="86">
|
1513
|
+
<span class="hits">6</span>
|
1513
1514
|
|
1514
1515
|
<code class="ruby"> FileUtils.touch(statefile_path, mtime: Time.now)</code>
|
1515
1516
|
</li>
|
1516
1517
|
|
1517
|
-
<li class="never" data-hits="" data-linenumber="
|
1518
|
+
<li class="never" data-hits="" data-linenumber="87">
|
1518
1519
|
|
1519
1520
|
|
1520
1521
|
<code class="ruby"> else</code>
|
1521
1522
|
</li>
|
1522
1523
|
|
1523
|
-
<li class="
|
1524
|
-
|
1524
|
+
<li class="missed" data-hits="0" data-linenumber="88">
|
1525
|
+
|
1525
1526
|
|
1526
1527
|
<code class="ruby"> ret[:next_check_for_update] = Time.now</code>
|
1527
1528
|
</li>
|
1528
1529
|
|
1529
|
-
<li class="never" data-hits="" data-linenumber="
|
1530
|
+
<li class="never" data-hits="" data-linenumber="89">
|
1530
1531
|
|
1531
1532
|
|
1532
1533
|
<code class="ruby"> end</code>
|
1533
1534
|
</li>
|
1534
1535
|
|
1535
|
-
<li class="never" data-hits="" data-linenumber="
|
1536
|
+
<li class="never" data-hits="" data-linenumber="90">
|
1536
1537
|
|
1537
1538
|
|
1538
1539
|
<code class="ruby"></code>
|
1539
1540
|
</li>
|
1540
1541
|
|
1541
|
-
<li class="covered" data-hits="6" data-linenumber="
|
1542
|
+
<li class="covered" data-hits="6" data-linenumber="91">
|
1542
1543
|
<span class="hits">6</span>
|
1543
1544
|
|
1544
1545
|
<code class="ruby"> ret</code>
|
1545
1546
|
</li>
|
1546
1547
|
|
1547
|
-
<li class="never" data-hits="" data-linenumber="
|
1548
|
+
<li class="never" data-hits="" data-linenumber="92">
|
1548
1549
|
|
1549
1550
|
|
1550
1551
|
<code class="ruby"> end</code>
|
1551
1552
|
</li>
|
1552
1553
|
|
1553
|
-
<li class="never" data-hits="" data-linenumber="
|
1554
|
+
<li class="never" data-hits="" data-linenumber="93">
|
1554
1555
|
|
1555
1556
|
|
1556
1557
|
<code class="ruby"> end</code>
|
1557
1558
|
</li>
|
1558
1559
|
|
1559
|
-
<li class="never" data-hits="" data-linenumber="
|
1560
|
+
<li class="never" data-hits="" data-linenumber="94">
|
1560
1561
|
|
1561
1562
|
|
1562
1563
|
<code class="ruby"> end</code>
|
1563
1564
|
</li>
|
1564
1565
|
|
1565
|
-
<li class="never" data-hits="" data-linenumber="
|
1566
|
+
<li class="never" data-hits="" data-linenumber="95">
|
1566
1567
|
|
1567
1568
|
|
1568
1569
|
<code class="ruby">end</code>
|
@@ -1571,6 +1572,7 @@
|
|
1571
1572
|
</ol>
|
1572
1573
|
</pre>
|
1573
1574
|
</div>
|
1575
|
+
|
1574
1576
|
|
1575
1577
|
<div class="source_table" id="636c073a27c86cd147d7b0f717311b3b9eded478">
|
1576
1578
|
<div class="header">
|
@@ -1592,289 +1594,295 @@
|
|
1592
1594
|
<code class="ruby"># frozen_string_literal: true</code>
|
1593
1595
|
</li>
|
1594
1596
|
|
1595
|
-
<li class="
|
1597
|
+
<li class="never" data-hits="" data-linenumber="2">
|
1598
|
+
|
1599
|
+
|
1600
|
+
<code class="ruby"></code>
|
1601
|
+
</li>
|
1602
|
+
|
1603
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
1596
1604
|
<span class="hits">1</span>
|
1597
1605
|
|
1598
1606
|
<code class="ruby">module BB</code>
|
1599
1607
|
</li>
|
1600
1608
|
|
1601
|
-
<li class="never" data-hits="" data-linenumber="
|
1609
|
+
<li class="never" data-hits="" data-linenumber="4">
|
1602
1610
|
|
1603
1611
|
|
1604
1612
|
<code class="ruby"> # Hash utilities.</code>
|
1605
1613
|
</li>
|
1606
1614
|
|
1607
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1615
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
1608
1616
|
<span class="hits">1</span>
|
1609
1617
|
|
1610
1618
|
<code class="ruby"> module Hash</code>
|
1611
1619
|
</li>
|
1612
1620
|
|
1613
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1621
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
1614
1622
|
<span class="hits">1</span>
|
1615
1623
|
|
1616
1624
|
<code class="ruby"> class << self</code>
|
1617
1625
|
</li>
|
1618
1626
|
|
1619
|
-
<li class="never" data-hits="" data-linenumber="
|
1627
|
+
<li class="never" data-hits="" data-linenumber="7">
|
1620
1628
|
|
1621
1629
|
|
1622
1630
|
<code class="ruby"> # Symbolize all top level keys.</code>
|
1623
1631
|
</li>
|
1624
1632
|
|
1625
|
-
<li class="never" data-hits="" data-linenumber="
|
1633
|
+
<li class="never" data-hits="" data-linenumber="8">
|
1626
1634
|
|
1627
1635
|
|
1628
1636
|
<code class="ruby"> #</code>
|
1629
1637
|
</li>
|
1630
1638
|
|
1631
|
-
<li class="never" data-hits="" data-linenumber="
|
1639
|
+
<li class="never" data-hits="" data-linenumber="9">
|
1632
1640
|
|
1633
1641
|
|
1634
1642
|
<code class="ruby"> # @param [Hash] hash Input hash</code>
|
1635
1643
|
</li>
|
1636
1644
|
|
1637
|
-
<li class="never" data-hits="" data-linenumber="
|
1645
|
+
<li class="never" data-hits="" data-linenumber="10">
|
1638
1646
|
|
1639
1647
|
|
1640
1648
|
<code class="ruby"> # @return [Hash] Output hash (with symbolized keys)</code>
|
1641
1649
|
</li>
|
1642
1650
|
|
1643
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1651
|
+
<li class="covered" data-hits="1" data-linenumber="11">
|
1644
1652
|
<span class="hits">1</span>
|
1645
1653
|
|
1646
1654
|
<code class="ruby"> def symbolize_keys(hash)</code>
|
1647
1655
|
</li>
|
1648
1656
|
|
1649
|
-
<li class="covered" data-hits="112" data-linenumber="
|
1657
|
+
<li class="covered" data-hits="112" data-linenumber="12">
|
1650
1658
|
<span class="hits">112</span>
|
1651
1659
|
|
1652
1660
|
<code class="ruby"> hash.each_with_object({}) { |(k, v), h| h[k.to_sym] = v }</code>
|
1653
1661
|
</li>
|
1654
1662
|
|
1655
|
-
<li class="never" data-hits="" data-linenumber="
|
1663
|
+
<li class="never" data-hits="" data-linenumber="13">
|
1656
1664
|
|
1657
1665
|
|
1658
1666
|
<code class="ruby"> end</code>
|
1659
1667
|
</li>
|
1660
1668
|
|
1661
|
-
<li class="never" data-hits="" data-linenumber="
|
1669
|
+
<li class="never" data-hits="" data-linenumber="14">
|
1662
1670
|
|
1663
1671
|
|
1664
1672
|
<code class="ruby"></code>
|
1665
1673
|
</li>
|
1666
1674
|
|
1667
|
-
<li class="never" data-hits="" data-linenumber="
|
1675
|
+
<li class="never" data-hits="" data-linenumber="15">
|
1668
1676
|
|
1669
1677
|
|
1670
1678
|
<code class="ruby"> # Recursively flatten a hash to property-style format.</code>
|
1671
1679
|
</li>
|
1672
1680
|
|
1673
|
-
<li class="never" data-hits="" data-linenumber="
|
1681
|
+
<li class="never" data-hits="" data-linenumber="16">
|
1674
1682
|
|
1675
1683
|
|
1676
1684
|
<code class="ruby"> # This is a lossy conversion and should only be used for display-purposes.</code>
|
1677
1685
|
</li>
|
1678
1686
|
|
1679
|
-
<li class="never" data-hits="" data-linenumber="
|
1687
|
+
<li class="never" data-hits="" data-linenumber="17">
|
1680
1688
|
|
1681
1689
|
|
1682
1690
|
<code class="ruby"> #</code>
|
1683
1691
|
</li>
|
1684
1692
|
|
1685
|
-
<li class="never" data-hits="" data-linenumber="
|
1693
|
+
<li class="never" data-hits="" data-linenumber="18">
|
1686
1694
|
|
1687
1695
|
|
1688
1696
|
<code class="ruby"> # @example</code>
|
1689
1697
|
</li>
|
1690
1698
|
|
1691
|
-
<li class="never" data-hits="" data-linenumber="
|
1699
|
+
<li class="never" data-hits="" data-linenumber="19">
|
1692
1700
|
|
1693
1701
|
|
1694
1702
|
<code class="ruby"> # input = { :a => { :b => :c } }</code>
|
1695
1703
|
</li>
|
1696
1704
|
|
1697
|
-
<li class="never" data-hits="" data-linenumber="
|
1705
|
+
<li class="never" data-hits="" data-linenumber="20">
|
1698
1706
|
|
1699
1707
|
|
1700
1708
|
<code class="ruby"> # BB::Hash.flatten_prop_style(input)</code>
|
1701
1709
|
</li>
|
1702
1710
|
|
1703
|
-
<li class="never" data-hits="" data-linenumber="
|
1711
|
+
<li class="never" data-hits="" data-linenumber="21">
|
1704
1712
|
|
1705
1713
|
|
1706
1714
|
<code class="ruby"> # => {"a.b"=>:c}</code>
|
1707
1715
|
</li>
|
1708
1716
|
|
1709
|
-
<li class="never" data-hits="" data-linenumber="
|
1717
|
+
<li class="never" data-hits="" data-linenumber="22">
|
1710
1718
|
|
1711
1719
|
|
1712
1720
|
<code class="ruby"> #</code>
|
1713
1721
|
</li>
|
1714
1722
|
|
1715
|
-
<li class="never" data-hits="" data-linenumber="
|
1723
|
+
<li class="never" data-hits="" data-linenumber="23">
|
1716
1724
|
|
1717
1725
|
|
1718
1726
|
<code class="ruby"> # @example</code>
|
1719
1727
|
</li>
|
1720
1728
|
|
1721
|
-
<li class="never" data-hits="" data-linenumber="
|
1729
|
+
<li class="never" data-hits="" data-linenumber="24">
|
1722
1730
|
|
1723
1731
|
|
1724
1732
|
<code class="ruby"> # input = { :a => { :b => [:c, :d, :e] } }</code>
|
1725
1733
|
</li>
|
1726
1734
|
|
1727
|
-
<li class="never" data-hits="" data-linenumber="
|
1735
|
+
<li class="never" data-hits="" data-linenumber="25">
|
1728
1736
|
|
1729
1737
|
|
1730
1738
|
<code class="ruby"> # BB::Hash.flatten_prop_style(input)</code>
|
1731
1739
|
</li>
|
1732
1740
|
|
1733
|
-
<li class="never" data-hits="" data-linenumber="
|
1741
|
+
<li class="never" data-hits="" data-linenumber="26">
|
1734
1742
|
|
1735
1743
|
|
1736
1744
|
<code class="ruby"> # => {"a.b"=>"c,d,e"}</code>
|
1737
1745
|
</li>
|
1738
1746
|
|
1739
|
-
<li class="never" data-hits="" data-linenumber="
|
1747
|
+
<li class="never" data-hits="" data-linenumber="27">
|
1740
1748
|
|
1741
1749
|
|
1742
1750
|
<code class="ruby"> #</code>
|
1743
1751
|
</li>
|
1744
1752
|
|
1745
|
-
<li class="never" data-hits="" data-linenumber="
|
1753
|
+
<li class="never" data-hits="" data-linenumber="28">
|
1746
1754
|
|
1747
1755
|
|
1748
1756
|
<code class="ruby"> # @param [Hash] input Input hash</code>
|
1749
1757
|
</li>
|
1750
1758
|
|
1751
|
-
<li class="never" data-hits="" data-linenumber="
|
1759
|
+
<li class="never" data-hits="" data-linenumber="29">
|
1752
1760
|
|
1753
1761
|
|
1754
1762
|
<code class="ruby"> # @param [Hash] opts Options</code>
|
1755
1763
|
</li>
|
1756
1764
|
|
1757
|
-
<li class="never" data-hits="" data-linenumber="
|
1765
|
+
<li class="never" data-hits="" data-linenumber="30">
|
1758
1766
|
|
1759
1767
|
|
1760
1768
|
<code class="ruby"> # @option opts [String] :delimiter</code>
|
1761
1769
|
</li>
|
1762
1770
|
|
1763
|
-
<li class="never" data-hits="" data-linenumber="
|
1771
|
+
<li class="never" data-hits="" data-linenumber="31">
|
1764
1772
|
|
1765
1773
|
|
1766
1774
|
<code class="ruby"> # Key delimiter (Default: '.')</code>
|
1767
1775
|
</li>
|
1768
1776
|
|
1769
|
-
<li class="never" data-hits="" data-linenumber="
|
1777
|
+
<li class="never" data-hits="" data-linenumber="32">
|
1770
1778
|
|
1771
1779
|
|
1772
1780
|
<code class="ruby"> # @param [Hash] output (leave this blank)</code>
|
1773
1781
|
</li>
|
1774
1782
|
|
1775
|
-
<li class="never" data-hits="" data-linenumber="
|
1783
|
+
<li class="never" data-hits="" data-linenumber="33">
|
1776
1784
|
|
1777
1785
|
|
1778
1786
|
<code class="ruby"> # @return [Hash] Output hash (flattened)</code>
|
1779
1787
|
</li>
|
1780
1788
|
|
1781
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1789
|
+
<li class="covered" data-hits="1" data-linenumber="34">
|
1782
1790
|
<span class="hits">1</span>
|
1783
1791
|
|
1784
1792
|
<code class="ruby"> def flatten_prop_style(input = {}, opts = {}, output = {})</code>
|
1785
1793
|
</li>
|
1786
1794
|
|
1787
|
-
<li class="covered" data-hits="10" data-linenumber="
|
1795
|
+
<li class="covered" data-hits="10" data-linenumber="35">
|
1788
1796
|
<span class="hits">10</span>
|
1789
1797
|
|
1790
1798
|
<code class="ruby"> input.each do |key, value|</code>
|
1791
1799
|
</li>
|
1792
1800
|
|
1793
|
-
<li class="covered" data-hits="22" data-linenumber="
|
1801
|
+
<li class="covered" data-hits="22" data-linenumber="36">
|
1794
1802
|
<span class="hits">22</span>
|
1795
1803
|
|
1796
1804
|
<code class="ruby"> key = opts[:prefix].nil? ? key.to_s : "#{opts[:prefix]}#{opts[:delimiter] || '.'}#{key}"</code>
|
1797
1805
|
</li>
|
1798
1806
|
|
1799
|
-
<li class="covered" data-hits="22" data-linenumber="
|
1807
|
+
<li class="covered" data-hits="22" data-linenumber="37">
|
1800
1808
|
<span class="hits">22</span>
|
1801
1809
|
|
1802
1810
|
<code class="ruby"> case value</code>
|
1803
1811
|
</li>
|
1804
1812
|
|
1805
|
-
<li class="never" data-hits="" data-linenumber="
|
1813
|
+
<li class="never" data-hits="" data-linenumber="38">
|
1806
1814
|
|
1807
1815
|
|
1808
1816
|
<code class="ruby"> when ::Hash</code>
|
1809
1817
|
</li>
|
1810
1818
|
|
1811
|
-
<li class="covered" data-hits="9" data-linenumber="
|
1819
|
+
<li class="covered" data-hits="9" data-linenumber="39">
|
1812
1820
|
<span class="hits">9</span>
|
1813
1821
|
|
1814
1822
|
<code class="ruby"> flatten_prop_style(value, opts.merge(prefix: key), output)</code>
|
1815
1823
|
</li>
|
1816
1824
|
|
1817
|
-
<li class="never" data-hits="" data-linenumber="
|
1825
|
+
<li class="never" data-hits="" data-linenumber="40">
|
1818
1826
|
|
1819
1827
|
|
1820
1828
|
<code class="ruby"> when Array</code>
|
1821
1829
|
</li>
|
1822
1830
|
|
1823
|
-
<li class="covered" data-hits="4" data-linenumber="
|
1831
|
+
<li class="covered" data-hits="4" data-linenumber="41">
|
1824
1832
|
<span class="hits">4</span>
|
1825
1833
|
|
1826
1834
|
<code class="ruby"> output[key] = value.join(',')</code>
|
1827
1835
|
</li>
|
1828
1836
|
|
1829
|
-
<li class="never" data-hits="" data-linenumber="
|
1837
|
+
<li class="never" data-hits="" data-linenumber="42">
|
1830
1838
|
|
1831
1839
|
|
1832
1840
|
<code class="ruby"> else</code>
|
1833
1841
|
</li>
|
1834
1842
|
|
1835
|
-
<li class="covered" data-hits="9" data-linenumber="
|
1843
|
+
<li class="covered" data-hits="9" data-linenumber="43">
|
1836
1844
|
<span class="hits">9</span>
|
1837
1845
|
|
1838
1846
|
<code class="ruby"> output[key] = value</code>
|
1839
1847
|
</li>
|
1840
1848
|
|
1841
|
-
<li class="never" data-hits="" data-linenumber="
|
1849
|
+
<li class="never" data-hits="" data-linenumber="44">
|
1842
1850
|
|
1843
1851
|
|
1844
1852
|
<code class="ruby"> end</code>
|
1845
1853
|
</li>
|
1846
1854
|
|
1847
|
-
<li class="never" data-hits="" data-linenumber="
|
1855
|
+
<li class="never" data-hits="" data-linenumber="45">
|
1848
1856
|
|
1849
1857
|
|
1850
1858
|
<code class="ruby"> end</code>
|
1851
1859
|
</li>
|
1852
1860
|
|
1853
|
-
<li class="covered" data-hits="10" data-linenumber="
|
1861
|
+
<li class="covered" data-hits="10" data-linenumber="46">
|
1854
1862
|
<span class="hits">10</span>
|
1855
1863
|
|
1856
1864
|
<code class="ruby"> output</code>
|
1857
1865
|
</li>
|
1858
1866
|
|
1859
|
-
<li class="never" data-hits="" data-linenumber="
|
1867
|
+
<li class="never" data-hits="" data-linenumber="47">
|
1860
1868
|
|
1861
1869
|
|
1862
1870
|
<code class="ruby"> end</code>
|
1863
1871
|
</li>
|
1864
1872
|
|
1865
|
-
<li class="never" data-hits="" data-linenumber="
|
1873
|
+
<li class="never" data-hits="" data-linenumber="48">
|
1866
1874
|
|
1867
1875
|
|
1868
1876
|
<code class="ruby"> end</code>
|
1869
1877
|
</li>
|
1870
1878
|
|
1871
|
-
<li class="never" data-hits="" data-linenumber="
|
1879
|
+
<li class="never" data-hits="" data-linenumber="49">
|
1872
1880
|
|
1873
1881
|
|
1874
1882
|
<code class="ruby"> end</code>
|
1875
1883
|
</li>
|
1876
1884
|
|
1877
|
-
<li class="never" data-hits="" data-linenumber="
|
1885
|
+
<li class="never" data-hits="" data-linenumber="50">
|
1878
1886
|
|
1879
1887
|
|
1880
1888
|
<code class="ruby">end</code>
|
@@ -1883,14 +1891,15 @@
|
|
1883
1891
|
</ol>
|
1884
1892
|
</pre>
|
1885
1893
|
</div>
|
1894
|
+
|
1886
1895
|
|
1887
1896
|
<div class="source_table" id="09e4da465507022615e91e2292a827cde0e5535c">
|
1888
1897
|
<div class="header">
|
1889
1898
|
<h3>lib/blackbox/number.rb</h3>
|
1890
1899
|
<h4><span class="green">100.0 %</span> covered</h4>
|
1891
1900
|
<div>
|
1892
|
-
<b>
|
1893
|
-
<span class="green"><b>
|
1901
|
+
<b>55</b> relevant lines.
|
1902
|
+
<span class="green"><b>55</b> lines covered</span> and
|
1894
1903
|
<span class="red"><b>0</b> lines missed.</span>
|
1895
1904
|
</div>
|
1896
1905
|
</div>
|
@@ -1904,1081 +1913,1087 @@
|
|
1904
1913
|
<code class="ruby"># frozen_string_literal: true</code>
|
1905
1914
|
</li>
|
1906
1915
|
|
1907
|
-
<li class="
|
1916
|
+
<li class="never" data-hits="" data-linenumber="2">
|
1917
|
+
|
1918
|
+
|
1919
|
+
<code class="ruby"></code>
|
1920
|
+
</li>
|
1921
|
+
|
1922
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
1908
1923
|
<span class="hits">1</span>
|
1909
1924
|
|
1910
1925
|
<code class="ruby">require 'blackbox/hash'</code>
|
1911
1926
|
</li>
|
1912
1927
|
|
1913
|
-
<li class="never" data-hits="" data-linenumber="
|
1928
|
+
<li class="never" data-hits="" data-linenumber="4">
|
1914
1929
|
|
1915
1930
|
|
1916
1931
|
<code class="ruby"></code>
|
1917
1932
|
</li>
|
1918
1933
|
|
1919
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1934
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
1920
1935
|
<span class="hits">1</span>
|
1921
1936
|
|
1922
1937
|
<code class="ruby">module BB</code>
|
1923
1938
|
</li>
|
1924
1939
|
|
1925
|
-
<li class="never" data-hits="" data-linenumber="
|
1940
|
+
<li class="never" data-hits="" data-linenumber="6">
|
1926
1941
|
|
1927
1942
|
|
1928
1943
|
<code class="ruby"> # String utilities.</code>
|
1929
1944
|
</li>
|
1930
1945
|
|
1931
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1946
|
+
<li class="covered" data-hits="1" data-linenumber="7">
|
1932
1947
|
<span class="hits">1</span>
|
1933
1948
|
|
1934
1949
|
<code class="ruby"> module Number</code>
|
1935
1950
|
</li>
|
1936
1951
|
|
1937
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1952
|
+
<li class="covered" data-hits="1" data-linenumber="8">
|
1938
1953
|
<span class="hits">1</span>
|
1939
1954
|
|
1940
1955
|
<code class="ruby"> class << self</code>
|
1941
1956
|
</li>
|
1942
1957
|
|
1943
|
-
<li class="covered" data-hits="1" data-linenumber="
|
1958
|
+
<li class="covered" data-hits="1" data-linenumber="9">
|
1944
1959
|
<span class="hits">1</span>
|
1945
1960
|
|
1946
|
-
<code class="ruby"> STORAGE_UNITS = %w
|
1961
|
+
<code class="ruby"> STORAGE_UNITS = %w[byte k M G T P E Z Y].freeze</code>
|
1947
1962
|
</li>
|
1948
1963
|
|
1949
|
-
<li class="never" data-hits="" data-linenumber="
|
1964
|
+
<li class="never" data-hits="" data-linenumber="10">
|
1950
1965
|
|
1951
1966
|
|
1952
1967
|
<code class="ruby"></code>
|
1953
1968
|
</li>
|
1954
1969
|
|
1955
|
-
<li class="never" data-hits="" data-linenumber="
|
1970
|
+
<li class="never" data-hits="" data-linenumber="11">
|
1956
1971
|
|
1957
1972
|
|
1958
1973
|
<code class="ruby"> ##</code>
|
1959
1974
|
</li>
|
1960
1975
|
|
1961
|
-
<li class="never" data-hits="" data-linenumber="
|
1976
|
+
<li class="never" data-hits="" data-linenumber="12">
|
1962
1977
|
|
1963
1978
|
|
1964
1979
|
<code class="ruby"> # Formats the bytes in +number+ into a more understandable representation</code>
|
1965
1980
|
</li>
|
1966
1981
|
|
1967
|
-
<li class="never" data-hits="" data-linenumber="
|
1982
|
+
<li class="never" data-hits="" data-linenumber="13">
|
1968
1983
|
|
1969
1984
|
|
1970
1985
|
<code class="ruby"> # (e.g., giving it 1500 yields 1.5k). This method is useful for</code>
|
1971
1986
|
</li>
|
1972
1987
|
|
1973
|
-
<li class="never" data-hits="" data-linenumber="
|
1988
|
+
<li class="never" data-hits="" data-linenumber="14">
|
1974
1989
|
|
1975
1990
|
|
1976
1991
|
<code class="ruby"> # reporting file sizes to users. This method returns nil if</code>
|
1977
1992
|
</li>
|
1978
1993
|
|
1979
|
-
<li class="never" data-hits="" data-linenumber="
|
1994
|
+
<li class="never" data-hits="" data-linenumber="15">
|
1980
1995
|
|
1981
1996
|
|
1982
1997
|
<code class="ruby"> # +number+ cannot be converted into a number. You can customize the</code>
|
1983
1998
|
</li>
|
1984
1999
|
|
1985
|
-
<li class="never" data-hits="" data-linenumber="
|
2000
|
+
<li class="never" data-hits="" data-linenumber="16">
|
1986
2001
|
|
1987
2002
|
|
1988
2003
|
<code class="ruby"> # format in the +options+ hash.</code>
|
1989
2004
|
</li>
|
1990
2005
|
|
1991
|
-
<li class="never" data-hits="" data-linenumber="
|
2006
|
+
<li class="never" data-hits="" data-linenumber="17">
|
1992
2007
|
|
1993
2008
|
|
1994
2009
|
<code class="ruby"> #</code>
|
1995
2010
|
</li>
|
1996
2011
|
|
1997
|
-
<li class="never" data-hits="" data-linenumber="
|
2012
|
+
<li class="never" data-hits="" data-linenumber="18">
|
1998
2013
|
|
1999
2014
|
|
2000
2015
|
<code class="ruby"> # @overload to_human_size(number, options={})</code>
|
2001
2016
|
</li>
|
2002
2017
|
|
2003
|
-
<li class="never" data-hits="" data-linenumber="
|
2018
|
+
<li class="never" data-hits="" data-linenumber="19">
|
2004
2019
|
|
2005
2020
|
|
2006
2021
|
<code class="ruby"> # @param [Fixnum] number</code>
|
2007
2022
|
</li>
|
2008
2023
|
|
2009
|
-
<li class="never" data-hits="" data-linenumber="
|
2024
|
+
<li class="never" data-hits="" data-linenumber="20">
|
2010
2025
|
|
2011
2026
|
|
2012
2027
|
<code class="ruby"> # Number value to format.</code>
|
2013
2028
|
</li>
|
2014
2029
|
|
2015
|
-
<li class="never" data-hits="" data-linenumber="
|
2030
|
+
<li class="never" data-hits="" data-linenumber="21">
|
2016
2031
|
|
2017
2032
|
|
2018
2033
|
<code class="ruby"> # @param [Hash] options</code>
|
2019
2034
|
</li>
|
2020
2035
|
|
2021
|
-
<li class="never" data-hits="" data-linenumber="
|
2036
|
+
<li class="never" data-hits="" data-linenumber="22">
|
2022
2037
|
|
2023
2038
|
|
2024
2039
|
<code class="ruby"> # Options for formatter.</code>
|
2025
2040
|
</li>
|
2026
2041
|
|
2027
|
-
<li class="never" data-hits="" data-linenumber="
|
2042
|
+
<li class="never" data-hits="" data-linenumber="23">
|
2028
2043
|
|
2029
2044
|
|
2030
2045
|
<code class="ruby"> # @option options [Fixnum] :precision (1)</code>
|
2031
2046
|
</li>
|
2032
2047
|
|
2033
|
-
<li class="never" data-hits="" data-linenumber="
|
2048
|
+
<li class="never" data-hits="" data-linenumber="24">
|
2034
2049
|
|
2035
2050
|
|
2036
2051
|
<code class="ruby"> # Sets the level of precision.</code>
|
2037
2052
|
</li>
|
2038
2053
|
|
2039
|
-
<li class="never" data-hits="" data-linenumber="
|
2054
|
+
<li class="never" data-hits="" data-linenumber="25">
|
2040
2055
|
|
2041
2056
|
|
2042
2057
|
<code class="ruby"> # @option options [String] :separator (".")</code>
|
2043
2058
|
</li>
|
2044
2059
|
|
2045
|
-
<li class="never" data-hits="" data-linenumber="
|
2060
|
+
<li class="never" data-hits="" data-linenumber="26">
|
2046
2061
|
|
2047
2062
|
|
2048
2063
|
<code class="ruby"> # Sets the separator between the units.</code>
|
2049
2064
|
</li>
|
2050
2065
|
|
2051
|
-
<li class="never" data-hits="" data-linenumber="
|
2066
|
+
<li class="never" data-hits="" data-linenumber="27">
|
2052
2067
|
|
2053
2068
|
|
2054
2069
|
<code class="ruby"> # @option options [String] :delimiter ("")</code>
|
2055
2070
|
</li>
|
2056
2071
|
|
2057
|
-
<li class="never" data-hits="" data-linenumber="
|
2072
|
+
<li class="never" data-hits="" data-linenumber="28">
|
2058
2073
|
|
2059
2074
|
|
2060
2075
|
<code class="ruby"> # Sets the thousands delimiter.</code>
|
2061
2076
|
</li>
|
2062
2077
|
|
2063
|
-
<li class="never" data-hits="" data-linenumber="
|
2078
|
+
<li class="never" data-hits="" data-linenumber="29">
|
2064
2079
|
|
2065
2080
|
|
2066
2081
|
<code class="ruby"> # @option options [String] :kilo (1024)</code>
|
2067
2082
|
</li>
|
2068
2083
|
|
2069
|
-
<li class="never" data-hits="" data-linenumber="
|
2084
|
+
<li class="never" data-hits="" data-linenumber="30">
|
2070
2085
|
|
2071
2086
|
|
2072
2087
|
<code class="ruby"> # Sets the number of bytes in a kilobyte.</code>
|
2073
2088
|
</li>
|
2074
2089
|
|
2075
|
-
<li class="never" data-hits="" data-linenumber="
|
2090
|
+
<li class="never" data-hits="" data-linenumber="31">
|
2076
2091
|
|
2077
2092
|
|
2078
2093
|
<code class="ruby"> # @option options [String] :format ("%n%u")</code>
|
2079
2094
|
</li>
|
2080
2095
|
|
2081
|
-
<li class="never" data-hits="" data-linenumber="
|
2096
|
+
<li class="never" data-hits="" data-linenumber="32">
|
2082
2097
|
|
2083
2098
|
|
2084
2099
|
<code class="ruby"> # Sets the display format.</code>
|
2085
2100
|
</li>
|
2086
2101
|
|
2087
|
-
<li class="never" data-hits="" data-linenumber="
|
2102
|
+
<li class="never" data-hits="" data-linenumber="33">
|
2088
2103
|
|
2089
2104
|
|
2090
2105
|
<code class="ruby"> #</code>
|
2091
2106
|
</li>
|
2092
2107
|
|
2093
|
-
<li class="never" data-hits="" data-linenumber="
|
2108
|
+
<li class="never" data-hits="" data-linenumber="34">
|
2094
2109
|
|
2095
2110
|
|
2096
2111
|
<code class="ruby"> # @return [String] The formatted representation of bytes</code>
|
2097
2112
|
</li>
|
2098
2113
|
|
2099
|
-
<li class="never" data-hits="" data-linenumber="
|
2114
|
+
<li class="never" data-hits="" data-linenumber="35">
|
2100
2115
|
|
2101
2116
|
|
2102
2117
|
<code class="ruby"> #</code>
|
2103
2118
|
</li>
|
2104
2119
|
|
2105
|
-
<li class="never" data-hits="" data-linenumber="
|
2120
|
+
<li class="never" data-hits="" data-linenumber="36">
|
2106
2121
|
|
2107
2122
|
|
2108
2123
|
<code class="ruby"> # @example</code>
|
2109
2124
|
</li>
|
2110
2125
|
|
2111
|
-
<li class="never" data-hits="" data-linenumber="
|
2126
|
+
<li class="never" data-hits="" data-linenumber="37">
|
2112
2127
|
|
2113
2128
|
|
2114
2129
|
<code class="ruby"> # to_human_size(123) # => 123</code>
|
2115
2130
|
</li>
|
2116
2131
|
|
2117
|
-
<li class="never" data-hits="" data-linenumber="
|
2132
|
+
<li class="never" data-hits="" data-linenumber="38">
|
2118
2133
|
|
2119
2134
|
|
2120
2135
|
<code class="ruby"> # to_human_size(1234) # => 1.2k</code>
|
2121
2136
|
</li>
|
2122
2137
|
|
2123
|
-
<li class="never" data-hits="" data-linenumber="
|
2138
|
+
<li class="never" data-hits="" data-linenumber="39">
|
2124
2139
|
|
2125
2140
|
|
2126
2141
|
<code class="ruby"> # to_human_size(12345) # => 12.1k</code>
|
2127
2142
|
</li>
|
2128
2143
|
|
2129
|
-
<li class="never" data-hits="" data-linenumber="
|
2144
|
+
<li class="never" data-hits="" data-linenumber="40">
|
2130
2145
|
|
2131
2146
|
|
2132
2147
|
<code class="ruby"> # to_human_size(1234567) # => 1.2M</code>
|
2133
2148
|
</li>
|
2134
2149
|
|
2135
|
-
<li class="never" data-hits="" data-linenumber="
|
2150
|
+
<li class="never" data-hits="" data-linenumber="41">
|
2136
2151
|
|
2137
2152
|
|
2138
2153
|
<code class="ruby"> # to_human_size(1234567890) # => 1.1G</code>
|
2139
2154
|
</li>
|
2140
2155
|
|
2141
|
-
<li class="never" data-hits="" data-linenumber="
|
2156
|
+
<li class="never" data-hits="" data-linenumber="42">
|
2142
2157
|
|
2143
2158
|
|
2144
2159
|
<code class="ruby"> # to_human_size(1234567890123) # => 1.1T</code>
|
2145
2160
|
</li>
|
2146
2161
|
|
2147
|
-
<li class="never" data-hits="" data-linenumber="
|
2162
|
+
<li class="never" data-hits="" data-linenumber="43">
|
2148
2163
|
|
2149
2164
|
|
2150
2165
|
<code class="ruby"> # to_human_size(1234567, :precision => 2) # => 1.18M</code>
|
2151
2166
|
</li>
|
2152
2167
|
|
2153
|
-
<li class="never" data-hits="" data-linenumber="
|
2168
|
+
<li class="never" data-hits="" data-linenumber="44">
|
2154
2169
|
|
2155
2170
|
|
2156
2171
|
<code class="ruby"> # to_human_size(483989, :precision => 0) # => 473k</code>
|
2157
2172
|
</li>
|
2158
2173
|
|
2159
|
-
<li class="never" data-hits="" data-linenumber="
|
2174
|
+
<li class="never" data-hits="" data-linenumber="45">
|
2160
2175
|
|
2161
2176
|
|
2162
2177
|
<code class="ruby"> # to_human_size(1234567, :precision => 2, :separator => ',') # => 1,18M</code>
|
2163
2178
|
</li>
|
2164
2179
|
|
2165
|
-
<li class="never" data-hits="" data-linenumber="
|
2180
|
+
<li class="never" data-hits="" data-linenumber="46">
|
2166
2181
|
|
2167
2182
|
|
2168
2183
|
<code class="ruby"> #</code>
|
2169
2184
|
</li>
|
2170
2185
|
|
2171
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2186
|
+
<li class="covered" data-hits="1" data-linenumber="47">
|
2172
2187
|
<span class="hits">1</span>
|
2173
2188
|
|
2174
2189
|
<code class="ruby"> def to_human_size(number, args = {})</code>
|
2175
2190
|
</li>
|
2176
2191
|
|
2177
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2192
|
+
<li class="covered" data-hits="13" data-linenumber="48">
|
2178
2193
|
<span class="hits">13</span>
|
2179
2194
|
|
2180
2195
|
<code class="ruby"> begin</code>
|
2181
2196
|
</li>
|
2182
2197
|
|
2183
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2198
|
+
<li class="covered" data-hits="13" data-linenumber="49">
|
2184
2199
|
<span class="hits">13</span>
|
2185
2200
|
|
2186
2201
|
<code class="ruby"> Float(number)</code>
|
2187
2202
|
</li>
|
2188
2203
|
|
2189
|
-
<li class="never" data-hits="" data-linenumber="
|
2204
|
+
<li class="never" data-hits="" data-linenumber="50">
|
2190
2205
|
|
2191
2206
|
|
2192
|
-
<code class="ruby"> rescue</code>
|
2207
|
+
<code class="ruby"> rescue StandardError</code>
|
2193
2208
|
</li>
|
2194
2209
|
|
2195
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2210
|
+
<li class="covered" data-hits="1" data-linenumber="51">
|
2196
2211
|
<span class="hits">1</span>
|
2197
2212
|
|
2198
2213
|
<code class="ruby"> return nil</code>
|
2199
2214
|
</li>
|
2200
2215
|
|
2201
|
-
<li class="never" data-hits="" data-linenumber="
|
2216
|
+
<li class="never" data-hits="" data-linenumber="52">
|
2202
2217
|
|
2203
2218
|
|
2204
2219
|
<code class="ruby"> end</code>
|
2205
2220
|
</li>
|
2206
2221
|
|
2207
|
-
<li class="never" data-hits="" data-linenumber="
|
2222
|
+
<li class="never" data-hits="" data-linenumber="53">
|
2208
2223
|
|
2209
2224
|
|
2210
2225
|
<code class="ruby"></code>
|
2211
2226
|
</li>
|
2212
2227
|
|
2213
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2228
|
+
<li class="covered" data-hits="12" data-linenumber="54">
|
2214
2229
|
<span class="hits">12</span>
|
2215
2230
|
|
2216
2231
|
<code class="ruby"> options = BB::Hash.symbolize_keys(args)</code>
|
2217
2232
|
</li>
|
2218
2233
|
|
2219
|
-
<li class="never" data-hits="" data-linenumber="
|
2234
|
+
<li class="never" data-hits="" data-linenumber="55">
|
2220
2235
|
|
2221
2236
|
|
2222
2237
|
<code class="ruby"></code>
|
2223
2238
|
</li>
|
2224
2239
|
|
2225
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2240
|
+
<li class="covered" data-hits="12" data-linenumber="56">
|
2226
2241
|
<span class="hits">12</span>
|
2227
2242
|
|
2228
2243
|
<code class="ruby"> precision ||= (options[:precision] || 1)</code>
|
2229
2244
|
</li>
|
2230
2245
|
|
2231
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2246
|
+
<li class="covered" data-hits="12" data-linenumber="57">
|
2232
2247
|
<span class="hits">12</span>
|
2233
2248
|
|
2234
2249
|
<code class="ruby"> separator ||= (options[:separator] || '.')</code>
|
2235
2250
|
</li>
|
2236
2251
|
|
2237
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2252
|
+
<li class="covered" data-hits="12" data-linenumber="58">
|
2238
2253
|
<span class="hits">12</span>
|
2239
2254
|
|
2240
2255
|
<code class="ruby"> delimiter ||= (options[:delimiter] || '')</code>
|
2241
2256
|
</li>
|
2242
2257
|
|
2243
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2258
|
+
<li class="covered" data-hits="12" data-linenumber="59">
|
2244
2259
|
<span class="hits">12</span>
|
2245
2260
|
|
2246
2261
|
<code class="ruby"> kilo ||= (options[:kilo] || 1024)</code>
|
2247
2262
|
</li>
|
2248
2263
|
|
2249
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2264
|
+
<li class="covered" data-hits="12" data-linenumber="60">
|
2250
2265
|
<span class="hits">12</span>
|
2251
2266
|
|
2252
2267
|
<code class="ruby"> storage_units_format ||= (options[:format] || '%n%u')</code>
|
2253
2268
|
</li>
|
2254
2269
|
|
2255
|
-
<li class="never" data-hits="" data-linenumber="
|
2270
|
+
<li class="never" data-hits="" data-linenumber="61">
|
2256
2271
|
|
2257
2272
|
|
2258
2273
|
<code class="ruby"></code>
|
2259
2274
|
</li>
|
2260
2275
|
|
2261
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2276
|
+
<li class="covered" data-hits="12" data-linenumber="62">
|
2262
2277
|
<span class="hits">12</span>
|
2263
2278
|
|
2264
2279
|
<code class="ruby"> begin</code>
|
2265
2280
|
</li>
|
2266
2281
|
|
2267
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2282
|
+
<li class="covered" data-hits="12" data-linenumber="63">
|
2268
2283
|
<span class="hits">12</span>
|
2269
2284
|
|
2270
2285
|
<code class="ruby"> if number.to_i < kilo</code>
|
2271
2286
|
</li>
|
2272
2287
|
|
2273
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2288
|
+
<li class="covered" data-hits="1" data-linenumber="64">
|
2274
2289
|
<span class="hits">1</span>
|
2275
2290
|
|
2276
2291
|
<code class="ruby"> storage_units_format.gsub(/%n/, number.to_i.to_s).gsub(/%u/, '')</code>
|
2277
2292
|
</li>
|
2278
2293
|
|
2279
|
-
<li class="never" data-hits="" data-linenumber="
|
2294
|
+
<li class="never" data-hits="" data-linenumber="65">
|
2280
2295
|
|
2281
2296
|
|
2282
2297
|
<code class="ruby"> else</code>
|
2283
2298
|
</li>
|
2284
2299
|
|
2285
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2300
|
+
<li class="covered" data-hits="10" data-linenumber="66">
|
2286
2301
|
<span class="hits">10</span>
|
2287
2302
|
|
2288
2303
|
<code class="ruby"> max_exp = STORAGE_UNITS.size - 1</code>
|
2289
2304
|
</li>
|
2290
2305
|
|
2291
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2306
|
+
<li class="covered" data-hits="10" data-linenumber="67">
|
2292
2307
|
<span class="hits">10</span>
|
2293
2308
|
|
2294
2309
|
<code class="ruby"> number = Float(number)</code>
|
2295
2310
|
</li>
|
2296
2311
|
|
2297
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2312
|
+
<li class="covered" data-hits="10" data-linenumber="68">
|
2298
2313
|
<span class="hits">10</span>
|
2299
2314
|
|
2300
2315
|
<code class="ruby"> exponent = (Math.log(number) / Math.log(kilo)).to_i # Convert to base</code>
|
2301
2316
|
</li>
|
2302
2317
|
|
2303
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2318
|
+
<li class="covered" data-hits="10" data-linenumber="69">
|
2304
2319
|
<span class="hits">10</span>
|
2305
2320
|
|
2306
2321
|
<code class="ruby"> exponent = max_exp if exponent > max_exp # we need this to avoid overflow for the highest unit</code>
|
2307
2322
|
</li>
|
2308
2323
|
|
2309
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2324
|
+
<li class="covered" data-hits="10" data-linenumber="70">
|
2310
2325
|
<span class="hits">10</span>
|
2311
2326
|
|
2312
2327
|
<code class="ruby"> number /= kilo**exponent</code>
|
2313
2328
|
</li>
|
2314
2329
|
|
2315
|
-
<li class="never" data-hits="" data-linenumber="
|
2330
|
+
<li class="never" data-hits="" data-linenumber="71">
|
2316
2331
|
|
2317
2332
|
|
2318
2333
|
<code class="ruby"></code>
|
2319
2334
|
</li>
|
2320
2335
|
|
2321
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2336
|
+
<li class="covered" data-hits="10" data-linenumber="72">
|
2322
2337
|
<span class="hits">10</span>
|
2323
2338
|
|
2324
2339
|
<code class="ruby"> unit = STORAGE_UNITS[exponent]</code>
|
2325
2340
|
</li>
|
2326
2341
|
|
2327
|
-
<li class="never" data-hits="" data-linenumber="
|
2342
|
+
<li class="never" data-hits="" data-linenumber="73">
|
2328
2343
|
|
2329
2344
|
|
2330
2345
|
<code class="ruby"></code>
|
2331
2346
|
</li>
|
2332
2347
|
|
2333
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2348
|
+
<li class="covered" data-hits="10" data-linenumber="74">
|
2334
2349
|
<span class="hits">10</span>
|
2335
2350
|
|
2336
2351
|
<code class="ruby"> escaped_separator = Regexp.escape(separator)</code>
|
2337
2352
|
</li>
|
2338
2353
|
|
2339
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2354
|
+
<li class="covered" data-hits="10" data-linenumber="75">
|
2340
2355
|
<span class="hits">10</span>
|
2341
2356
|
|
2342
2357
|
<code class="ruby"> formatted_number = with_precision(number,</code>
|
2343
2358
|
</li>
|
2344
2359
|
|
2345
|
-
<li class="never" data-hits="" data-linenumber="
|
2360
|
+
<li class="never" data-hits="" data-linenumber="76">
|
2346
2361
|
|
2347
2362
|
|
2348
2363
|
<code class="ruby"> precision: precision,</code>
|
2349
2364
|
</li>
|
2350
2365
|
|
2351
|
-
<li class="never" data-hits="" data-linenumber="
|
2366
|
+
<li class="never" data-hits="" data-linenumber="77">
|
2352
2367
|
|
2353
2368
|
|
2354
2369
|
<code class="ruby"> separator: separator,</code>
|
2355
2370
|
</li>
|
2356
2371
|
|
2357
|
-
<li class="never" data-hits="" data-linenumber="
|
2372
|
+
<li class="never" data-hits="" data-linenumber="78">
|
2358
2373
|
|
2359
2374
|
|
2360
2375
|
<code class="ruby"> delimiter: delimiter).sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, '')</code>
|
2361
2376
|
</li>
|
2362
2377
|
|
2363
|
-
<li class="covered" data-hits="10" data-linenumber="
|
2378
|
+
<li class="covered" data-hits="10" data-linenumber="79">
|
2364
2379
|
<span class="hits">10</span>
|
2365
2380
|
|
2366
2381
|
<code class="ruby"> storage_units_format.gsub(/%n/, formatted_number).gsub(/%u/, unit)</code>
|
2367
2382
|
</li>
|
2368
2383
|
|
2369
|
-
<li class="never" data-hits="" data-linenumber="
|
2384
|
+
<li class="never" data-hits="" data-linenumber="80">
|
2370
2385
|
|
2371
2386
|
|
2372
2387
|
<code class="ruby"> end</code>
|
2373
2388
|
</li>
|
2374
2389
|
|
2375
|
-
<li class="
|
2376
|
-
|
2390
|
+
<li class="covered" data-hits="1" data-linenumber="81">
|
2391
|
+
<span class="hits">1</span>
|
2377
2392
|
|
2378
|
-
<code class="ruby"> rescue</code>
|
2393
|
+
<code class="ruby"> rescue StandardError</code>
|
2379
2394
|
</li>
|
2380
2395
|
|
2381
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2396
|
+
<li class="covered" data-hits="1" data-linenumber="82">
|
2382
2397
|
<span class="hits">1</span>
|
2383
2398
|
|
2384
2399
|
<code class="ruby"> number</code>
|
2385
2400
|
</li>
|
2386
2401
|
|
2387
|
-
<li class="never" data-hits="" data-linenumber="
|
2402
|
+
<li class="never" data-hits="" data-linenumber="83">
|
2388
2403
|
|
2389
2404
|
|
2390
2405
|
<code class="ruby"> end</code>
|
2391
2406
|
</li>
|
2392
2407
|
|
2393
|
-
<li class="never" data-hits="" data-linenumber="
|
2408
|
+
<li class="never" data-hits="" data-linenumber="84">
|
2394
2409
|
|
2395
2410
|
|
2396
2411
|
<code class="ruby"> end</code>
|
2397
2412
|
</li>
|
2398
2413
|
|
2399
|
-
<li class="never" data-hits="" data-linenumber="
|
2414
|
+
<li class="never" data-hits="" data-linenumber="85">
|
2400
2415
|
|
2401
2416
|
|
2402
2417
|
<code class="ruby"></code>
|
2403
2418
|
</li>
|
2404
2419
|
|
2405
|
-
<li class="never" data-hits="" data-linenumber="
|
2420
|
+
<li class="never" data-hits="" data-linenumber="86">
|
2406
2421
|
|
2407
2422
|
|
2408
2423
|
<code class="ruby"> ##</code>
|
2409
2424
|
</li>
|
2410
2425
|
|
2411
|
-
<li class="never" data-hits="" data-linenumber="
|
2426
|
+
<li class="never" data-hits="" data-linenumber="87">
|
2412
2427
|
|
2413
2428
|
|
2414
2429
|
<code class="ruby"> # Formats a +number+ with the specified level of <tt>:precision</tt> (e.g., 112.32 has a precision of 2).</code>
|
2415
2430
|
</li>
|
2416
2431
|
|
2417
|
-
<li class="never" data-hits="" data-linenumber="
|
2432
|
+
<li class="never" data-hits="" data-linenumber="88">
|
2418
2433
|
|
2419
2434
|
|
2420
2435
|
<code class="ruby"> # This method returns nil if +number+ cannot be converted into a number.</code>
|
2421
2436
|
</li>
|
2422
2437
|
|
2423
|
-
<li class="never" data-hits="" data-linenumber="
|
2438
|
+
<li class="never" data-hits="" data-linenumber="89">
|
2424
2439
|
|
2425
2440
|
|
2426
2441
|
<code class="ruby"> # You can customize the format in the +options+ hash.</code>
|
2427
2442
|
</li>
|
2428
2443
|
|
2429
|
-
<li class="never" data-hits="" data-linenumber="
|
2444
|
+
<li class="never" data-hits="" data-linenumber="90">
|
2430
2445
|
|
2431
2446
|
|
2432
2447
|
<code class="ruby"> #</code>
|
2433
2448
|
</li>
|
2434
2449
|
|
2435
|
-
<li class="never" data-hits="" data-linenumber="
|
2450
|
+
<li class="never" data-hits="" data-linenumber="91">
|
2436
2451
|
|
2437
2452
|
|
2438
2453
|
<code class="ruby"> # @overload with_precision(number, options={})</code>
|
2439
2454
|
</li>
|
2440
2455
|
|
2441
|
-
<li class="never" data-hits="" data-linenumber="
|
2456
|
+
<li class="never" data-hits="" data-linenumber="92">
|
2442
2457
|
|
2443
2458
|
|
2444
2459
|
<code class="ruby"> # @param [Fixnum, Float] number</code>
|
2445
2460
|
</li>
|
2446
2461
|
|
2447
|
-
<li class="never" data-hits="" data-linenumber="
|
2462
|
+
<li class="never" data-hits="" data-linenumber="93">
|
2448
2463
|
|
2449
2464
|
|
2450
2465
|
<code class="ruby"> # Number value to format.</code>
|
2451
2466
|
</li>
|
2452
2467
|
|
2453
|
-
<li class="never" data-hits="" data-linenumber="
|
2468
|
+
<li class="never" data-hits="" data-linenumber="94">
|
2454
2469
|
|
2455
2470
|
|
2456
2471
|
<code class="ruby"> # @param [Hash] options</code>
|
2457
2472
|
</li>
|
2458
2473
|
|
2459
|
-
<li class="never" data-hits="" data-linenumber="
|
2474
|
+
<li class="never" data-hits="" data-linenumber="95">
|
2460
2475
|
|
2461
2476
|
|
2462
2477
|
<code class="ruby"> # Options for formatter.</code>
|
2463
2478
|
</li>
|
2464
2479
|
|
2465
|
-
<li class="never" data-hits="" data-linenumber="
|
2480
|
+
<li class="never" data-hits="" data-linenumber="96">
|
2466
2481
|
|
2467
2482
|
|
2468
2483
|
<code class="ruby"> # @option options [Fixnum] :precision (3)</code>
|
2469
2484
|
</li>
|
2470
2485
|
|
2471
|
-
<li class="never" data-hits="" data-linenumber="
|
2486
|
+
<li class="never" data-hits="" data-linenumber="97">
|
2472
2487
|
|
2473
2488
|
|
2474
2489
|
<code class="ruby"> # Sets the level of precision.</code>
|
2475
2490
|
</li>
|
2476
2491
|
|
2477
|
-
<li class="never" data-hits="" data-linenumber="
|
2492
|
+
<li class="never" data-hits="" data-linenumber="98">
|
2478
2493
|
|
2479
2494
|
|
2480
2495
|
<code class="ruby"> # @option options [String] :separator (".")</code>
|
2481
2496
|
</li>
|
2482
2497
|
|
2483
|
-
<li class="never" data-hits="" data-linenumber="
|
2498
|
+
<li class="never" data-hits="" data-linenumber="99">
|
2484
2499
|
|
2485
2500
|
|
2486
2501
|
<code class="ruby"> # Sets the separator between the units.</code>
|
2487
2502
|
</li>
|
2488
2503
|
|
2489
|
-
<li class="never" data-hits="" data-linenumber="
|
2504
|
+
<li class="never" data-hits="" data-linenumber="100">
|
2490
2505
|
|
2491
2506
|
|
2492
2507
|
<code class="ruby"> # @option options [String] :delimiter ("")</code>
|
2493
2508
|
</li>
|
2494
2509
|
|
2495
|
-
<li class="never" data-hits="" data-linenumber="
|
2510
|
+
<li class="never" data-hits="" data-linenumber="101">
|
2496
2511
|
|
2497
2512
|
|
2498
2513
|
<code class="ruby"> # Sets the thousands delimiter.</code>
|
2499
2514
|
</li>
|
2500
2515
|
|
2501
|
-
<li class="never" data-hits="" data-linenumber="
|
2516
|
+
<li class="never" data-hits="" data-linenumber="102">
|
2502
2517
|
|
2503
2518
|
|
2504
2519
|
<code class="ruby"> #</code>
|
2505
2520
|
</li>
|
2506
2521
|
|
2507
|
-
<li class="never" data-hits="" data-linenumber="
|
2522
|
+
<li class="never" data-hits="" data-linenumber="103">
|
2508
2523
|
|
2509
2524
|
|
2510
2525
|
<code class="ruby"> # @return [String] The formatted representation of the number.</code>
|
2511
2526
|
</li>
|
2512
2527
|
|
2513
|
-
<li class="never" data-hits="" data-linenumber="
|
2528
|
+
<li class="never" data-hits="" data-linenumber="104">
|
2514
2529
|
|
2515
2530
|
|
2516
2531
|
<code class="ruby"> #</code>
|
2517
2532
|
</li>
|
2518
2533
|
|
2519
|
-
<li class="never" data-hits="" data-linenumber="
|
2534
|
+
<li class="never" data-hits="" data-linenumber="105">
|
2520
2535
|
|
2521
2536
|
|
2522
2537
|
<code class="ruby"> # @example</code>
|
2523
2538
|
</li>
|
2524
2539
|
|
2525
|
-
<li class="never" data-hits="" data-linenumber="
|
2540
|
+
<li class="never" data-hits="" data-linenumber="106">
|
2526
2541
|
|
2527
2542
|
|
2528
2543
|
<code class="ruby"> # with_precision(111.2345) # => 111.235</code>
|
2529
2544
|
</li>
|
2530
2545
|
|
2531
|
-
<li class="never" data-hits="" data-linenumber="
|
2546
|
+
<li class="never" data-hits="" data-linenumber="107">
|
2532
2547
|
|
2533
2548
|
|
2534
2549
|
<code class="ruby"> # with_precision(111.2345, :precision => 2) # => 111.23</code>
|
2535
2550
|
</li>
|
2536
2551
|
|
2537
|
-
<li class="never" data-hits="" data-linenumber="
|
2552
|
+
<li class="never" data-hits="" data-linenumber="108">
|
2538
2553
|
|
2539
2554
|
|
2540
2555
|
<code class="ruby"> # with_precision(13, :precision => 5) # => 13.00000</code>
|
2541
2556
|
</li>
|
2542
2557
|
|
2543
|
-
<li class="never" data-hits="" data-linenumber="
|
2558
|
+
<li class="never" data-hits="" data-linenumber="109">
|
2544
2559
|
|
2545
2560
|
|
2546
2561
|
<code class="ruby"> # with_precision(389.32314, :precision => 0) # => 389</code>
|
2547
2562
|
</li>
|
2548
2563
|
|
2549
|
-
<li class="never" data-hits="" data-linenumber="
|
2564
|
+
<li class="never" data-hits="" data-linenumber="110">
|
2550
2565
|
|
2551
2566
|
|
2552
2567
|
<code class="ruby"> # with_precision(1111.2345, :precision => 2, :separator => ',', :delimiter => '.')</code>
|
2553
2568
|
</li>
|
2554
2569
|
|
2555
|
-
<li class="never" data-hits="" data-linenumber="
|
2570
|
+
<li class="never" data-hits="" data-linenumber="111">
|
2556
2571
|
|
2557
2572
|
|
2558
2573
|
<code class="ruby"> # # => 1.111,23</code>
|
2559
2574
|
</li>
|
2560
2575
|
|
2561
|
-
<li class="never" data-hits="" data-linenumber="
|
2576
|
+
<li class="never" data-hits="" data-linenumber="112">
|
2562
2577
|
|
2563
2578
|
|
2564
2579
|
<code class="ruby"> #</code>
|
2565
2580
|
</li>
|
2566
2581
|
|
2567
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2582
|
+
<li class="covered" data-hits="1" data-linenumber="113">
|
2568
2583
|
<span class="hits">1</span>
|
2569
2584
|
|
2570
2585
|
<code class="ruby"> def with_precision(number, args)</code>
|
2571
2586
|
</li>
|
2572
2587
|
|
2573
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2588
|
+
<li class="covered" data-hits="14" data-linenumber="114">
|
2574
2589
|
<span class="hits">14</span>
|
2575
2590
|
|
2576
2591
|
<code class="ruby"> begin</code>
|
2577
2592
|
</li>
|
2578
2593
|
|
2579
|
-
<li class="covered" data-hits="14" data-linenumber="
|
2594
|
+
<li class="covered" data-hits="14" data-linenumber="115">
|
2580
2595
|
<span class="hits">14</span>
|
2581
2596
|
|
2582
2597
|
<code class="ruby"> Float(number)</code>
|
2583
2598
|
</li>
|
2584
2599
|
|
2585
|
-
<li class="never" data-hits="" data-linenumber="
|
2600
|
+
<li class="never" data-hits="" data-linenumber="116">
|
2586
2601
|
|
2587
2602
|
|
2588
|
-
<code class="ruby"> rescue</code>
|
2603
|
+
<code class="ruby"> rescue StandardError</code>
|
2589
2604
|
</li>
|
2590
2605
|
|
2591
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2606
|
+
<li class="covered" data-hits="1" data-linenumber="117">
|
2592
2607
|
<span class="hits">1</span>
|
2593
2608
|
|
2594
2609
|
<code class="ruby"> return nil</code>
|
2595
2610
|
</li>
|
2596
2611
|
|
2597
|
-
<li class="never" data-hits="" data-linenumber="
|
2612
|
+
<li class="never" data-hits="" data-linenumber="118">
|
2598
2613
|
|
2599
2614
|
|
2600
2615
|
<code class="ruby"> end</code>
|
2601
2616
|
</li>
|
2602
2617
|
|
2603
|
-
<li class="never" data-hits="" data-linenumber="
|
2618
|
+
<li class="never" data-hits="" data-linenumber="119">
|
2604
2619
|
|
2605
2620
|
|
2606
2621
|
<code class="ruby"></code>
|
2607
2622
|
</li>
|
2608
2623
|
|
2609
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2624
|
+
<li class="covered" data-hits="13" data-linenumber="120">
|
2610
2625
|
<span class="hits">13</span>
|
2611
2626
|
|
2612
2627
|
<code class="ruby"> options = BB::Hash.symbolize_keys(args)</code>
|
2613
2628
|
</li>
|
2614
2629
|
|
2615
|
-
<li class="never" data-hits="" data-linenumber="
|
2630
|
+
<li class="never" data-hits="" data-linenumber="121">
|
2616
2631
|
|
2617
2632
|
|
2618
2633
|
<code class="ruby"></code>
|
2619
2634
|
</li>
|
2620
2635
|
|
2621
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2636
|
+
<li class="covered" data-hits="13" data-linenumber="122">
|
2622
2637
|
<span class="hits">13</span>
|
2623
2638
|
|
2624
2639
|
<code class="ruby"> precision ||= (options[:precision] || 3)</code>
|
2625
2640
|
</li>
|
2626
2641
|
|
2627
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2642
|
+
<li class="covered" data-hits="13" data-linenumber="123">
|
2628
2643
|
<span class="hits">13</span>
|
2629
2644
|
|
2630
2645
|
<code class="ruby"> separator ||= (options[:separator] || '.')</code>
|
2631
2646
|
</li>
|
2632
2647
|
|
2633
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2648
|
+
<li class="covered" data-hits="13" data-linenumber="124">
|
2634
2649
|
<span class="hits">13</span>
|
2635
2650
|
|
2636
2651
|
<code class="ruby"> delimiter ||= (options[:delimiter] || '')</code>
|
2637
2652
|
</li>
|
2638
2653
|
|
2639
|
-
<li class="never" data-hits="" data-linenumber="
|
2654
|
+
<li class="never" data-hits="" data-linenumber="125">
|
2640
2655
|
|
2641
2656
|
|
2642
2657
|
<code class="ruby"></code>
|
2643
2658
|
</li>
|
2644
2659
|
|
2645
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2660
|
+
<li class="covered" data-hits="13" data-linenumber="126">
|
2646
2661
|
<span class="hits">13</span>
|
2647
2662
|
|
2648
2663
|
<code class="ruby"> begin</code>
|
2649
2664
|
</li>
|
2650
2665
|
|
2651
|
-
<li class="covered" data-hits="13" data-linenumber="
|
2666
|
+
<li class="covered" data-hits="13" data-linenumber="127">
|
2652
2667
|
<span class="hits">13</span>
|
2653
2668
|
|
2654
2669
|
<code class="ruby"> rounded_number = (Float(number) * (10**precision)).round.to_f / 10**precision</code>
|
2655
2670
|
</li>
|
2656
2671
|
|
2657
|
-
<li class="covered" data-hits="12" data-linenumber="
|
2672
|
+
<li class="covered" data-hits="12" data-linenumber="128">
|
2658
2673
|
<span class="hits">12</span>
|
2659
2674
|
|
2660
2675
|
<code class="ruby"> with_delimiter("%01.#{precision}f" % rounded_number,</code>
|
2661
2676
|
</li>
|
2662
2677
|
|
2663
|
-
<li class="never" data-hits="" data-linenumber="
|
2678
|
+
<li class="never" data-hits="" data-linenumber="129">
|
2664
2679
|
|
2665
2680
|
|
2666
2681
|
<code class="ruby"> separator: separator,</code>
|
2667
2682
|
</li>
|
2668
2683
|
|
2669
|
-
<li class="never" data-hits="" data-linenumber="
|
2684
|
+
<li class="never" data-hits="" data-linenumber="130">
|
2670
2685
|
|
2671
2686
|
|
2672
2687
|
<code class="ruby"> delimiter: delimiter)</code>
|
2673
2688
|
</li>
|
2674
2689
|
|
2675
|
-
<li class="
|
2676
|
-
|
2690
|
+
<li class="covered" data-hits="1" data-linenumber="131">
|
2691
|
+
<span class="hits">1</span>
|
2677
2692
|
|
2678
|
-
<code class="ruby"> rescue</code>
|
2693
|
+
<code class="ruby"> rescue StandardError</code>
|
2679
2694
|
</li>
|
2680
2695
|
|
2681
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2696
|
+
<li class="covered" data-hits="1" data-linenumber="132">
|
2682
2697
|
<span class="hits">1</span>
|
2683
2698
|
|
2684
2699
|
<code class="ruby"> number</code>
|
2685
2700
|
</li>
|
2686
2701
|
|
2687
|
-
<li class="never" data-hits="" data-linenumber="
|
2702
|
+
<li class="never" data-hits="" data-linenumber="133">
|
2688
2703
|
|
2689
2704
|
|
2690
2705
|
<code class="ruby"> end</code>
|
2691
2706
|
</li>
|
2692
2707
|
|
2693
|
-
<li class="never" data-hits="" data-linenumber="
|
2708
|
+
<li class="never" data-hits="" data-linenumber="134">
|
2694
2709
|
|
2695
2710
|
|
2696
2711
|
<code class="ruby"> end</code>
|
2697
2712
|
</li>
|
2698
2713
|
|
2699
|
-
<li class="never" data-hits="" data-linenumber="
|
2714
|
+
<li class="never" data-hits="" data-linenumber="135">
|
2700
2715
|
|
2701
2716
|
|
2702
2717
|
<code class="ruby"></code>
|
2703
2718
|
</li>
|
2704
2719
|
|
2705
|
-
<li class="never" data-hits="" data-linenumber="
|
2720
|
+
<li class="never" data-hits="" data-linenumber="136">
|
2706
2721
|
|
2707
2722
|
|
2708
2723
|
<code class="ruby"> ##</code>
|
2709
2724
|
</li>
|
2710
2725
|
|
2711
|
-
<li class="never" data-hits="" data-linenumber="
|
2726
|
+
<li class="never" data-hits="" data-linenumber="137">
|
2712
2727
|
|
2713
2728
|
|
2714
2729
|
<code class="ruby"> # Formats a +number+ with grouped thousands using +delimiter+ (e.g., 12,324).</code>
|
2715
2730
|
</li>
|
2716
2731
|
|
2717
|
-
<li class="never" data-hits="" data-linenumber="
|
2732
|
+
<li class="never" data-hits="" data-linenumber="138">
|
2718
2733
|
|
2719
2734
|
|
2720
2735
|
<code class="ruby"> # This method returns nil if +number+ cannot be converted into a number.</code>
|
2721
2736
|
</li>
|
2722
2737
|
|
2723
|
-
<li class="never" data-hits="" data-linenumber="
|
2738
|
+
<li class="never" data-hits="" data-linenumber="139">
|
2724
2739
|
|
2725
2740
|
|
2726
2741
|
<code class="ruby"> # You can customize the format in the +options+ hash.</code>
|
2727
2742
|
</li>
|
2728
2743
|
|
2729
|
-
<li class="never" data-hits="" data-linenumber="
|
2744
|
+
<li class="never" data-hits="" data-linenumber="140">
|
2730
2745
|
|
2731
2746
|
|
2732
2747
|
<code class="ruby"> #</code>
|
2733
2748
|
</li>
|
2734
2749
|
|
2735
|
-
<li class="never" data-hits="" data-linenumber="
|
2750
|
+
<li class="never" data-hits="" data-linenumber="141">
|
2736
2751
|
|
2737
2752
|
|
2738
2753
|
<code class="ruby"> # @overload with_delimiter(number, options={})</code>
|
2739
2754
|
</li>
|
2740
2755
|
|
2741
|
-
<li class="never" data-hits="" data-linenumber="
|
2756
|
+
<li class="never" data-hits="" data-linenumber="142">
|
2742
2757
|
|
2743
2758
|
|
2744
2759
|
<code class="ruby"> # @param [Fixnum, Float] number</code>
|
2745
2760
|
</li>
|
2746
2761
|
|
2747
|
-
<li class="never" data-hits="" data-linenumber="
|
2762
|
+
<li class="never" data-hits="" data-linenumber="143">
|
2748
2763
|
|
2749
2764
|
|
2750
2765
|
<code class="ruby"> # Number value to format.</code>
|
2751
2766
|
</li>
|
2752
2767
|
|
2753
|
-
<li class="never" data-hits="" data-linenumber="
|
2768
|
+
<li class="never" data-hits="" data-linenumber="144">
|
2754
2769
|
|
2755
2770
|
|
2756
2771
|
<code class="ruby"> # @param [Hash] options</code>
|
2757
2772
|
</li>
|
2758
2773
|
|
2759
|
-
<li class="never" data-hits="" data-linenumber="
|
2774
|
+
<li class="never" data-hits="" data-linenumber="145">
|
2760
2775
|
|
2761
2776
|
|
2762
2777
|
<code class="ruby"> # Options for formatter.</code>
|
2763
2778
|
</li>
|
2764
2779
|
|
2765
|
-
<li class="never" data-hits="" data-linenumber="
|
2780
|
+
<li class="never" data-hits="" data-linenumber="146">
|
2766
2781
|
|
2767
2782
|
|
2768
2783
|
<code class="ruby"> # @option options [String] :delimiter (", ")</code>
|
2769
2784
|
</li>
|
2770
2785
|
|
2771
|
-
<li class="never" data-hits="" data-linenumber="
|
2786
|
+
<li class="never" data-hits="" data-linenumber="147">
|
2772
2787
|
|
2773
2788
|
|
2774
2789
|
<code class="ruby"> # Sets the thousands delimiter.</code>
|
2775
2790
|
</li>
|
2776
2791
|
|
2777
|
-
<li class="never" data-hits="" data-linenumber="
|
2792
|
+
<li class="never" data-hits="" data-linenumber="148">
|
2778
2793
|
|
2779
2794
|
|
2780
2795
|
<code class="ruby"> # @option options [String] :separator (".")</code>
|
2781
2796
|
</li>
|
2782
2797
|
|
2783
|
-
<li class="never" data-hits="" data-linenumber="
|
2798
|
+
<li class="never" data-hits="" data-linenumber="149">
|
2784
2799
|
|
2785
2800
|
|
2786
2801
|
<code class="ruby"> # Sets the separator between the units.</code>
|
2787
2802
|
</li>
|
2788
2803
|
|
2789
|
-
<li class="never" data-hits="" data-linenumber="
|
2804
|
+
<li class="never" data-hits="" data-linenumber="150">
|
2790
2805
|
|
2791
2806
|
|
2792
2807
|
<code class="ruby"> #</code>
|
2793
2808
|
</li>
|
2794
2809
|
|
2795
|
-
<li class="never" data-hits="" data-linenumber="
|
2810
|
+
<li class="never" data-hits="" data-linenumber="151">
|
2796
2811
|
|
2797
2812
|
|
2798
2813
|
<code class="ruby"> # @return [String] The formatted representation of the number.</code>
|
2799
2814
|
</li>
|
2800
2815
|
|
2801
|
-
<li class="never" data-hits="" data-linenumber="
|
2816
|
+
<li class="never" data-hits="" data-linenumber="152">
|
2802
2817
|
|
2803
2818
|
|
2804
2819
|
<code class="ruby"> #</code>
|
2805
2820
|
</li>
|
2806
2821
|
|
2807
|
-
<li class="never" data-hits="" data-linenumber="
|
2822
|
+
<li class="never" data-hits="" data-linenumber="153">
|
2808
2823
|
|
2809
2824
|
|
2810
2825
|
<code class="ruby"> # @example</code>
|
2811
2826
|
</li>
|
2812
2827
|
|
2813
|
-
<li class="never" data-hits="" data-linenumber="
|
2828
|
+
<li class="never" data-hits="" data-linenumber="154">
|
2814
2829
|
|
2815
2830
|
|
2816
2831
|
<code class="ruby"> # with_delimiter(12345678) # => 12,345,678</code>
|
2817
2832
|
</li>
|
2818
2833
|
|
2819
|
-
<li class="never" data-hits="" data-linenumber="
|
2834
|
+
<li class="never" data-hits="" data-linenumber="155">
|
2820
2835
|
|
2821
2836
|
|
2822
2837
|
<code class="ruby"> # with_delimiter(12345678.05) # => 12,345,678.05</code>
|
2823
2838
|
</li>
|
2824
2839
|
|
2825
|
-
<li class="never" data-hits="" data-linenumber="
|
2840
|
+
<li class="never" data-hits="" data-linenumber="156">
|
2826
2841
|
|
2827
2842
|
|
2828
2843
|
<code class="ruby"> # with_delimiter(12345678, :delimiter => ".") # => 12.345.678</code>
|
2829
2844
|
</li>
|
2830
2845
|
|
2831
|
-
<li class="never" data-hits="" data-linenumber="
|
2846
|
+
<li class="never" data-hits="" data-linenumber="157">
|
2832
2847
|
|
2833
2848
|
|
2834
2849
|
<code class="ruby"> # with_delimiter(12345678, :separator => ",") # => 12,345,678</code>
|
2835
2850
|
</li>
|
2836
2851
|
|
2837
|
-
<li class="never" data-hits="" data-linenumber="
|
2852
|
+
<li class="never" data-hits="" data-linenumber="158">
|
2838
2853
|
|
2839
2854
|
|
2840
2855
|
<code class="ruby"> # with_delimiter(98765432.98, :delimiter => " ", :separator => ",")</code>
|
2841
2856
|
</li>
|
2842
2857
|
|
2843
|
-
<li class="never" data-hits="" data-linenumber="
|
2858
|
+
<li class="never" data-hits="" data-linenumber="159">
|
2844
2859
|
|
2845
2860
|
|
2846
2861
|
<code class="ruby"> # # => 98 765 432,98</code>
|
2847
2862
|
</li>
|
2848
2863
|
|
2849
|
-
<li class="never" data-hits="" data-linenumber="
|
2864
|
+
<li class="never" data-hits="" data-linenumber="160">
|
2850
2865
|
|
2851
2866
|
|
2852
2867
|
<code class="ruby"> #</code>
|
2853
2868
|
</li>
|
2854
2869
|
|
2855
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2870
|
+
<li class="covered" data-hits="1" data-linenumber="161">
|
2856
2871
|
<span class="hits">1</span>
|
2857
2872
|
|
2858
2873
|
<code class="ruby"> def with_delimiter(number, args = {})</code>
|
2859
2874
|
</li>
|
2860
2875
|
|
2861
|
-
<li class="covered" data-hits="17" data-linenumber="
|
2876
|
+
<li class="covered" data-hits="17" data-linenumber="162">
|
2862
2877
|
<span class="hits">17</span>
|
2863
2878
|
|
2864
2879
|
<code class="ruby"> begin</code>
|
2865
2880
|
</li>
|
2866
2881
|
|
2867
|
-
<li class="covered" data-hits="17" data-linenumber="
|
2882
|
+
<li class="covered" data-hits="17" data-linenumber="163">
|
2868
2883
|
<span class="hits">17</span>
|
2869
2884
|
|
2870
2885
|
<code class="ruby"> Float(number)</code>
|
2871
2886
|
</li>
|
2872
2887
|
|
2873
|
-
<li class="never" data-hits="" data-linenumber="
|
2888
|
+
<li class="never" data-hits="" data-linenumber="164">
|
2874
2889
|
|
2875
2890
|
|
2876
|
-
<code class="ruby"> rescue</code>
|
2891
|
+
<code class="ruby"> rescue StandardError</code>
|
2877
2892
|
</li>
|
2878
2893
|
|
2879
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2894
|
+
<li class="covered" data-hits="1" data-linenumber="165">
|
2880
2895
|
<span class="hits">1</span>
|
2881
2896
|
|
2882
2897
|
<code class="ruby"> return nil</code>
|
2883
2898
|
</li>
|
2884
2899
|
|
2885
|
-
<li class="never" data-hits="" data-linenumber="
|
2900
|
+
<li class="never" data-hits="" data-linenumber="166">
|
2886
2901
|
|
2887
2902
|
|
2888
2903
|
<code class="ruby"> end</code>
|
2889
2904
|
</li>
|
2890
2905
|
|
2891
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2906
|
+
<li class="covered" data-hits="16" data-linenumber="167">
|
2892
2907
|
<span class="hits">16</span>
|
2893
2908
|
|
2894
2909
|
<code class="ruby"> options = BB::Hash.symbolize_keys(args)</code>
|
2895
2910
|
</li>
|
2896
2911
|
|
2897
|
-
<li class="never" data-hits="" data-linenumber="
|
2912
|
+
<li class="never" data-hits="" data-linenumber="168">
|
2898
2913
|
|
2899
2914
|
|
2900
2915
|
<code class="ruby"></code>
|
2901
2916
|
</li>
|
2902
2917
|
|
2903
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2918
|
+
<li class="covered" data-hits="16" data-linenumber="169">
|
2904
2919
|
<span class="hits">16</span>
|
2905
2920
|
|
2906
2921
|
<code class="ruby"> delimiter ||= (options[:delimiter] || ',')</code>
|
2907
2922
|
</li>
|
2908
2923
|
|
2909
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2924
|
+
<li class="covered" data-hits="16" data-linenumber="170">
|
2910
2925
|
<span class="hits">16</span>
|
2911
2926
|
|
2912
2927
|
<code class="ruby"> separator ||= (options[:separator] || '.')</code>
|
2913
2928
|
</li>
|
2914
2929
|
|
2915
|
-
<li class="never" data-hits="" data-linenumber="
|
2930
|
+
<li class="never" data-hits="" data-linenumber="171">
|
2916
2931
|
|
2917
2932
|
|
2918
2933
|
<code class="ruby"></code>
|
2919
2934
|
</li>
|
2920
2935
|
|
2921
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2936
|
+
<li class="covered" data-hits="16" data-linenumber="172">
|
2922
2937
|
<span class="hits">16</span>
|
2923
2938
|
|
2924
2939
|
<code class="ruby"> begin</code>
|
2925
2940
|
</li>
|
2926
2941
|
|
2927
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2942
|
+
<li class="covered" data-hits="16" data-linenumber="173">
|
2928
2943
|
<span class="hits">16</span>
|
2929
2944
|
|
2930
2945
|
<code class="ruby"> parts = number.to_s.split('.')</code>
|
2931
2946
|
</li>
|
2932
2947
|
|
2933
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2948
|
+
<li class="covered" data-hits="16" data-linenumber="174">
|
2934
2949
|
<span class="hits">16</span>
|
2935
2950
|
|
2936
2951
|
<code class="ruby"> parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")</code>
|
2937
2952
|
</li>
|
2938
2953
|
|
2939
|
-
<li class="covered" data-hits="16" data-linenumber="
|
2954
|
+
<li class="covered" data-hits="16" data-linenumber="175">
|
2940
2955
|
<span class="hits">16</span>
|
2941
2956
|
|
2942
2957
|
<code class="ruby"> parts.join(separator)</code>
|
2943
2958
|
</li>
|
2944
2959
|
|
2945
|
-
<li class="
|
2946
|
-
|
2960
|
+
<li class="covered" data-hits="1" data-linenumber="176">
|
2961
|
+
<span class="hits">1</span>
|
2947
2962
|
|
2948
|
-
<code class="ruby"> rescue</code>
|
2963
|
+
<code class="ruby"> rescue StandardError</code>
|
2949
2964
|
</li>
|
2950
2965
|
|
2951
|
-
<li class="covered" data-hits="1" data-linenumber="
|
2966
|
+
<li class="covered" data-hits="1" data-linenumber="177">
|
2952
2967
|
<span class="hits">1</span>
|
2953
2968
|
|
2954
2969
|
<code class="ruby"> number</code>
|
2955
2970
|
</li>
|
2956
2971
|
|
2957
|
-
<li class="never" data-hits="" data-linenumber="
|
2972
|
+
<li class="never" data-hits="" data-linenumber="178">
|
2958
2973
|
|
2959
2974
|
|
2960
2975
|
<code class="ruby"> end</code>
|
2961
2976
|
</li>
|
2962
2977
|
|
2963
|
-
<li class="never" data-hits="" data-linenumber="
|
2978
|
+
<li class="never" data-hits="" data-linenumber="179">
|
2964
2979
|
|
2965
2980
|
|
2966
2981
|
<code class="ruby"> end</code>
|
2967
2982
|
</li>
|
2968
2983
|
|
2969
|
-
<li class="never" data-hits="" data-linenumber="
|
2984
|
+
<li class="never" data-hits="" data-linenumber="180">
|
2970
2985
|
|
2971
2986
|
|
2972
2987
|
<code class="ruby"> end</code>
|
2973
2988
|
</li>
|
2974
2989
|
|
2975
|
-
<li class="never" data-hits="" data-linenumber="
|
2990
|
+
<li class="never" data-hits="" data-linenumber="181">
|
2976
2991
|
|
2977
2992
|
|
2978
2993
|
<code class="ruby"> end</code>
|
2979
2994
|
</li>
|
2980
2995
|
|
2981
|
-
<li class="never" data-hits="" data-linenumber="
|
2996
|
+
<li class="never" data-hits="" data-linenumber="182">
|
2982
2997
|
|
2983
2998
|
|
2984
2999
|
<code class="ruby">end</code>
|
@@ -2987,6 +3002,7 @@
|
|
2987
3002
|
</ol>
|
2988
3003
|
</pre>
|
2989
3004
|
</div>
|
3005
|
+
|
2990
3006
|
|
2991
3007
|
<div class="source_table" id="1503164dbfa2b2b494fd2100a9b38b04be306a6e">
|
2992
3008
|
<div class="header">
|
@@ -3008,97 +3024,103 @@
|
|
3008
3024
|
<code class="ruby"># frozen_string_literal: true</code>
|
3009
3025
|
</li>
|
3010
3026
|
|
3011
|
-
<li class="
|
3027
|
+
<li class="never" data-hits="" data-linenumber="2">
|
3028
|
+
|
3029
|
+
|
3030
|
+
<code class="ruby"></code>
|
3031
|
+
</li>
|
3032
|
+
|
3033
|
+
<li class="covered" data-hits="1" data-linenumber="3">
|
3012
3034
|
<span class="hits">1</span>
|
3013
3035
|
|
3014
3036
|
<code class="ruby">module BB</code>
|
3015
3037
|
</li>
|
3016
3038
|
|
3017
|
-
<li class="never" data-hits="" data-linenumber="
|
3039
|
+
<li class="never" data-hits="" data-linenumber="4">
|
3018
3040
|
|
3019
3041
|
|
3020
3042
|
<code class="ruby"> # String utilities.</code>
|
3021
3043
|
</li>
|
3022
3044
|
|
3023
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3045
|
+
<li class="covered" data-hits="1" data-linenumber="5">
|
3024
3046
|
<span class="hits">1</span>
|
3025
3047
|
|
3026
3048
|
<code class="ruby"> module String</code>
|
3027
3049
|
</li>
|
3028
3050
|
|
3029
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3051
|
+
<li class="covered" data-hits="1" data-linenumber="6">
|
3030
3052
|
<span class="hits">1</span>
|
3031
3053
|
|
3032
3054
|
<code class="ruby"> class << self</code>
|
3033
3055
|
</li>
|
3034
3056
|
|
3035
|
-
<li class="never" data-hits="" data-linenumber="
|
3057
|
+
<li class="never" data-hits="" data-linenumber="7">
|
3036
3058
|
|
3037
3059
|
|
3038
3060
|
<code class="ruby"> # Strip ANSI escape sequences from String.</code>
|
3039
3061
|
</li>
|
3040
3062
|
|
3041
|
-
<li class="never" data-hits="" data-linenumber="
|
3063
|
+
<li class="never" data-hits="" data-linenumber="8">
|
3042
3064
|
|
3043
3065
|
|
3044
3066
|
<code class="ruby"> #</code>
|
3045
3067
|
</li>
|
3046
3068
|
|
3047
|
-
<li class="never" data-hits="" data-linenumber="
|
3069
|
+
<li class="never" data-hits="" data-linenumber="9">
|
3048
3070
|
|
3049
3071
|
|
3050
3072
|
<code class="ruby"> # @param [String] text Input string (dirty)</code>
|
3051
3073
|
</li>
|
3052
3074
|
|
3053
|
-
<li class="never" data-hits="" data-linenumber="
|
3075
|
+
<li class="never" data-hits="" data-linenumber="10">
|
3054
3076
|
|
3055
3077
|
|
3056
3078
|
<code class="ruby"> # @return [String] Output string (cleaned)</code>
|
3057
3079
|
</li>
|
3058
3080
|
|
3059
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3081
|
+
<li class="covered" data-hits="1" data-linenumber="11">
|
3060
3082
|
<span class="hits">1</span>
|
3061
3083
|
|
3062
3084
|
<code class="ruby"> def strip_ansi(text)</code>
|
3063
3085
|
</li>
|
3064
3086
|
|
3065
|
-
<li class="never" data-hits="" data-linenumber="
|
3087
|
+
<li class="never" data-hits="" data-linenumber="12">
|
3066
3088
|
|
3067
3089
|
|
3068
3090
|
<code class="ruby"> text.gsub(/\x1b(\[|\(|\))[;?0-9]*[0-9A-Za-z]/, '')</code>
|
3069
3091
|
</li>
|
3070
3092
|
|
3071
|
-
<li class="never" data-hits="" data-linenumber="
|
3093
|
+
<li class="never" data-hits="" data-linenumber="13">
|
3072
3094
|
|
3073
3095
|
|
3074
3096
|
<code class="ruby"> .gsub(/\x1b(\[|\(|\))[;?0-9]*[0-9A-Za-z]/, '')</code>
|
3075
3097
|
</li>
|
3076
3098
|
|
3077
|
-
<li class="covered" data-hits="1" data-linenumber="
|
3099
|
+
<li class="covered" data-hits="1" data-linenumber="14">
|
3078
3100
|
<span class="hits">1</span>
|
3079
3101
|
|
3080
3102
|
<code class="ruby"> .gsub(/(\x03|\x1a)/, '')</code>
|
3081
3103
|
</li>
|
3082
3104
|
|
3083
|
-
<li class="never" data-hits="" data-linenumber="
|
3105
|
+
<li class="never" data-hits="" data-linenumber="15">
|
3084
3106
|
|
3085
3107
|
|
3086
3108
|
<code class="ruby"> end</code>
|
3087
3109
|
</li>
|
3088
3110
|
|
3089
|
-
<li class="never" data-hits="" data-linenumber="
|
3111
|
+
<li class="never" data-hits="" data-linenumber="16">
|
3090
3112
|
|
3091
3113
|
|
3092
3114
|
<code class="ruby"> end</code>
|
3093
3115
|
</li>
|
3094
3116
|
|
3095
|
-
<li class="never" data-hits="" data-linenumber="
|
3117
|
+
<li class="never" data-hits="" data-linenumber="17">
|
3096
3118
|
|
3097
3119
|
|
3098
3120
|
<code class="ruby"> end</code>
|
3099
3121
|
</li>
|
3100
3122
|
|
3101
|
-
<li class="never" data-hits="" data-linenumber="
|
3123
|
+
<li class="never" data-hits="" data-linenumber="18">
|
3102
3124
|
|
3103
3125
|
|
3104
3126
|
<code class="ruby">end</code>
|
@@ -3107,14 +3129,15 @@
|
|
3107
3129
|
</ol>
|
3108
3130
|
</pre>
|
3109
3131
|
</div>
|
3132
|
+
|
3110
3133
|
|
3111
3134
|
<div class="source_table" id="ef107940f0bb318164d36d5de1cd48192edb65f2">
|
3112
3135
|
<div class="header">
|
3113
3136
|
<h3>lib/blackbox/unix.rb</h3>
|
3114
|
-
<h4><span class="red">45.
|
3137
|
+
<h4><span class="red">45.07 %</span> covered</h4>
|
3115
3138
|
<div>
|
3116
|
-
<b>
|
3117
|
-
<span class="green"><b>
|
3139
|
+
<b>71</b> relevant lines.
|
3140
|
+
<span class="green"><b>32</b> lines covered</span> and
|
3118
3141
|
<span class="red"><b>39</b> lines missed.</span>
|
3119
3142
|
</div>
|
3120
3143
|
</div>
|
@@ -3128,16 +3151,16 @@
|
|
3128
3151
|
<code class="ruby"># frozen_string_literal: true</code>
|
3129
3152
|
</li>
|
3130
3153
|
|
3131
|
-
<li class="
|
3132
|
-
<span class="hits">1</span>
|
3154
|
+
<li class="never" data-hits="" data-linenumber="2">
|
3133
3155
|
|
3134
|
-
|
3156
|
+
|
3157
|
+
<code class="ruby"></code>
|
3135
3158
|
</li>
|
3136
3159
|
|
3137
3160
|
<li class="covered" data-hits="1" data-linenumber="3">
|
3138
3161
|
<span class="hits">1</span>
|
3139
3162
|
|
3140
|
-
<code class="ruby">require '
|
3163
|
+
<code class="ruby">require 'lolcat/lol'</code>
|
3141
3164
|
</li>
|
3142
3165
|
|
3143
3166
|
<li class="covered" data-hits="1" data-linenumber="4">
|
@@ -3398,7 +3421,7 @@
|
|
3398
3421
|
<code class="ruby"> @minispin_last_char_at = Time.now</code>
|
3399
3422
|
</li>
|
3400
3423
|
|
3401
|
-
<li class="
|
3424
|
+
<li class="missed" data-hits="0" data-linenumber="47">
|
3402
3425
|
|
3403
3426
|
|
3404
3427
|
<code class="ruby"> @tspin ||= Thread.new do</code>
|
@@ -3425,7 +3448,7 @@
|
|
3425
3448
|
<li class="missed" data-hits="0" data-linenumber="51">
|
3426
3449
|
|
3427
3450
|
|
3428
|
-
<code class="ruby"> if
|
3451
|
+
<code class="ruby"> if Time.now - @minispin_last_char_at < 0.23 || @minispin_disable</code>
|
3429
3452
|
</li>
|
3430
3453
|
|
3431
3454
|
<li class="missed" data-hits="0" data-linenumber="52">
|
@@ -3518,7 +3541,7 @@
|
|
3518
3541
|
<code class="ruby"> end</code>
|
3519
3542
|
</li>
|
3520
3543
|
|
3521
|
-
<li class="
|
3544
|
+
<li class="never" data-hits="" data-linenumber="67">
|
3522
3545
|
|
3523
3546
|
|
3524
3547
|
<code class="ruby"> end</code>
|
@@ -3683,7 +3706,7 @@
|
|
3683
3706
|
<li class="covered" data-hits="4" data-linenumber="94">
|
3684
3707
|
<span class="hits">4</span>
|
3685
3708
|
|
3686
|
-
<code class="ruby"> opts[:spinner]
|
3709
|
+
<code class="ruby"> opts[:spinner]&.call(true)</code>
|
3687
3710
|
</li>
|
3688
3711
|
|
3689
3712
|
<li class="covered" data-hits="4" data-linenumber="95">
|
@@ -3695,13 +3718,13 @@
|
|
3695
3718
|
<li class="covered" data-hits="4" data-linenumber="96">
|
3696
3719
|
<span class="hits">4</span>
|
3697
3720
|
|
3698
|
-
<code class="ruby"> opts[:spinner]
|
3721
|
+
<code class="ruby"> opts[:spinner]&.call(false)</code>
|
3699
3722
|
</li>
|
3700
3723
|
|
3701
3724
|
<li class="covered" data-hits="4" data-linenumber="97">
|
3702
3725
|
<span class="hits">4</span>
|
3703
3726
|
|
3704
|
-
<code class="ruby"> color =
|
3727
|
+
<code class="ruby"> color = status.exitstatus == 0 ? :green : :red</code>
|
3705
3728
|
</li>
|
3706
3729
|
|
3707
3730
|
<li class="covered" data-hits="4" data-linenumber="98">
|
@@ -3803,6 +3826,7 @@
|
|
3803
3826
|
</ol>
|
3804
3827
|
</pre>
|
3805
3828
|
</div>
|
3829
|
+
|
3806
3830
|
|
3807
3831
|
</div>
|
3808
3832
|
</div>
|