ensurance 0.1.23 → 0.1.26

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: 44b8aa8bada56e100e91a9bdd1b6b2048977ba3fcc00f7cb241cde9684116467
4
- data.tar.gz: 3ddf419730b1e6d7a4435448a246dc85c838770e8dff334623d11d890b069d5a
3
+ metadata.gz: abc1835e5b3de9739e9b9251e18bcb537147de9cdcba75b515f49c003081217c
4
+ data.tar.gz: a74ed354554f1178716eea0cbc5acab7045ef4bacc6fdd3a18c60b98799c3b75
5
5
  SHA512:
6
- metadata.gz: '018d132796a0a7d630e58a089de12502e3594c802a066ad03aac00ff1a372df5129731ae5cacb2ac97a52173a9aaa05009f12e75f42bea0554356cbda3fd3456'
7
- data.tar.gz: a49275fbc51f69828b33c157418f9060f0e6cd9ad841c35954e17ce69c17d656a42d48e3cce0b2b620ac51d82b2b04a39c5531e6720a9dd80ccc8e9125c98645
6
+ metadata.gz: db7c657713d8a5c1aa5358d680b9cee04e7794932d544166c24d24a1fd209d712328c386470612e37205ee44448ceee9d87d5bb7a48f10c992351502a0d6f209
7
+ data.tar.gz: bfcbd5b6ea5a048e935cc0b2770a025ecb29380fbe153ea417e8d525fba4ea0dd7338ce0c6ee0e05e1ed3eae918aca15e8a769348bf4891117124ca4672ab3d4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+
4
+ ## 1.0.26
5
+ - auto handle milli and microseconds integers sent to Time.ensure
6
+
7
+ ## 1.0.25
8
+ - have to use a string comparison for final result `1 != "1"`
9
+
10
+ ## 1.0.24
11
+ - make sure that a string that starts with a number doesn't find an integer primary key record
12
+
3
13
  ## 1.0.23
4
14
  - forgot version boundry on ActiveSupport
5
15
 
@@ -7,7 +17,7 @@
7
17
  - support Rails 6+
8
18
 
9
19
  ## 1.0.21
10
- - properly handle empty strings
20
+ - properly handle empty strings
11
21
 
12
22
  ## 1.0.20
13
23
  - support Rails 6
data/Gemfile.lock CHANGED
@@ -1,50 +1,47 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ensurance (0.1.22)
4
+ ensurance (0.1.26)
5
5
  activesupport (>= 3)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
- activemodel (6.0.1)
11
- activesupport (= 6.0.1)
12
- activerecord (6.0.1)
13
- activemodel (= 6.0.1)
14
- activesupport (= 6.0.1)
15
- activesupport (6.0.1)
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)
16
16
  concurrent-ruby (~> 1.0, >= 1.0.2)
17
- i18n (>= 0.7, < 2)
18
- minitest (~> 5.1)
19
- tzinfo (~> 1.1)
20
- zeitwerk (~> 2.2)
21
- awesome_print (1.8.0)
22
- concurrent-ruby (1.1.5)
23
- diff-lcs (1.3)
24
- globalid (0.4.2)
25
- activesupport (>= 4.2.0)
26
- i18n (1.7.0)
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)
27
26
  concurrent-ruby (~> 1.0)
28
- minitest (5.13.0)
29
- rake (13.0.0)
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.0)
35
- rspec-support (~> 3.9.0)
36
- rspec-expectations (3.9.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)
37
36
  diff-lcs (>= 1.2.0, < 2.0)
38
- rspec-support (~> 3.9.0)
39
- rspec-mocks (3.9.0)
37
+ rspec-support (~> 3.11.0)
38
+ rspec-mocks (3.11.1)
40
39
  diff-lcs (>= 1.2.0, < 2.0)
41
- rspec-support (~> 3.9.0)
42
- rspec-support (3.9.0)
43
- sqlite3 (1.4.1)
44
- thread_safe (0.3.6)
45
- tzinfo (1.2.5)
46
- thread_safe (~> 0.1)
47
- zeitwerk (2.2.1)
40
+ rspec-support (~> 3.11.0)
41
+ rspec-support (3.11.0)
42
+ sqlite3 (1.4.2)
43
+ tzinfo (2.0.4)
44
+ concurrent-ruby (~> 1.0)
48
45
 
49
46
  PLATFORMS
50
47
  ruby
@@ -21,10 +21,14 @@ module Ensurance
21
21
  when 'Date'
22
22
  thing.beginning_of_day
23
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
27
+ end
24
28
  ::Time.zone.at(thing)
25
29
  when 'String'
26
30
  if thing.to_i.to_s == thing
27
- ::Time.zone.at(thing.to_i)
31
+ ::Time.ensure(thing.to_i)
28
32
  elsif thing.to_f.to_s == thing
29
33
  ::Time.zone.at(thing.to_f)
30
34
  else
@@ -1,3 +1,3 @@
1
1
  module Ensurance
2
- VERSION = '0.1.23'.freeze
2
+ VERSION = '0.1.26'.freeze
3
3
  end
data/lib/ensurance.rb CHANGED
@@ -17,7 +17,7 @@ module Ensurance
17
17
  def ensure_by(*args, order: nil)
18
18
  @_additional_ensure_by = args
19
19
  if (::ActiveRecord::Base.connection rescue false)
20
- @_ensure_order = (order || primary_key).to_s
20
+ @_ensure_order = (order || self.primary_key).to_s
21
21
  @_ensure_by = [@_additional_ensure_by || primary_key].flatten.compact.uniq
22
22
  end
23
23
  # ap "Ensure By: #{self}.#{@_ensure_by} Order: #{self}.#{@_ensure_order}"
@@ -36,7 +36,7 @@ module Ensurance
36
36
  return found
37
37
  end
38
38
 
39
- @_ensure_by ||= [@_additional_ensure_by || primary_key].flatten.compact.uniq
39
+ @_ensure_by ||= [@_additional_ensure_by || self.primary_key].flatten.compact.uniq
40
40
  @_ensure_order ||= primary_key
41
41
 
42
42
  found = []
@@ -60,7 +60,8 @@ module Ensurance
60
60
  else
61
61
  record = find_by(ensure_field => value) if value.present? && !value.is_a?(Hash)
62
62
  end
63
- break if record.is_a?(self)
63
+ record = nil if record&.__send__(ensure_field).to_s != value.to_s
64
+ break if record
64
65
  end
65
66
  found << record
66
67
  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.23
4
+ version: 0.1.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sharpe
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-11-06 00:00:00.000000000 Z
11
+ date: 2022-04-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.0.6
188
+ rubygems_version: 3.1.6
189
189
  signing_key:
190
190
  specification_version: 4
191
191
  summary: Add ability to ensure ActiveRecord models