agis 0.2.7 → 0.2.8
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/agis.rb +16 -14
- metadata +2 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1a3007830c900d69b3a8729fac5816644820e9ac
|
4
|
+
data.tar.gz: 9bba42fe778b4362540c6792d54b0e8f788f0fa4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b44f8bc9278c767fbdc9e83c4d29d30a6ad15dba40fa03684f51b01c0db9486b173cf36e1cb188b139c4b8e0a8985fe860da19cb957b6bb8d27c2843f984cd93
|
7
|
+
data.tar.gz: 5ab8555f66a9a617d96dd8bef79264351e4fb32a4099aad06c0ab3b7ceaedf3a057f286bf23922c673a28a64da1928c0b27aa3c1cf2e31ed674c65ec382c006e
|
data/lib/agis.rb
CHANGED
@@ -86,31 +86,31 @@ module Agis
|
|
86
86
|
end
|
87
87
|
|
88
88
|
# create a method with no parameters
|
89
|
-
def agis_defm0(name, timeout=nil, &b)
|
89
|
+
def agis_defm0(name, mode=:retry, timeout=nil, &b)
|
90
90
|
@agis_methods ||= Hash.new
|
91
|
-
@agis_methods[name] =
|
91
|
+
@agis_methods[name] = {arity: 0, method: b, mode: mode, timeout: timeout}
|
92
92
|
end
|
93
93
|
|
94
94
|
# create a method with one parameter
|
95
|
-
def agis_defm1(name, timeout=nil, &b)
|
95
|
+
def agis_defm1(name, mode=:retry, timeout=nil, &b)
|
96
96
|
@agis_methods ||= Hash.new
|
97
|
-
@agis_methods[name] =
|
97
|
+
@agis_methods[name] = {arity: 1, method: b, mode: mode, timeout: timeout}
|
98
98
|
end
|
99
99
|
|
100
100
|
# create a method with two parameters
|
101
|
-
def agis_defm2(name, timeout=nil, &b)
|
101
|
+
def agis_defm2(name, mode=:retry, timeout=nil, &b)
|
102
102
|
@agis_methods ||= Hash.new
|
103
|
-
@agis_methods[name] =
|
103
|
+
@agis_methods[name] = {arity: 2, method: b, mode: mode, timeout: timeout}
|
104
104
|
end
|
105
105
|
|
106
106
|
# create a method with three parameters
|
107
|
-
def agis_defm3(name, timeout=nil, &b)
|
107
|
+
def agis_defm3(name, mode=:retry, timeout=nil, &b)
|
108
108
|
@agis_methods ||= Hash.new
|
109
|
-
@agis_methods[name] =
|
109
|
+
@agis_methods[name] = {arity: 3, method: b, mode: mode, timeout: timeout}
|
110
110
|
end
|
111
111
|
|
112
112
|
# alias for agis_defm3
|
113
|
-
def agis_def(name, timeout=nil, &b)
|
113
|
+
def agis_def(name, mode=:retry, timeout=nil, &b)
|
114
114
|
agis_defm3(name, timeout, b)
|
115
115
|
end
|
116
116
|
|
@@ -154,8 +154,9 @@ module Agis
|
|
154
154
|
return nil
|
155
155
|
end
|
156
156
|
mn = mni[2..-1]
|
157
|
-
mc = @agis_methods[mn.to_sym][
|
158
|
-
meti = @agis_methods[mn.to_sym][
|
157
|
+
mc = @agis_methods[mn.to_sym][:arity]
|
158
|
+
meti = @agis_methods[mn.to_sym][:method]
|
159
|
+
mrm = @agis_methods[mn.to_sym][:mode]
|
159
160
|
case meti
|
160
161
|
when Proc
|
161
162
|
met = meti
|
@@ -172,6 +173,7 @@ module Agis
|
|
172
173
|
#rescue Redis::Lock::LockNotAcquired
|
173
174
|
# raise Agis::RedisLockExpired
|
174
175
|
#end
|
176
|
+
popfive(redis) if mrm == :once
|
175
177
|
case mc
|
176
178
|
when 0
|
177
179
|
ret = agis_aconv(met.call())
|
@@ -184,7 +186,7 @@ module Agis
|
|
184
186
|
end
|
185
187
|
redis.multi do
|
186
188
|
redis.hset self.agis_returnbox, lusig, ret
|
187
|
-
popfive
|
189
|
+
popfive(redis) if mrm == :retry
|
188
190
|
end
|
189
191
|
return :next
|
190
192
|
rescue Agis::RedisLockExpired => e
|
@@ -262,7 +264,7 @@ module Agis
|
|
262
264
|
# only be called inside an Agis method, where the box
|
263
265
|
# is already guaranteed to be locked
|
264
266
|
def agis_recall(mn, arg1=nil, arg2=nil, arg3=nil)
|
265
|
-
meti = @agis_methods[mn.to_sym][
|
267
|
+
meti = @agis_methods[mn.to_sym][:method]
|
266
268
|
case meti
|
267
269
|
when Proc
|
268
270
|
met = meti
|
@@ -272,7 +274,7 @@ module Agis
|
|
272
274
|
met = self.method(mn.to_sym) # when proc is Nil, call the class methods all the same
|
273
275
|
end
|
274
276
|
|
275
|
-
case @agis_methods[mn.to_sym][
|
277
|
+
case @agis_methods[mn.to_sym][:arity]
|
276
278
|
when 0
|
277
279
|
return met.call()
|
278
280
|
when 1
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: agis
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gert Oja
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-06-
|
11
|
+
date: 2015-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|
@@ -70,4 +70,3 @@ signing_key:
|
|
70
70
|
specification_version: 4
|
71
71
|
summary: Messagebox Redis Actors for Ruby
|
72
72
|
test_files: []
|
73
|
-
has_rdoc:
|