module Monus

Constants

ConfigurationError

Public Class Methods

accept(field) click to toggle source
# File lib/monus.rb, line 60
def self.accept(field)
  set field, true
end
add(field, count: 1, context: nil) click to toggle source

TODO: inner cache and per-second sending

# File lib/monus.rb, line 69
def self.add(field, count: 1, context: nil)
  set field, count, context
end
backend() click to toggle source
# File lib/monus.rb, line 40
def self.backend
  prepare unless @@prepared
  @@backend
end
configure(options) click to toggle source
# File lib/monus.rb, line 8
def self.configure(options)
  @@options = options
  prepare
end
engine() click to toggle source
# File lib/monus.rb, line 35
def self.engine
  prepare unless @@prepared
  @@engine
end
logger() click to toggle source
# File lib/monus.rb, line 45
def self.logger
  @@logger ||= options[:logger] || begin
    require 'logger'
    Logger.new STDOUT
  end
end
options() click to toggle source
# File lib/monus.rb, line 13
def self.options
  @@options
end
prepare() click to toggle source
# File lib/monus.rb, line 17
def self.prepare
  return true if @@prepared or @@preparing
  @@preparing = true

  @@engine = Monus::Engine[options[:engine] || :pure]
  @@engine.prepare

  @@backend = Monus::Backend[options[:backend] || :memory]
  @@backend.prepare

  options[:built_in_metrics]&.each do |metric|
    Monus::BuiltInMetric[metric].activate
  end

  @@preparing = false
  @@prepared = true
end
refuse(field) click to toggle source
# File lib/monus.rb, line 64
def self.refuse(field)
  set field, false
end
set(field, value, context = nil) click to toggle source
# File lib/monus.rb, line 56
def self.set(field, value, context = nil)
  write({field => value}, context)
end
write(fields, context = nil) click to toggle source
# File lib/monus.rb, line 52
def self.write(fields, context = nil)
  backend.write(fields, context)
end