lib/chicanery.rb in chicanery-0.0.6 vs lib/chicanery.rb in chicanery-0.0.7
- old
+ new
@@ -14,37 +14,49 @@
include Persistence
include Collections
include Handlers
include StateComparison
- VERSION = "0.0.6"
+ VERSION = "0.0.7"
def execute args
+ load args.shift
+ poll_period = args.shift
+ if poll_period
+ run_every poll_period.to_i
+ else
+ run
+ end
+ end
+
+ def run_every poll_period
begin
- load args.shift
- poll_period = args.shift
loop do
- previous_state = restore
- current_state = {
- servers: {},
- repos: {}
- }
- repos.each do |repo|
- repo_state = repo.state
- compare_repo_state repo.name, repo_state, previous_state[:repos][repo.name] if previous_state[:repos]
- current_state[:repos][repo.name] = repo_state
- end
- servers.each do |server|
- current_jobs = server.jobs
- compare_jobs current_jobs, previous_state[:servers][server.name] if previous_state[:servers]
- current_state[:servers][server.name] = current_jobs
- end
- current_state.extend Chicanery::Summary
- run_handlers.each {|handler| handler.call current_state }
- persist current_state
- break unless poll_period
- sleep poll_period.to_i
+ run
+ sleep poll_period
end
rescue Interrupt
end
end
+
+ def run
+ previous_state = restore
+ current_state = {
+ servers: {},
+ repos: {}
+ }
+ repos.each do |repo|
+ repo_state = repo.state
+ compare_repo_state repo.name, repo_state, previous_state[:repos][repo.name] if previous_state[:repos]
+ current_state[:repos][repo.name] = repo_state
+ end
+ servers.each do |server|
+ current_jobs = server.jobs
+ compare_jobs current_jobs, previous_state[:servers][server.name] if previous_state[:servers]
+ current_state[:servers][server.name] = current_jobs
+ end
+ current_state.extend Chicanery::Summary
+ run_handlers.each {|handler| handler.call current_state }
+ persist current_state
+ end
+
end
\ No newline at end of file