hegemon 0.0.6 → 0.0.7
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/hegemon.rb +16 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c86bd9b37d2df2008cac937d1ab4e7bfd5d5276
|
4
|
+
data.tar.gz: 6c8876f0111431d8d89bd15ef7761b69a1717186
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c1d76a913eb1d7a6dfa6de164164b421a7ceb2e7a2dbc973541414e30920eb83b43066785b42c6428c63f9ec32aea9c50deb25dac02271947fbec66c9f0ae00d
|
7
|
+
data.tar.gz: 1a04f028f986810d9b63edbd07812c2f80822cd0b116e1d5543ad35fd9ad8fc4a9686fa961c2f937bbd1765a77612360bf093212eedcd830d04da3374ed5a2d8
|
data/lib/hegemon.rb
CHANGED
@@ -181,9 +181,11 @@ module Hegemon
|
|
181
181
|
#
|
182
182
|
# [+state+]
|
183
183
|
# The symbol to compare against the current state against
|
184
|
+
# [+throttle = 0+]
|
185
|
+
# The amount of time to sleep between state checks, 0 by default.
|
184
186
|
#
|
185
187
|
|
186
|
-
def block_until_state(s); # :args: state
|
188
|
+
def block_until_state(s, throttle = 0); # :args: state, throttle = 0
|
187
189
|
raise ArgumentError, "Cannot block until undefined state :#{s}" \
|
188
190
|
unless @_hegemon_states.keys.include? s
|
189
191
|
|
@@ -229,21 +231,25 @@ module Hegemon
|
|
229
231
|
# counting up from +0+ the value passed to do_state_tasks, until the
|
230
232
|
# thread is stopped with end_hegemon_auto_thread\.
|
231
233
|
#
|
232
|
-
# [+throttle =
|
233
|
-
# The amount of time to sleep between iterations
|
234
|
+
# [+throttle = nil+]
|
235
|
+
# The amount of time to sleep between iterations.
|
236
|
+
# If left as nil, the last given throttle value is used.
|
237
|
+
# The default throttle value is 0.05 seconds.
|
234
238
|
#
|
235
|
-
def start_hegemon_auto_thread(throttle =
|
239
|
+
def start_hegemon_auto_thread(throttle = nil)
|
236
240
|
if (not @_hegemon_auto_thread) \
|
237
241
|
or (not @_hegemon_auto_thread.status)
|
238
242
|
|
239
243
|
@_end_hegemon_auto_thread = false
|
240
|
-
@_hegemon_auto_thread_throttle
|
244
|
+
@_hegemon_auto_thread_throttle ||= throttle
|
245
|
+
@_hegemon_auto_thread_throttle ||= 0.05
|
241
246
|
@_hegemon_auto_thread = Thread.new do
|
242
247
|
i = 0
|
243
248
|
until @_end_hegemon_auto_thread
|
244
249
|
iter_hegemon_auto_loop(i)
|
245
250
|
i += 1
|
246
|
-
sleep @_hegemon_auto_thread_throttle
|
251
|
+
sleep @_hegemon_auto_thread_throttle \
|
252
|
+
unless @_end_hegemon_auto_thread
|
247
253
|
end
|
248
254
|
end
|
249
255
|
end
|
@@ -262,6 +268,8 @@ module Hegemon
|
|
262
268
|
#
|
263
269
|
def end_hegemon_auto_thread
|
264
270
|
@_end_hegemon_auto_thread = true
|
271
|
+
@_hegemon_auto_thread.join unless @_hegemon_auto_thread==Thread.current
|
272
|
+
@_hegemon_auto_thread = nil
|
265
273
|
end
|
266
274
|
threadlock :end_hegemon_auto_thread, :lock=>:@_hegemon_lock
|
267
275
|
|
@@ -290,6 +298,8 @@ class HegemonState
|
|
290
298
|
end
|
291
299
|
|
292
300
|
def task(&block); @tasks << block if block; end
|
301
|
+
def setup_task(&block) #TODO
|
302
|
+
end
|
293
303
|
|
294
304
|
def transition_to(state, &block)
|
295
305
|
@transitions[state] = HegemonTransition.new(@object, @state, state, &block)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hegemon
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Joe McIlvain
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-07-
|
11
|
+
date: 2013-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: threadlock
|