Class: Arcp::Lease::Lease

Inherits:
Data
  • Object
show all
Defined in:
lib/arcp/lease.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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

#budgetObject (readonly)

Returns the value of attribute budget

Returns:

  • (Object)

    the current value of budget



111
112
113
# File 'lib/arcp/lease.rb', line 111

def budget
  @budget
end

#capabilitiesObject (readonly)

Returns the value of attribute capabilities

Returns:

  • (Object)

    the current value of capabilities



111
112
113
# File 'lib/arcp/lease.rb', line 111

def capabilities
  @capabilities
end

#expires_atObject (readonly)

Returns the value of attribute expires_at

Returns:

  • (Object)

    the current value of expires_at



111
112
113
# File 'lib/arcp/lease.rb', line 111

def expires_at
  @expires_at
end

#idObject (readonly)

Returns the value of attribute id

Returns:

  • (Object)

    the current value of id



111
112
113
# File 'lib/arcp/lease.rb', line 111

def id
  @id
end

#issued_atObject (readonly)

Returns the value of attribute issued_at

Returns:

  • (Object)

    the current value of issued_at



111
112
113
# File 'lib/arcp/lease.rb', line 111

def issued_at
  @issued_at
end

#model_useObject (readonly)

Returns the value of attribute model_use

Returns:

  • (Object)

    the current value of 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

Returns:

  • (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_hObject



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