lib/chicanery.rb in chicanery-0.0.4 vs lib/chicanery.rb in chicanery-0.0.5
- old
+ new
@@ -1,33 +1,48 @@
+if ENV['COVERAGE']
+ require 'simplecov'
+ require 'simplecov-gem-adapter'
+ SimpleCov.start 'gem'
+end
+
require 'chicanery/persistence'
-require 'chicanery/servers'
+require 'chicanery/collections'
require 'chicanery/handlers'
require 'chicanery/state_comparison'
module Chicanery
include Persistence
- include Servers
+ include Collections
include Handlers
include StateComparison
- VERSION = "0.0.4"
+ VERSION = "0.0.5"
- def execute *args
- load args.shift
- poll_period = args.shift
- loop do
- previous_state = restore
- current_state = {
- servers: {}
- }
- 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
+ def execute args
+ 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
+ run_handlers.each {|handler| handler.call current_state }
+ persist current_state
+ break unless poll_period
+ sleep poll_period.to_i
end
- run_handlers.each {|handler| handler.call current_state }
- persist current_state
- break unless poll_period
- sleep poll_period.to_i
+ rescue Interrupt
end
end
end
\ No newline at end of file