Class: PricingPlans::Usage
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- PricingPlans::Usage
- Defined in:
- lib/pricing_plans/models/usage.rb
Instance Method Summary collapse
- #increment!(amount = 1) ⇒ Object
- #percent_used(limit_amount) ⇒ Object
- #remaining(limit_amount) ⇒ Object
- #within_period?(timestamp = Time.current) ⇒ Boolean
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
27 28 29 |
# File 'lib/pricing_plans/models/usage.rb', line 27 def within_period?( = Time.current) >= period_start && < period_end end |