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)

Raises:
  • (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

Returns:
  • (Array) -
def waiter_names
  @waiter_names.to_a
end