Class: Arcp::Lease::Lease
- Inherits:
-
Data
- Object
- Data
- Arcp::Lease::Lease
- Defined in:
- lib/arcp/lease.rb
Instance Attribute Summary collapse
-
#budget ⇒ Object
readonly
Returns the value of attribute budget.
-
#capabilities ⇒ Object
readonly
Returns the value of attribute capabilities.
-
#expires_at ⇒ Object
readonly
Returns the value of attribute expires_at.
-
#id ⇒ Object
readonly
Returns the value of attribute id.
-
#issued_at ⇒ Object
readonly
Returns the value of attribute issued_at.
-
#model_use ⇒ Object
readonly
Returns the value of attribute model_use.
Class Method Summary collapse
Instance Method Summary collapse
- #expired?(now) ⇒ Boolean
-
#initialize(id:, capabilities:, issued_at:, budget: nil, model_use: nil, expires_at: nil) ⇒ Lease
constructor
A new instance of Lease.
- #to_h ⇒ Object
Constructor Details
#initialize(id:, capabilities:, issued_at:, budget: nil, model_use: nil, expires_at: nil) ⇒ Lease
Returns a new instance of Lease.
112 113 114 115 116 117 118 119 120 121 |
# File 'lib/arcp/lease.rb', line 112 def initialize(id:, capabilities:, issued_at:, budget: nil, model_use: nil, expires_at: nil) super( id: id, capabilities: Array(capabilities).freeze, budget: budget, model_use: model_use ? Array(model_use).freeze : nil, expires_at: expires_at, issued_at: issued_at ) end |
Instance Attribute Details
#budget ⇒ Object (readonly)
Returns the value of attribute budget
111 112 113 |
# File 'lib/arcp/lease.rb', line 111 def budget @budget end |
#capabilities ⇒ Object (readonly)
Returns the value of attribute capabilities
111 112 113 |
# File 'lib/arcp/lease.rb', line 111 def capabilities @capabilities end |
#expires_at ⇒ Object (readonly)
Returns the value of attribute expires_at
111 112 113 |
# File 'lib/arcp/lease.rb', line 111 def expires_at @expires_at end |
#id ⇒ Object (readonly)
Returns the value of attribute id
111 112 113 |
# File 'lib/arcp/lease.rb', line 111 def id @id end |
#issued_at ⇒ Object (readonly)
Returns the value of attribute issued_at
111 112 113 |
# File 'lib/arcp/lease.rb', line 111 def issued_at @issued_at end |
#model_use ⇒ Object (readonly)
Returns the value of attribute model_use
111 112 113 |
# File 'lib/arcp/lease.rb', line 111 def model_use @model_use end |
Class Method Details
.from_h(h) ⇒ Object
123 124 125 126 127 128 129 130 131 132 133 |
# File 'lib/arcp/lease.rb', line 123 def self.from_h(h) h = h.transform_keys(&:to_s) new( id: h.fetch('id'), capabilities: Array(h['capabilities']).freeze, budget: h['cost.budget'] ? CostBudget.parse(h['cost.budget']) : nil, model_use: h['model.use'] ? Array(h['model.use']).freeze : nil, expires_at: h['expires_at'], issued_at: h['issued_at'] ) end |
Instance Method Details
#expired?(now) ⇒ Boolean
143 144 145 146 147 |
# File 'lib/arcp/lease.rb', line 143 def expired?(now) return false if expires_at.nil? Time.iso8601(expires_at) <= now end |
#to_h ⇒ Object
135 136 137 138 139 140 141 |
# File 'lib/arcp/lease.rb', line 135 def to_h out = { 'id' => id, 'capabilities' => capabilities, 'issued_at' => issued_at } out['cost.budget'] = budget.to_a if budget out['model.use'] = model_use if model_use out['expires_at'] = expires_at if expires_at out end |