blackbox 4.0.3 → 4.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'blackbox/version'
3
4
  require 'blackbox/crypto'
4
5
  require 'blackbox/string'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'openssl'
3
4
  require 'base64'
4
5
  require 'chronic_duration'
@@ -41,7 +42,7 @@ module BB
41
42
  cipher.key = key
42
43
  if iv.nil?
43
44
  iv_len = ciphertext.slice!(0).unpack('C')[0]
44
- cipher.iv = ciphertext.slice!(0..iv_len - 1) unless 0 == iv_len
45
+ cipher.iv = ciphertext.slice!(0..iv_len - 1) unless iv_len == 0
45
46
  else
46
47
  cipher.iv = iv
47
48
  end
@@ -127,9 +128,7 @@ module BB
127
128
  valid_until, op, *args = body.split("\x00")
128
129
  valid_until = valid_until.unpack('l<')[0]
129
130
  expired = Time.now.to_i > valid_until
130
- if expired && !force
131
- raise ArgumentError, "Token expired at #{Time.at(valid_until)} (#{ChronicDuration.output(Time.now.to_i - valid_until)} ago)"
132
- end
131
+ raise ArgumentError, "Token expired at #{Time.at(valid_until)} (#{ChronicDuration.output(Time.now.to_i - valid_until)} ago)" if expired && !force
133
132
  { valid_until: valid_until,
134
133
  op: op,
135
134
  args: args,
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'versionomy'
3
4
  module BB
4
5
  # Gem utilities.
@@ -59,7 +60,7 @@ module BB
59
60
  last_check_at = nil
60
61
  begin
61
62
  last_check_at = File.stat(statefile_path).mtime
62
- rescue
63
+ rescue StandardError
63
64
  last_check_at = Time.at(0)
64
65
  end
65
66
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module BB
3
4
  # Hash utilities.
4
5
  module Hash
@@ -1,11 +1,12 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'blackbox/hash'
3
4
 
4
5
  module BB
5
6
  # String utilities.
6
7
  module Number
7
8
  class << self
8
- STORAGE_UNITS = %w(byte k M G T P E Z Y).freeze
9
+ STORAGE_UNITS = %w[byte k M G T P E Z Y].freeze
9
10
 
10
11
  ##
11
12
  # Formats the bytes in +number+ into a more understandable representation
@@ -46,7 +47,7 @@ module BB
46
47
  def to_human_size(number, args = {})
47
48
  begin
48
49
  Float(number)
49
- rescue
50
+ rescue StandardError
50
51
  return nil
51
52
  end
52
53
 
@@ -77,7 +78,7 @@ module BB
77
78
  delimiter: delimiter).sub(/(#{escaped_separator})(\d*[1-9])?0+\z/, '\1\2').sub(/#{escaped_separator}\z/, '')
78
79
  storage_units_format.gsub(/%n/, formatted_number).gsub(/%u/, unit)
79
80
  end
80
- rescue
81
+ rescue StandardError
81
82
  number
82
83
  end
83
84
  end
@@ -112,7 +113,7 @@ module BB
112
113
  def with_precision(number, args)
113
114
  begin
114
115
  Float(number)
115
- rescue
116
+ rescue StandardError
116
117
  return nil
117
118
  end
118
119
 
@@ -127,7 +128,7 @@ module BB
127
128
  with_delimiter("%01.#{precision}f" % rounded_number,
128
129
  separator: separator,
129
130
  delimiter: delimiter)
130
- rescue
131
+ rescue StandardError
131
132
  number
132
133
  end
133
134
  end
@@ -160,7 +161,7 @@ module BB
160
161
  def with_delimiter(number, args = {})
161
162
  begin
162
163
  Float(number)
163
- rescue
164
+ rescue StandardError
164
165
  return nil
165
166
  end
166
167
  options = BB::Hash.symbolize_keys(args)
@@ -172,7 +173,7 @@ module BB
172
173
  parts = number.to_s.split('.')
173
174
  parts[0].gsub!(/(\d)(?=(\d\d\d)+(?!\d))/, "\\1#{delimiter}")
174
175
  parts.join(separator)
175
- rescue
176
+ rescue StandardError
176
177
  number
177
178
  end
178
179
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module BB
3
4
  # String utilities.
4
5
  module String
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'lolcat/lol'
3
- require 'thread'
4
4
  require 'open3'
5
5
  require 'pty'
6
6
  require 'rainbow/ext/string'
@@ -48,7 +48,7 @@ module BB
48
48
  i = 0
49
49
  loop do
50
50
  break if @minispin_last_char_at == :end
51
- if 0.23 > Time.now - @minispin_last_char_at || @minispin_disable
51
+ if Time.now - @minispin_last_char_at < 0.23 || @minispin_disable
52
52
  sleep 0.1
53
53
  next
54
54
  end
@@ -91,10 +91,10 @@ module BB
91
91
  @tspin = nil
92
92
  end
93
93
  else
94
- opts[:spinner].call(true) if opts[:spinner]
94
+ opts[:spinner]&.call(true)
95
95
  output, status = Open3.capture2e(line)
96
- opts[:spinner].call(false) if opts[:spinner]
97
- color = (status.exitstatus == 0) ? :green : :red
96
+ opts[:spinner]&.call(false)
97
+ color = status.exitstatus == 0 ? :green : :red
98
98
  if status.exitstatus != 0 || !opts[:quiet]
99
99
  puts "\n> ".color(color) + line.color(:black).bright
100
100
  puts output
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module BB
3
- VERSION = '4.0.3'
4
+ VERSION = '4.0.4'
4
5
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'blackbox/version'
4
5
 
@@ -1,17 +1,18 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'blackbox/crypto'
4
5
  require 'base64'
5
6
 
6
- OPENSSL_CIPHERS = %w(aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc) +
7
- %w(aes-256-ecb bf bf-cbc bf-cfb) +
8
- %w(bf-ecb bf-ofb cast cast-cbc cast5-cbc) +
9
- %w(cast5-cfb cast5-ecb cast5-ofb des des-cbc) +
10
- %w(des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb) +
11
- %w(des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb) +
12
- %w(des-ofb des3 desx rc2 rc2-40-cbc) +
13
- %w(rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb) +
14
- %w(rc4 rc4-40)
7
+ OPENSSL_CIPHERS = %w[aes-128-cbc aes-128-ecb aes-192-cbc aes-192-ecb aes-256-cbc] +
8
+ %w[aes-256-ecb bf bf-cbc bf-cfb] +
9
+ %w[bf-ecb bf-ofb cast cast-cbc cast5-cbc] +
10
+ %w[cast5-cfb cast5-ecb cast5-ofb des des-cbc] +
11
+ %w[des-cfb des-ecb des-ede des-ede-cbc des-ede-cfb] +
12
+ %w[des-ede-ofb des-ede3 des-ede3-cbc des-ede3-cfb des-ede3-ofb] +
13
+ %w[des-ofb des3 desx rc2 rc2-40-cbc] +
14
+ %w[rc2-64-cbc rc2-cbc rc2-cfb rc2-ecb rc2-ofb] +
15
+ %w[rc4 rc4-40]
15
16
 
16
17
  CIPHER_KEY_IV_SIZE = {
17
18
  'aes-128-cbc': [16, 16],
@@ -65,9 +66,9 @@ TEST_TEXT_LONG = '[LONG_TEST]' * 8192
65
66
  describe BB::Crypto do
66
67
  OPENSSL_CIPHERS.each do |cipher|
67
68
  describe cipher.to_s do
68
- [[:encrypt, :decrypt],
69
- [:encrypt_base64, :decrypt_base64],
70
- [:encrypt_urlsafe_base64, :decrypt_urlsafe_base64]].each do |e|
69
+ [%i[encrypt decrypt],
70
+ %i[encrypt_base64 decrypt_base64],
71
+ %i[encrypt_urlsafe_base64 decrypt_urlsafe_base64]].each do |e|
71
72
  m_enc, m_dec = e
72
73
  describe "#{m_enc}, #{m_dec}" do
73
74
  it 'can decrypt what it encrypted (short string, random iv)' do
@@ -144,7 +145,7 @@ describe BB::Crypto do
144
145
  it 'decodes all elements of token payload as Strings' do
145
146
  v = subject.class.parse(subject.class.create('foo', ['a', 2, :c], 5, test_key), test_key)
146
147
  expect(v[:op]).to eq('foo')
147
- expect(v[:args]).to eq(%w(a 2 c))
148
+ expect(v[:args]).to eq(%w[a 2 c])
148
149
  expect(v[:expired]).to eq(false)
149
150
  end
150
151
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'timecop'
4
5
  require 'blackbox/gem'
@@ -44,7 +45,6 @@ describe BB::Gem do
44
45
  expect(retval).to include(
45
46
  next_check_for_update: Time.parse('2015-10-22 00:00'),
46
47
  gem_latest_version: :unknown
47
-
48
48
  )
49
49
  end
50
50
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'blackbox/hash'
4
5
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'blackbox/number'
4
5
 
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'simplecov'
3
4
  SimpleCov.start do
4
5
  add_filter '/spec/'
5
6
  end
6
7
 
7
- $LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
8
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__)
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'blackbox/string'
4
5
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'spec_helper'
3
4
  require 'blackbox/unix'
4
5
 
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blackbox
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Moe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-27 00:00:00.000000000 Z
11
+ date: 2018-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rake
14
+ name: bump
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
@@ -25,7 +25,7 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rspec
28
+ name: fuubar
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: simplecov
42
+ name: guard
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -53,7 +53,7 @@ dependencies:
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: redcarpet
56
+ name: guard-rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
@@ -67,7 +67,7 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
- name: yard
70
+ name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
@@ -81,7 +81,7 @@ dependencies:
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
- name: bump
84
+ name: redcarpet
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
87
  - - ">="
@@ -95,7 +95,7 @@ dependencies:
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
- name: guard
98
+ name: rspec
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - ">="
@@ -109,7 +109,7 @@ dependencies:
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
- name: guard-rspec
112
+ name: rubocop
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
115
  - - ">="
@@ -123,7 +123,7 @@ dependencies:
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
- name: fuubar
126
+ name: simplecov
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -151,7 +151,7 @@ dependencies:
151
151
  - !ruby/object:Gem::Version
152
152
  version: '0'
153
153
  - !ruby/object:Gem::Dependency
154
- name: rubocop
154
+ name: yard
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
157
  - - ">="
@@ -165,61 +165,61 @@ dependencies:
165
165
  - !ruby/object:Gem::Version
166
166
  version: '0'
167
167
  - !ruby/object:Gem::Dependency
168
- name: gem_update_checker
168
+ name: chronic_duration
169
169
  requirement: !ruby/object:Gem::Requirement
170
170
  requirements:
171
171
  - - "~>"
172
172
  - !ruby/object:Gem::Version
173
- version: 0.2.0
173
+ version: 0.10.6
174
174
  type: :runtime
175
175
  prerelease: false
176
176
  version_requirements: !ruby/object:Gem::Requirement
177
177
  requirements:
178
178
  - - "~>"
179
179
  - !ruby/object:Gem::Version
180
- version: 0.2.0
180
+ version: 0.10.6
181
181
  - !ruby/object:Gem::Dependency
182
- name: lolcat
182
+ name: gem_update_checker
183
183
  requirement: !ruby/object:Gem::Requirement
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: 90.8.8
187
+ version: 0.2.0
188
188
  type: :runtime
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: 90.8.8
194
+ version: 0.2.0
195
195
  - !ruby/object:Gem::Dependency
196
- name: rainbow
196
+ name: lolcat
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - "~>"
200
200
  - !ruby/object:Gem::Version
201
- version: 2.2.0
201
+ version: 90.8.8
202
202
  type: :runtime
203
203
  prerelease: false
204
204
  version_requirements: !ruby/object:Gem::Requirement
205
205
  requirements:
206
206
  - - "~>"
207
207
  - !ruby/object:Gem::Version
208
- version: 2.2.0
208
+ version: 90.8.8
209
209
  - !ruby/object:Gem::Dependency
210
- name: chronic_duration
210
+ name: rainbow
211
211
  requirement: !ruby/object:Gem::Requirement
212
212
  requirements:
213
213
  - - "~>"
214
214
  - !ruby/object:Gem::Version
215
- version: 0.10.6
215
+ version: 3.0.0
216
216
  type: :runtime
217
217
  prerelease: false
218
218
  version_requirements: !ruby/object:Gem::Requirement
219
219
  requirements:
220
220
  - - "~>"
221
221
  - !ruby/object:Gem::Version
222
- version: 0.10.6
222
+ version: 3.0.0
223
223
  - !ruby/object:Gem::Dependency
224
224
  name: versionomy
225
225
  requirement: !ruby/object:Gem::Requirement
@@ -380,7 +380,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
380
380
  version: '0'
381
381
  requirements: []
382
382
  rubyforge_project:
383
- rubygems_version: 2.6.8
383
+ rubygems_version: 2.7.6
384
384
  signing_key:
385
385
  specification_version: 4
386
386
  summary: Various little helpers
@@ -393,4 +393,3 @@ test_files:
393
393
  - spec/spec_helper.rb
394
394
  - spec/string_spec.rb
395
395
  - spec/unix_spec.rb
396
- has_rdoc: