Sha256: 2ee36f8ef4a9faf848eff0d460ee74af5001ed308ee86773b58aa07c8b4fd6a2

Contents?: true

Size: 1.33 KB

Versions: 3

Compression:

Stored size: 1.33 KB

Contents

class Remnant
  module ClassMethods
    def configure(&block)
      configuration.instance_eval(&block)
    end

    def configuration
      @configuration ||= Remnant::Configuration.new.defaults!
    end

    def handler
      @handler ||= Statsd.new(Remnant.configuration.hostname, Remnant.configuration.port_number)
    end

    def collect
      extra_remnant_key = Remnant::Discover.results.delete(:extra_remnant_key)

      if ::Rails.env.production? || ::Rails.env.staging? || ::Rails.env.demo?
        # send on
        Remnant::Discover.results.map do |remnant_key, ms|
          key = [
                 Remnant.configuration.tag,
                 Remnant.configuration.env,
                 extra_remnant_key,
                 remnant_key
                ].compact.join('.')

          Remnant.handler.timing(key, ms.to_i)
        end
      else
        # log it
        Rails.logger.info "--------------Remnants Discovered--------------"

        Remnant::Discover.results.map do |remnant_key, ms|
          key = [
                 extra_remnant_key,
                 remnant_key
                ].compact.join('.')

          Rails.logger.info "#{ms.to_i}ms\t#{key}"
        end

        Rails.logger.info "-----------------------------------------------"
      end

      Remnant::Discover.results.clear
    end
  end
  extend ClassMethods
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
remnant-0.2.1 lib/remnant/base.rb
remnant-0.2.0 lib/remnant/base.rb
remnant-0.1.3 lib/remnant/base.rb