class Dhall::ExpressionResolver::ImportResolver

Public Class Methods

new(expr) click to toggle source
Calls superclass method Dhall::ExpressionResolver::new
# File lib/dhall/resolve.rb, line 433
def self.new(expr)
        if expr.import_type == Import::AsLocation
                ImportAsLocationResolver.new(expr)
        else
                super
        end
end

Public Instance Methods

resolve(resolver:, relative_to:) click to toggle source
# File lib/dhall/resolve.rb, line 441
def resolve(resolver:, relative_to:)
        Promise.resolve(nil).then do
                resolver.cache_fetch(@expr.cache_key(relative_to)) do
                        resolve_raw(resolver: resolver, relative_to: relative_to)
                end
        end
end
resolve_raw(resolver:, relative_to:) click to toggle source
# File lib/dhall/resolve.rb, line 449
def resolve_raw(resolver:, relative_to:)
        real_path = @expr.real_path(relative_to)
        real_path.resolve(resolver).then do |result|
                @expr.parse_resolve_check(
                        result,
                        deadline:    resolver.deadline,
                        resolver:    resolver.child(real_path),
                        relative_to: real_path
                )
        end
end