ensurance 0.1.25 → 0.1.27

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4cc1399886201a771dd9b8ccb23d7171ce52a150507221c5b68c6ef9be9407a1
4
- data.tar.gz: 96fd7d80dd6cd4bc77547fff44c4974cfe7a2374bc2a41b21e52d2c7ec4d18b4
3
+ metadata.gz: cb3462b1b10a12355e59ff4b7709e6a439d9114b3c35d056e72ff49449f1c30f
4
+ data.tar.gz: 3921e9484383934f097da4d9184162f66ecfef36da878ccf7b3b7fcf3f9589e3
5
5
  SHA512:
6
- metadata.gz: ca52542260cfe20ce9683d8e6e33dfb81e043096b64e0340011fba85a7064a2dc3f34ec498050c98e6a82dd332eddefd9f813b5907db13d4f16333a9dd77e192
7
- data.tar.gz: 878fb3d7b120d282c6fa4f94af2969d43d0459b1b370e3472da9bcfc5164a0f2e22ba5b6f5f312a613424eb17b1d94968ba6e31674d619d8fe209d9a0e21091f
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,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 1.0.27
4
+ - cleanup Time.ensure
5
+
6
+ ## 1.0.26
7
+ - add handling of milliseconds to Time.ensure
8
+
3
9
  ## 1.0.25
4
10
  - have to use a string comparison for final result `1 != "1"`
5
11
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ensurance (0.1.25)
4
+ ensurance (0.1.27)
5
5
  activesupport (>= 3)
6
6
 
7
7
  GEM
@@ -14,21 +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'
19
+ when "Integer"
20
+ if thing < 10 ** 10
21
+ ::Time.zone.at(thing)
22
+ else # assume millis
23
+ ::Time.zone.at(thing / 1000.0)
24
+ end
25
+ when "Float"
24
26
  ::Time.zone.at(thing)
25
27
  when 'String'
26
- if thing.to_i.to_s == thing
27
- ::Time.zone.at(thing.to_i)
28
- elsif thing.to_f.to_s == thing
29
- ::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
30
36
  else
31
- ::Time.zone.parse(thing)
37
+ raise ArgumentError, "Cannot convert #{thing.class}/\"#{thing}\" to Time"
32
38
  end
33
39
  else
34
40
  if thing.respond_to?(:to_time)
@@ -39,12 +45,10 @@ module Ensurance
39
45
  end
40
46
  end
41
47
 
42
- def ensure!(_thing)
43
- def ensure!(thing)
44
- result = self.ensure(thing)
45
- raise ArgumentError, "Cannot Time.ensure(#{thing})" unless result
46
- result
47
- end
48
+ def ensure!(thing)
49
+ result = self.ensure(thing)
50
+ raise ArgumentError, "Cannot Time.ensure(#{thing})" unless result
51
+ result
48
52
  end
49
53
  end
50
54
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Ensurance
2
- VERSION = '0.1.25'.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.25
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: 2020-05-10 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.0.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: []