Class: Counters::File

Inherits:
Base
  • Object
show all
Defined in:
lib/counters/file.rb

Instance Attribute Summary

Attributes inherited from Base

#namespace

Instance Method Summary collapse

Methods inherited from Base

#hit, #latency, #magnitude, #ping

Constructor Details

#initialize(path_or_io_or_logger, options = {}) ⇒ File

Returns a new instance of File.



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/counters/file.rb', line 5

def initialize(path_or_io_or_logger, options={})
  super(options)

  @logger = if path_or_io_or_logger.kind_of?(Logger) then
              path_or_io_or_logger
            elsif path_or_io_or_logger.respond_to?(:<<) then
              logger = Logger.new(path_or_io_or_logger)
              logger.formatter = lambda {|severity, datetime, progname, msg| "#{datetime.strftime("%Y-%m-%dT%H:%M:%S.%N")} - #{msg}\n"}
              logger
            else
              raise ArgumentError, "Counters::File expects an object which is either a Logger or respond to #<<, received a #{path_or_io_or_logger.class}"
            end
end

Instance Method Details

#record_hit(key) ⇒ Object



19
20
21
# File 'lib/counters/file.rb', line 19

def record_hit(key)
  @logger.info "hit: #{key}"
end

#record_latency(key, time_in_seconds = nil) ⇒ Object



27
28
29
# File 'lib/counters/file.rb', line 27

def record_latency(key, time_in_seconds=nil)
  @logger.info "latency: #{key} #{time_in_seconds}s"
end

#record_magnitude(key, magnitude) ⇒ Object



23
24
25
# File 'lib/counters/file.rb', line 23

def record_magnitude(key, magnitude)
  @logger.info "magnitude: #{key} #{magnitude}"
end

#record_ping(key) ⇒ Object



31
32
33
# File 'lib/counters/file.rb', line 31

def record_ping(key)
  @logger.info "ping: #{key}"
end