Sha256: 643c092c3840dd32c9808df812a81cc5be36daeaee74837c49c6e4d95deb6689

Contents?: true

Size: 773 Bytes

Versions: 5

Compression:

Stored size: 773 Bytes

Contents

class Bora
  class ParameterResolverLoader
    ResolverNotFound = Class.new(StandardError)

    def load_resolver(name)
      resolver_class = name.split('_').reject(&:empty?).map(&:capitalize).join
      class_name = "Bora::Resolver::#{resolver_class}"
      begin
        resolver_class = Kernel.const_get(class_name)
      rescue NameError
        require_resolver_file(name)
        resolver_class = Kernel.const_get(class_name)
      end
      resolver_class
    end

    private

    def require_resolver_file(name)
      require_path = "bora/resolver/#{name}"
      begin
        require require_path
      rescue LoadError
        raise ResolverNotFound, "Could not find resolver for '#{name}'. Expected to find it at '#{require_path}'"
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
bora-1.7.4 lib/bora/parameter_resolver_loader.rb
bora-1.7.3 lib/bora/parameter_resolver_loader.rb
bora-1.7.2 lib/bora/parameter_resolver_loader.rb
bora-1.7.1 lib/bora/parameter_resolver_loader.rb
bora-1.7.0 lib/bora/parameter_resolver_loader.rb