dont_repeat_for 1.0.0.0 → 1.0.0.1

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
  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: []