ensurance 0.1.26 → 0.1.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: abc1835e5b3de9739e9b9251e18bcb537147de9cdcba75b515f49c003081217c
4
- data.tar.gz: a74ed354554f1178716eea0cbc5acab7045ef4bacc6fdd3a18c60b98799c3b75
3
+ metadata.gz: cb3462b1b10a12355e59ff4b7709e6a439d9114b3c35d056e72ff49449f1c30f
4
+ data.tar.gz: 3921e9484383934f097da4d9184162f66ecfef36da878ccf7b3b7fcf3f9589e3
5
5
  SHA512:
6
- metadata.gz: db7c657713d8a5c1aa5358d680b9cee04e7794932d544166c24d24a1fd209d712328c386470612e37205ee44448ceee9d87d5bb7a48f10c992351502a0d6f209
7
- data.tar.gz: bfcbd5b6ea5a048e935cc0b2770a025ecb29380fbe153ea417e8d525fba4ea0dd7338ce0c6ee0e05e1ed3eae918aca15e8a769348bf4891117124ca4672ab3d4
6
+ metadata.gz: 4d8d760fb541bb58e0d12271bd9cb14cea799c59d6e8b1c035453fedf65b353e819df0de9318cfb628f075db6da91e8149985737baec27ed286bd82ce4cbb7e4
7
+ data.tar.gz: 7ac86524e006719d7843ccaf559c96f810f2f150ff74db549a6ea5b02032299e194d21a12a10ec239ae23040f7aa90a4458f12a8fc24d7248c3c7ab62233da69
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 2.7.6
data/CHANGELOG.md CHANGED
@@ -1,8 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.27
4
+ - cleanup Time.ensure
3
5
 
4
6
  ## 1.0.26
5
- - auto handle milli and microseconds integers sent to Time.ensure
7
+ - add handling of milliseconds to Time.ensure
6
8
 
7
9
  ## 1.0.25
8
10
  - have to use a string comparison for final result `1 != "1"`
data/Gemfile.lock CHANGED
@@ -1,47 +1,50 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ensurance (0.1.26)
4
+ ensurance (0.1.27)
5
5
  activesupport (>= 3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (7.0.2.4)
11
- activesupport (= 7.0.2.4)
12
- activerecord (7.0.2.4)
13
- activemodel (= 7.0.2.4)
14
- activesupport (= 7.0.2.4)
15
- activesupport (7.0.2.4)
10
+ activemodel (6.0.3)
11
+ activesupport (= 6.0.3)
12
+ activerecord (6.0.3)
13
+ activemodel (= 6.0.3)
14
+ activesupport (= 6.0.3)
15
+ activesupport (6.0.3)
16
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 1.6, < 2)
18
- minitest (>= 5.1)
19
- tzinfo (~> 2.0)
20
- awesome_print (1.9.2)
21
- concurrent-ruby (1.1.10)
22
- diff-lcs (1.5.0)
23
- globalid (1.0.0)
24
- activesupport (>= 5.0)
25
- i18n (1.10.0)
17
+ i18n (>= 0.7, < 2)
18
+ minitest (~> 5.1)
19
+ tzinfo (~> 1.1)
20
+ zeitwerk (~> 2.2, >= 2.2.2)
21
+ awesome_print (1.8.0)
22
+ concurrent-ruby (1.1.6)
23
+ diff-lcs (1.3)
24
+ globalid (0.4.2)
25
+ activesupport (>= 4.2.0)
26
+ i18n (1.8.2)
26
27
  concurrent-ruby (~> 1.0)
27
- minitest (5.15.0)
28
- rake (13.0.6)
29
- rspec (3.11.0)
30
- rspec-core (~> 3.11.0)
31
- rspec-expectations (~> 3.11.0)
32
- rspec-mocks (~> 3.11.0)
33
- rspec-core (3.11.0)
34
- rspec-support (~> 3.11.0)
35
- rspec-expectations (3.11.0)
28
+ minitest (5.14.0)
29
+ rake (13.0.1)
30
+ rspec (3.9.0)
31
+ rspec-core (~> 3.9.0)
32
+ rspec-expectations (~> 3.9.0)
33
+ rspec-mocks (~> 3.9.0)
34
+ rspec-core (3.9.2)
35
+ rspec-support (~> 3.9.3)
36
+ rspec-expectations (3.9.1)
36
37
  diff-lcs (>= 1.2.0, < 2.0)
