Class: Arcp::Lease::BudgetCounter
- Inherits:
-
Object
- Object
- Arcp::Lease::BudgetCounter
- Defined in:
- lib/arcp/lease.rb
Instance Attribute Summary collapse
-
#remaining ⇒ Object
readonly
Returns the value of attribute remaining.
Instance Method Summary collapse
- #get(currency) ⇒ Object
-
#initialize(initial:) ⇒ BudgetCounter
constructor
A new instance of BudgetCounter.
- #negative?(currency) ⇒ Boolean
- #snapshot ⇒ Object
- #try_decrement(currency, amount) ⇒ Object
Constructor Details
#initialize(initial:) ⇒ BudgetCounter
Returns a new instance of BudgetCounter.
59 60 61 |
# File 'lib/arcp/lease.rb', line 59 def initialize(initial:) @remaining = initial.dup end |
Instance Attribute Details
#remaining ⇒ Object (readonly)
Returns the value of attribute remaining.
57 58 59 |
# File 'lib/arcp/lease.rb', line 57 def remaining @remaining end |
Instance Method Details
#get(currency) ⇒ Object
72 |
# File 'lib/arcp/lease.rb', line 72 def get(currency) = @remaining[currency] || BigDecimal('0') |
#negative?(currency) ⇒ Boolean
73 |
# File 'lib/arcp/lease.rb', line 73 def negative?(currency) = (@remaining[currency] || BigDecimal('0')).negative? |
#snapshot ⇒ Object
75 76 77 |
# File 'lib/arcp/lease.rb', line 75 def snapshot @remaining.transform_values(&:dup).freeze end |
#try_decrement(currency, amount) ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/arcp/lease.rb', line 63 def try_decrement(currency, amount) balance = @remaining[currency] return false if balance.nil? return false if balance < amount @remaining[currency] = balance - amount true end |