module Aws::Resources::OperationMethods

Public Instance Methods

add_batch_operation(method_name, operation = nil, &definition) click to toggle source

@param [Symbol] method_name @param [Operation] operation @return [void]

# File lib/aws-sdk-resources/operation_methods.rb, line 45
def add_batch_operation(method_name, operation = nil, &definition)
  operation = definition if block_given?
  @batch_operations[method_name.to_sym] = operation
end
add_operation(method_name, operation = nil, &definition) click to toggle source

@param [Symbol] method_name @param [Operation] operation @return [void]

# File lib/aws-sdk-resources/operation_methods.rb, line 16
def add_operation(method_name, operation = nil, &definition)
  operation = definition if block_given?
  safe_define_method(method_name) do |*args, &block|
    operation.call(resource:self, args:args, block:block)
  end
  @operations[method_name.to_sym] = operation
end
batch_operation(name) click to toggle source

@param [Symbol] name @return [Operation] Returns the named batch operation. @raise [Errors::UnknownOperationError]

# File lib/aws-sdk-resources/operation_methods.rb, line 37
def batch_operation(name)
  @batch_operations[name.to_sym] or
    raise Errors::UnknownOperationError.new(name)
end
batch_operation_names() click to toggle source

@return [Array<Symbol>]

# File lib/aws-sdk-resources/operation_methods.rb, line 56
def batch_operation_names
  @batch_operations.keys.sort
end
batch_operations(&block) click to toggle source

@return [Hash]

# File lib/aws-sdk-resources/operation_methods.rb, line 51
def batch_operations(&block)
  @batch_operations.dup
end
inherited(subclass) click to toggle source

@api private

# File lib/aws-sdk-resources/operation_methods.rb, line 61
def inherited(subclass)
  subclass.send(:instance_variable_set, "@operations", {})
  subclass.send(:instance_variable_set, "@batch_operations", {})
end
operation(name) click to toggle source

@param [Symbol] name @return [Operation] Returns the named operation. @raise [Errors::UnknownOperationError]

# File lib/aws-sdk-resources/operation_methods.rb, line 8
def operation(name)
  @operations[name.to_sym] or
    raise Errors::UnknownOperationError.new(name)
end
operation_names() click to toggle source

@return [Array<Symbol>]

# File lib/aws-sdk-resources/operation_methods.rb, line 30
def operation_names
  @operations.keys.sort
end
operations(&block) click to toggle source

@return [Hash]

# File lib/aws-sdk-resources/operation_methods.rb, line 25
def operations(&block)
  @operations.dup
end

Private Instance Methods

safe_define_method(method_name, &block) click to toggle source
# File lib/aws-sdk-resources/operation_methods.rb, line 68
def safe_define_method(method_name, &block)
  if
    instance_methods.include?(method_name.to_sym) &&
    ENV['AWS_SDK_SAFE_DEFINE']
  then
    msg = "unable to define method #{name}##{method_name}, "
    msg << "method already exists"
    raise Errors::DefinitionError, msg
  else
    define_method(method_name, &block)
  end
end