redis_locker 0.1.2 → 0.1.3
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 +4 -4
- data/lib/redis_locker.rb +15 -13
- data/lib/redis_locker/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 485a98c013b875b6f0699ac1307441a2dda2cc10474a86c6c610d0e03b6f43a2
|
4
|
+
data.tar.gz: 2a60017d8381da6108b70940e4e0c70430772481ce9db16c819156d990a1d961
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fded68786c2a33b4393bf5469549c039dcdfa1bb250b750e14590deadd70978747bab1c78e41514e9900f17b07fcfa4d6e5ce33e5e7ef0cd602d6595a8de164
|
7
|
+
data.tar.gz: 0b172e57ce4bab224bae4e03ed07344142ffb7eb3168c47f42ca0b3d322c5d9a713e222c233047963738125a4e2ffb6314a5008bb6057cb7380cec556ca527b6
|
data/lib/redis_locker.rb
CHANGED
@@ -29,14 +29,6 @@ module RedisLocker
|
|
29
29
|
base_klass.extend(ClassMethods)
|
30
30
|
base_klass.include(InstanceMethods)
|
31
31
|
interceptor = base_klass.const_set("#{base_klass.name.split('::').last}Interceptor", Module.new)
|
32
|
-
puts interceptor
|
33
|
-
interceptor.class_eval do
|
34
|
-
def initialize(*args, **opts, &block)
|
35
|
-
@model_locker = RedisLocker::ModelLocker.new(self)
|
36
|
-
@method_lockers = {}
|
37
|
-
super(*args, **opts, &block)
|
38
|
-
end
|
39
|
-
end
|
40
32
|
base_klass.prepend interceptor
|
41
33
|
end
|
42
34
|
|
@@ -71,24 +63,34 @@ module RedisLocker
|
|
71
63
|
|
72
64
|
module InstanceMethods
|
73
65
|
def method_locker(method)
|
74
|
-
|
66
|
+
method_lockers[method] ||= RedisLocker::MethodLocker.new(model_locker, method)
|
75
67
|
end
|
76
68
|
|
77
69
|
def lock
|
78
|
-
|
70
|
+
model_locker.lock
|
79
71
|
end
|
80
72
|
|
81
73
|
def lock!
|
82
|
-
|
74
|
+
model_locker.lock!
|
83
75
|
end
|
84
76
|
|
85
77
|
def unlock
|
86
|
-
|
78
|
+
model_locker.unlock
|
87
79
|
end
|
88
80
|
|
89
81
|
def with_redis_lock(strategy: RedisLocker::DEFAULT_STRATEGY, retry_count: RedisLocker::DEFAULT_RETRY_COUNT,
|
90
82
|
retry_interval: RedisLocker::DEFAULT_RETRY_INTERVAL, &block)
|
91
|
-
|
83
|
+
model_locker.with_redis_lock(strategy: strategy, retry_count: retry_count, retry_interval: retry_interval, &block)
|
84
|
+
end
|
85
|
+
|
86
|
+
private
|
87
|
+
|
88
|
+
def method_lockers
|
89
|
+
@method_lockers ||= {}
|
90
|
+
end
|
91
|
+
|
92
|
+
def model_locker
|
93
|
+
@model_locker ||= RedisLocker::ModelLocker.new(self)
|
92
94
|
end
|
93
95
|
end
|
94
96
|
|
data/lib/redis_locker/version.rb
CHANGED