class Seahorse::Client::Configuration::DefaultResolver

@api private

Public Class Methods

new(struct) click to toggle source
# File lib/seahorse/client/configuration.rb, line 185
def initialize(struct)
  @struct = struct
  @members = Set.new(@struct.members)
end

Public Instance Methods

override_config(k, v) click to toggle source
# File lib/seahorse/client/configuration.rb, line 198
def override_config(k, v)
  @struct[k] = v
end
resolve() click to toggle source
# File lib/seahorse/client/configuration.rb, line 190
def resolve
  @members.each { |opt_name| value_at(opt_name) }
end
respond_to?(method_name, *args) click to toggle source
Calls superclass method
# File lib/seahorse/client/configuration.rb, line 194
def respond_to?(method_name, *args)
  @members.include?(method_name) or super
end

Private Instance Methods

method_missing(method_name, *args) click to toggle source
Calls superclass method
# File lib/seahorse/client/configuration.rb, line 226
def method_missing(method_name, *args)
  if @members.include?(method_name)
    value_at(method_name)
  else
    super
  end
end
resolve_defaults(opt_name, defaults) click to toggle source
# File lib/seahorse/client/configuration.rb, line 217
def resolve_defaults(opt_name, defaults)
  defaults.each do |default|
    default = default.call(self) if default.is_a?(DynamicDefault)
    @struct[opt_name] = default
    break if !default.nil?
  end
  @struct[opt_name]
end
value_at(opt_name) click to toggle source
# File lib/seahorse/client/configuration.rb, line 204
def value_at(opt_name)
  value = @struct[opt_name]
  if value.is_a?(Defaults)
    # this config value is used by endpoint discovery
    if opt_name == :endpoint && @struct.members.include?(:regional_endpoint)
      @struct[:regional_endpoint] = true
    end
    resolve_defaults(opt_name, value)
  else
    value
  end
end