class Seahorse::Model::Api

def compute_operations

def compute_operations
  @operations = {}
  @operation_defs = {}
  (definition['operations'] || {}).each do |name,definition|
    name = Util.underscore(name).to_sym
    @operation_defs[name] = definition
  end
  @operation_names = @operation_defs.keys
end

def each_operation(&block)

def each_operation(&block)
  operation_names.each do |name|
    yield(name, operation(name))
  end
end

def initialize(definition = {})

Parameters:
  • definition (Hash) --
def initialize(definition = {})
  @metadata = definition['metadata'] || {}
  @version = metadata('apiVersion')
  @documentation = definition['documentation']
  @definition = definition
  @shape_map = ShapeMap.new(definition['shapes'] || {})
  compute_operations
end

def inspect

Returns:
  • (String) -

Other tags:
    Api: - private
def inspect
  "#<#{self.class.name} version=#{version.inspect}>"
end

def metadata(key)

Returns:
  • (Object, nil) -

Parameters:
  • key (String) --
def metadata(key)
  @metadata[key]
end

def operation(name)

Returns:
  • (Operation) -

Parameters:
  • name (Symbol) --
def operation(name)
  name = name.to_sym
  if definition = @operation_defs[name]
    @operations[name] ||= Operation.new(definition, shape_map: @shape_map)
  else
    raise ArgumentError, "unknown operation :#{name}"
  end
end

def operation?(name)

Returns:
  • (Boolean) - Returns `true` if this API provides an operation

Parameters:
  • name (Symbol) --
def operation?(name)
  @operation_defs.key?(name.to_sym)
end

def operations

Returns:
  • (Enumerable) -
def operations
  enum_for(:each_operation) { |*args| operation_names.size }
end