Class: Dhall::ExpressionResolver
- Inherits:
-
Object
- Object
- Dhall::ExpressionResolver
- Defined in:
- lib/dhall/resolve.rb
Direct Known Subclasses
ArrayResolver, FallbackResolver, HashResolver, IdentityResolver, ImportAsLocationResolver, ImportResolver, RecordResolver
Defined Under Namespace
Classes: ArrayResolver, FallbackResolver, HashResolver, IdentityResolver, ImportAsLocationResolver, ImportResolver, RecordResolver
Constant Summary collapse
- @@registry =
{}
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(expr) ⇒ ExpressionResolver
constructor
A new instance of ExpressionResolver.
- #resolve(**kwargs) ⇒ Object
Constructor Details
#initialize(expr) ⇒ ExpressionResolver
Returns a new instance of ExpressionResolver.
411 412 413 |
# File 'lib/dhall/resolve.rb', line 411 def initialize(expr) @expr = expr end |
Class Method Details
.for(expr) ⇒ Object
403 404 405 |
# File 'lib/dhall/resolve.rb', line 403 def self.for(expr) @@registry.find { |k, _| k === expr }.last.new(expr) end |
.register_for(kase) ⇒ Object
407 408 409 |
# File 'lib/dhall/resolve.rb', line 407 def self.register_for(kase) @@registry[kase] = self end |
Instance Method Details
#resolve(**kwargs) ⇒ Object
415 416 417 418 419 420 421 |
# File 'lib/dhall/resolve.rb', line 415 def resolve(**kwargs) Util.promise_all_hash( @expr.to_h.each_with_object({}) { |(attr, value), h| h[attr] = ExpressionResolver.for(value).resolve(**kwargs) } ).then { |h| @expr.with(h) } end |