Sha256: 4914cd41b8a960c0a21d0f8ea98062db0ec290adffb895a9d1ba32bca412f0e0

Contents?: true

Size: 871 Bytes

Versions: 10

Compression:

Stored size: 871 Bytes

Contents

# typed: ignore

# Copyright (c) 2015 Sqreen. All Rights Reserved.
# Please refer to our terms for more information: https://www.sqreen.com/terms.html

require 'sqreen/log/loggable'
require 'sqreen/weave'

class Sqreen::Weave::Budget
  include Sqreen::Log::Loggable

  def initialize(threshold, ratio = nil)
    @threshold = threshold
    @ratio = ratio
  end

  def static?
    threshold && !ratio
  end

  def dynamic?
    threshold && ratio
  end

  attr_reader :threshold
  attr_reader :ratio

  def to_h
    { threshold: threshold, ratio: ratio }
  end

  class << self
    attr_reader :current

    def update(opts = nil)
      Sqreen::Weave.logger.info("budget update:#{opts.inspect}")

      return @current = nil if opts.nil? || opts.empty?

      threshold = opts[:threshold]
      ratio = opts[:ratio]

      @current = new(threshold, ratio)
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
sqreen-1.25.1 lib/sqreen/weave/budget.rb
sqreen-1.25.0 lib/sqreen/weave/budget.rb
sqreen-1.24.3 lib/sqreen/weave/budget.rb
sqreen-1.24.2 lib/sqreen/weave/budget.rb
sqreen-1.24.1 lib/sqreen/weave/budget.rb
sqreen-1.24.0 lib/sqreen/weave/budget.rb
sqreen-1.23.2 lib/sqreen/weave/budget.rb
sqreen-1.23.1 lib/sqreen/weave/budget.rb
sqreen-1.23.0 lib/sqreen/weave/budget.rb
sqreen-1.22.1 lib/sqreen/weave/budget.rb