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 = {})
-
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
-
(String)
-
Other tags:
- Api: - private
def inspect "#<#{self.class.name} version=#{version.inspect}>" end
def metadata(key)
-
(Object, nil)
-
Parameters:
-
key
(String
) --
def metadata(key) @metadata[key] end
def operation(name)
-
(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)
-
(Boolean)
- Returns `true` if this API provides an operation
Parameters:
-
name
(Symbol
) --
def operation?(name) @operation_defs.key?(name.to_sym) end
def operations
-
(Enumerable)
-
def operations enum_for(:each_operation) { |*args| operation_names.size } end