Sha256: ffb9654c3dfb86f96df00c20830477b76d598729c306ccc4909e2cf0e8a63070

Contents?: true

Size: 902 Bytes

Versions: 1

Compression:

Stored size: 902 Bytes

Contents

# frozen_string_literal: true

require 'belly_wash/driver/redis'
require 'belly_wash/mixins/packer'
require 'belly_wash/nocturnal'
require 'belly_wash/client'
require 'belly_wash/configuration'
require 'belly_wash/resource'
require 'belly_wash/version'

module BellyWash
  class Error < StandardError; end

  def self.config
    @config ||= Configuration.new
  end

  def self.configure
    yield(config)

    config
  end

  def self.client
    @client ||= Client.new
  end

  def self.track(key:, at:, values:)
    config.ranges.map do |range|
      Resource.new(
        key: key,
        range: range,
        at: Nocturnal.new(at).send("beginning_of_#{range}")
      ).increment(**values)
    end
  end

  def self.values_for(key:, from:, to:, range:)
    Nocturnal.timeline(from: from, to: to, range: range).map do |at|
      Resource.new(key: key, range: range, at: at).values
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
belly_wash-0.1.1 lib/belly_wash.rb