class Aws::Waiters::Provider
@api private
def initialize(definitions)
def initialize(definitions) @waiter_names = Set.new @definitions = definitions['waiters'].each.with_object({}) do |(k,v),h| if k.match(/^__/) h[k] = v else underscore(k).to_sym.tap do |name| @waiter_names << name h[name] = v end end end end
def resolve(definition)
def resolve(definition) if extends = definition.delete('extends') resolve(@definitions[extends].merge(definition)) else (@definitions['__default__'] || {}).merge(definition) end end
def underscore(str)
def underscore(str) str.gsub(/\w+/) { |part| Seahorse::Util.underscore(part) } end
def waiter(waiter_name)
-
(ArgumentError)
-
Returns:
-
(Waiter)
-
Parameters:
-
waiter_name
(Symbol
) --
def waiter(waiter_name) if @waiter_names.include?(waiter_name) Waiter.new(resolve('extends' => waiter_name)) else raise Errors::NoSuchWaiter.new(waiter_name, waiter_names) end end
def waiter_names
-
(Array
-)
def waiter_names @waiter_names.to_a end