Sha256: 70c872b8a2c67290c3935b54878f0896b314e72a7f8275fd8b35c2747b313145

Contents?: true

Size: 911 Bytes

Versions: 9

Compression:

Stored size: 911 Bytes

Contents

require 'chicanery/handlers'
require 'chicanery/site'

module Chicanery
  module Sites
    include Handlers

    def sites
      @sites ||= []
    end

    def site *args
      sites << Chicanery::Site.new(*args)
    end

    def check_sites current_state, previous_state
      current_state[:sites] = {}
      sites.each do |site|
        begin
          content = site.get
          current_state[:sites][site.name] = :up
          notify_up_handlers site.name, site
          notify_recovered_handlers site.name, site if previous_state && previous_state[:sites] && previous_state[:sites][site.name] == :down
        rescue Exception
          current_state[:sites][site.name] = :down
          notify_down_handlers site.name, site
          notify_crashed_handlers site.name, site if previous_state && previous_state[:sites] && previous_state[:sites][site.name] == :up
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
chicanery-0.2.0 lib/chicanery/sites.rb
chicanery-0.1.9 lib/chicanery/sites.rb
chicanery-0.1.8 lib/chicanery/sites.rb
chicanery-0.1.7 lib/chicanery/sites.rb
chicanery-0.1.6 lib/chicanery/sites.rb
chicanery-0.1.5 lib/chicanery/sites.rb
chicanery-0.1.4 lib/chicanery/sites.rb
chicanery-0.1.3 lib/chicanery/sites.rb
chicanery-0.1.1 lib/chicanery/sites.rb