Class: PricingPlans::Usage

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
lib/pricing_plans/models/usage.rb

Instance Method Summary collapse

Instance Method Details

#increment!(amount = 1) ⇒ Object



22
23
24
25
# File 'lib/pricing_plans/models/usage.rb', line 22

def increment!(amount = 1)
  increment(:used, amount)
  update!(last_used_at: Time.current)
end

#percent_used(limit_amount) ⇒ Object



36
37
38
39
# File 'lib/pricing_plans/models/usage.rb', line 36

def percent_used(limit_amount)
  return 0.0 if limit_amount == :unlimited || limit_amount.zero?
  [(used.to_f / limit_amount) * 100, 100.0].min
end

#remaining(limit_amount) ⇒ Object



31
32
33
34
# File 'lib/pricing_plans/models/usage.rb', line 31

def remaining(limit_amount)
  return Float::INFINITY if limit_amount == :unlimited
  [0, limit_amount - used].max
end

#within_period?(timestamp = Time.current) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/pricing_plans/models/usage.rb', line 27

def within_period?(timestamp = Time.current)
  timestamp >= period_start && timestamp < period_end
end