class Orchestra::DSL::ObjectAdapter

Attributes

collection[RW]

Public Class Methods

build_step(object, args = {}) click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 4
def self.build_step object, args = {}
  method_name = args.delete :method do :execute end
  collection = args.delete :iterates_over
  adapter_type = determine_type object, method_name
  adapter = adapter_type.new object, method_name, collection
  StepFactory.build adapter, args
end
determine_type(object, method_name) click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 12
def self.determine_type object, method_name
  if object.public_methods.include? method_name
    SingletonAdapter
  elsif object.kind_of? Class
    ClassAdapter
  else
    SingletonAdapter
  end
end
new(object, method_name, collection) click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 24
def initialize object, method_name, collection
  @collection = collection
  @method_name = method_name || :execute
  @object = object
end

Public Instance Methods

build_context(state) click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 30
def build_context state
  ObjectContext.new self, state
end
collection?() click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 34
def collection?
  @collection ? true : false
end
context_class() click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 38
def context_class
  @context_class ||= Step.build_execution_context_class dependencies
end
dependencies() click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 42
def dependencies
  [collection, *object_method.dependencies].compact
end
name() click to toggle source
# File lib/orchestra/dsl/object_adapter.rb, line 46
def name
  if method_name == :execute
    object.name
  else
    "#{object.name}##{method_name}"
  end
end