Sha256: 3f5b61c62271375f14c9fa4ad07cf02bfb07532caa54d61a44a404a00f1b4a40

Contents?: true

Size: 1.2 KB

Versions: 3

Compression:

Stored size: 1.2 KB

Contents

require "active_support"
require "active_support/all"
require "pulse-meter"

require "pulse_toolbox/sensor/initializer"

module PulseToolbox
  extend ActiveSupport::Autoload

  autoload :VERSION, 'pulse_toolbox/version'

  module Generators
    extend ActiveSupport::Autoload
    autoload :InstallGenerator
  end

  module Server
    extend ActiveSupport::Autoload
    autoload :Monitoring
  end

  module Sensor
    extend ActiveSupport::Autoload
    autoload :Manager
    module Mixins
      extend ActiveSupport::Autoload
      autoload :Iterators
    end
  end

  class << self
    @@pid = nil
    @@redis_config = {}

    def redis=(redis)
      PulseMeter.redis = redis
      @@pid = Process.pid
      @@redis_config = {
        host: redis.client.host,
        port: redis.client.port,
        db: redis.client.db
      }
    end

    def redis
      reconnect if pid_changed
      PulseMeter.redis
    end

    def reconnect
      PulseMeter.redis = Redis.new(
        host: @@redis_config[:host],
        port: @@redis_config[:port],
        db: @@redis_config[:db]
      )
    end

    def maybe_reconnect
      reconnect if pid_changed
    end

    def pid_changed
      @@pid && @@pid != Process.pid
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pulse-meter-rails-0.1.4 lib/pulse-meter-rails.rb
pulse-meter-rails-0.1.3 lib/pulse-meter-rails.rb
pulse-meter-rails-0.1.2 lib/pulse-meter-rails.rb