dont_repeat_for 1.0.0.0 → 1.0.0.1

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
  SHA1:
3
- metadata.gz: d6a2223e610c2c4a6359c0aee70254bb04960a4f
4
- data.tar.gz: 652200549e9120537b7130961fe302b73b08d94e
3
+ metadata.gz: 1fdd5e137761ab97922dc862d3b51ac37ff09ede
4
+ data.tar.gz: 51f3b900f05a0e14ac49b9a6588dde4832484fbc
5
5
  SHA512:
6
- metadata.gz: fe2dededa9102667c038ef3c6fa44aa49b0d3cacbd54ef9898f1a4171d002e10a620cfc5d3dcfa05aad89398a44d136556e4dbcacf0250b8eff3c9f120f93834
7
- data.tar.gz: d1410275b765fb7e55780f194ec3554074c852ca5ae2801c95084ad130ed331157a9e0667e07a068c5d8fbbd80d84d31293294a6c9fe4d0590012b65f1280609
6
+ metadata.gz: 12dee7be4c8005e5392517e805862a0688501211353abfaa51a02a3fe81e5e7d93420db24d0537ef2d4a933289311d25ed2f12efd7572ebbb5f2e55bb283696b
7
+ data.tar.gz: 246ee28e90141a0c413652033e422234e3d5b1c1086370b9bdb5e1442dc90ca784e509ac609483e013ea4090f7f63cb8fbc63cbffdc6425cee83713ce3de5a33
@@ -9,9 +9,8 @@ Gem::Specification.new do |spec|
9
9
  spec.authors = ["Jay El-Kaake"]
10
10
  spec.email = ["najibkaake@gmail.com"]
11
11
 
12
- spec.summary = %q{Adds beautifully readable true/false flags to user and account active models (like devise).}
13
- spec.description = %q{This gem adds the ability for models to have an unlimited number of custom flags \
14
- that are stored within one database column cell instead of several columns.}
12
+ spec.summary = %q{Allows you to easily run a code block only once every X amount of time}
13
+ spec.description = %q{Allows you to easily run a code block only once every X amount of time}
15
14
  spec.homepage = "https://www.github.com/jayelkaake/dont_repeat_for"
16
15
  spec.license = "MIT"
17
16
 
@@ -32,7 +31,7 @@ Gem::Specification.new do |spec|
32
31
 
33
32
  spec.add_development_dependency "bundler"
34
33
  spec.add_development_dependency "temping", "~> 3.3.0"
35
- spec.add_development_dependency "rake", "~> 10.0"
34
+ spec.add_development_dependency "rake", "~> 12.3.3"
36
35
  spec.add_development_dependency "rspec", '~> 3.4'
37
36
  spec.add_development_dependency "sqlite3", '~> 1.3.11'
38
37
 
@@ -24,23 +24,27 @@ class DontRepeatFor
24
24
 
25
25
  return nil if ran_recently?
26
26
 
27
- remember_not_to_repeat!
27
+ set_key_expiry
28
28
 
29
29
  yield
30
30
  end
31
31
 
32
32
  private
33
33
 
34
- def remember_not_to_repeat!
35
- redis.set(storage_key, true, ex: time)
34
+ def set_key_expiry
35
+ redis.expire(storage_key, time)
36
36
  end
37
37
 
38
+ ##
39
+ # Using an incr to atomically get & set the value.
40
+ # If incr === 1 then the key was empty before incrementing
41
+ # Otherwise, it has already been incremented before expiring
38
42
  def ran_recently?
39
- redis.get(storage_key)
43
+ redis.incr(storage_key) != 1
40
44
  end
41
45
 
42
46
  def storage_key
43
- @storage_key ||= "DontRepeatFor/Keys/#{@key}"
47
+ @storage_key ||= "DontRepeatFor/v1/Keys/#{@key}"
44
48
  end
45
49
 
46
50
  def redis
@@ -1,3 +1,3 @@
1
1
  class DontRepeatFor
2
- VERSION = '1.0.0.0'
2
+ VERSION = '1.0.0.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dont_repeat_for
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.0
4
+ version: 1.0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jay El-Kaake
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-05-21 00:00:00.000000000 Z
11
+ date: 2020-05-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '10.0'
61
+ version: 12.3.3
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '10.0'
68
+ version: 12.3.3
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rspec
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -94,9 +94,7 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: 1.3.11
97
- description: |-
98
- This gem adds the ability for models to have an unlimited number of custom flags \
99
- that are stored within one database column cell instead of several columns.
97
+ description: Allows you to easily run a code block only once every X amount of time
100
98
  email:
101
99
  - najibkaake@gmail.com
102
100
  executables: []
@@ -138,6 +136,5 @@ rubyforge_project:
138
136
  rubygems_version: 2.6.10
139
137
  signing_key:
140
138
  specification_version: 4
141
- summary: Adds beautifully readable true/false flags to user and account active models
142
- (like devise).
139
+ summary: Allows you to easily run a code block only once every X amount of time
143
140
  test_files: []