Sha256: 2f53ffd6eddf3544c6c9f18d2c92f26e2187274a4142435e487ad1341c8a544f

Contents?: true

Size: 870 Bytes

Versions: 9

Compression:

Stored size: 870 Bytes

Contents

# typed: false

# 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

9 entries across 9 versions & 1 rubygems

Version Path
sqreen-1.22.0-java lib/sqreen/weave/budget.rb
sqreen-1.22.0 lib/sqreen/weave/budget.rb
sqreen-1.21.1-java lib/sqreen/weave/budget.rb
sqreen-1.21.1 lib/sqreen/weave/budget.rb
sqreen-1.21.0-java lib/sqreen/weave/budget.rb
sqreen-1.21.0 lib/sqreen/weave/budget.rb
sqreen-1.20.4-java lib/sqreen/weave/budget.rb
sqreen-1.20.4 lib/sqreen/weave/budget.rb
sqreen-1.20.4.beta1 lib/sqreen/weave/budget.rb