class SimpleContracts::Statistics

Constants

TEMPLATE

Public Class Methods

new(contract_name, logger: nil) click to toggle source
# File lib/simple_contracts/statistics.rb, line 10
def initialize(contract_name, logger: nil)
  @contract_name = contract_name
  @logger = logger
end

Public Instance Methods

log(rule, meta, error = nil) click to toggle source
# File lib/simple_contracts/statistics.rb, line 15
def log(rule, meta, error = nil)
  logger.debug(log_data(rule: rule, meta: meta, error: error))
end

Private Instance Methods

log_data(**kwargs) click to toggle source
# File lib/simple_contracts/statistics.rb, line 25
def log_data(**kwargs)
  TEMPLATE % {payload: payload(**kwargs)}
end
logger() click to toggle source
# File lib/simple_contracts/statistics.rb, line 21
def logger
  @logger ||= Logger.new(STDOUT)
end
payload(rule:, meta: nil, error: nil) click to toggle source
# File lib/simple_contracts/statistics.rb, line 29
def payload(rule:, meta: nil, error: nil)
  JSON.dump({
    time: Time.now, contract_name: @contract_name, rule: rule, meta: meta, error: error
  }.compact)
end