Class: Upkeep::Runtime::ObservedHash
- Inherits:
-
Object
- Object
- Upkeep::Runtime::ObservedHash
- Defined in:
- lib/upkeep/runtime.rb
Instance Method Summary collapse
- #[](key) ⇒ Object
- #dig(first_key, *rest) ⇒ Object
- #fetch(key, *fallback) ⇒ Object
-
#initialize(source:, values:) ⇒ ObservedHash
constructor
A new instance of ObservedHash.
Constructor Details
#initialize(source:, values:) ⇒ ObservedHash
Returns a new instance of ObservedHash.
496 497 498 499 |
# File 'lib/upkeep/runtime.rb', line 496 def initialize(source:, values:) @source = source @values = values || {} end |
Instance Method Details
#[](key) ⇒ Object
501 502 503 504 505 |
# File 'lib/upkeep/runtime.rb', line 501 def [](key) value = lookup(key) record(key, value) value end |
#dig(first_key, *rest) ⇒ Object
519 520 521 522 |
# File 'lib/upkeep/runtime.rb', line 519 def dig(first_key, *rest) value = self[first_key] rest.empty? || value.nil? ? value : value.dig(*rest) end |
#fetch(key, *fallback) ⇒ Object
507 508 509 510 511 512 513 514 515 516 517 |
# File 'lib/upkeep/runtime.rb', line 507 def fetch(key, *fallback) if include_key?(key) self[key] elsif block_given? yield key elsif fallback.any? fallback.first else @values.fetch(key) end end |