1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
module Aws
module Endpoints
# @api private
class RulesProvider
def initialize(rule_set)
@rule_set = rule_set
end
def resolve_endpoint(parameters)
obj = resolve_rules(parameters)
case obj
when Endpoint
obj
when ArgumentError
raise obj
else
raise ArgumentError, 'No endpoint could be resolved'
end
end
private
def resolve_rules(parameters)
@rule_set.rules.each do |rule|
output = rule.match(parameters)
return output if output
end
nil
end
end
end
end
|