37
- rspec-support (~> 3.11.0)
38
- rspec-mocks (3.11.1)
38
+ rspec-support (~> 3.9.0)
39
+ rspec-mocks (3.9.1)
39
40
  diff-lcs (>= 1.2.0, < 2.0)
40
- rspec-support (~> 3.11.0)
41
- rspec-support (3.11.0)
41
+ rspec-support (~> 3.9.0)
42
+ rspec-support (3.9.3)
42
43
  sqlite3 (1.4.2)
43
- tzinfo (2.0.4)
44
- concurrent-ruby (~> 1.0)
44
+ thread_safe (0.3.6)
45
+ tzinfo (1.2.7)
46
+ thread_safe (~> 0.1)
47
+ zeitwerk (2.3.0)
45
48
 
46
49
  PLATFORMS
47
50
  ruby
@@ -14,25 +14,27 @@ module Ensurance
14
14
  ::Time.zone ||= "UTC"
15
15
 
16
16
  case thing.class.name
17
- when 'NilClass'
17
+ when 'NilClass', 'Time'
18
18
  thing
19
- when 'Time'
20
- thing
21
- when 'Date'
22
- thing.beginning_of_day
23
- when 'Integer', 'Float'
24
- if thing.to_i.to_s == thing.to_s
25
- dec = thing.to_s.size - 10
26
- thing /= (10 ** dec).to_f if dec > 0
19
+ when "Integer"
20
+ if thing < 10 ** 10
21
+ ::Time.zone.at(thing)
22
+ else # assume millis
23
+ ::Time.zone.at(thing / 1000.0)
27
24
  end
25
+ when "Float"
28
26
  ::Time.zone.at(thing)
29
27
  when 'String'
30
- if thing.to_i.to_s == thing
31
- ::Time.ensure(thing.to_i)
32
- elsif thing.to_f.to_s == thing
33
- ::Time.zone.at(thing.to_f)
28
+ if thing.match?(/\d{2}:\d{2}/) || thing.match?(/^\d{4}-\d{2}-\d{2}$/)
29
+ ::Time.parse(thing)
30
+ elsif thing.match?(/^\d+\.\d+$/)
31
+ self.ensure(thing.to_f)
32
+ elsif thing.match?(/^\d+$/)
33
+ self.ensure(thing.to_i)
34
+ elsif thing.blank?
35
+ nil
34
36
  else
35
- ::Time.zone.parse(thing)
37
+ raise ArgumentError, "Cannot convert #{thing.class}/\"#{thing}\" to Time"
36
38
  end
37
39
  else
38
40
  if thing.respond_to?(:to_time)
@@ -43,12 +45,10 @@ module Ensurance
43
45
  end
44
46
  end
45
47
 
46
- def ensure!(_thing)
47
- def ensure!(thing)
48
- result = self.ensure(thing)
49
- raise ArgumentError, "Cannot Time.ensure(#{thing})" unless result
50
- result
51
- end
48
+ def ensure!(thing)
49
+ result = self.ensure(thing)
50
+ raise ArgumentError, "Cannot Time.ensure(#{thing})" unless result
51
+ result
52
52
  end
53
53
  end
54
54
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Ensurance
2
- VERSION = '0.1.26'.freeze
4
+ VERSION = '0.1.27'
3
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ensurance
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.26
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sharpe
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-04-27 00:00:00.000000000 Z
11
+ date: 2022-09-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -149,6 +149,7 @@ extra_rdoc_files: []
149
149
  files:
150
150
  - ".gitignore"
151
151
  - ".rspec"
152
+ - ".tool-versions"
152
153
  - ".travis.yml"
153
154
  - CHANGELOG.md
154
155
  - Gemfile
@@ -170,7 +171,7 @@ homepage: https://github.com/bsharpe/ensurance
170
171
  licenses:
171
172
  - MIT
172
173
  metadata: {}
173
- post_install_message:
174
+ post_install_message:
174
175
  rdoc_options: []
175
176
  require_paths:
176
177
  - lib
@@ -185,8 +186,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
186
  - !ruby/object:Gem::Version
186
187
  version: '0'
187
188
  requirements: []
188
- rubygems_version: 3.1.6
189
- signing_key:
189
+ rubygems_version: 3.3.15
190
+ signing_key:
190
191
  specification_version: 4
191
192
  summary: Add ability to ensure ActiveRecord models
192
193
  test_files: []