class Orchestrated::Orchestrate

because this class is called “Orchestrate”, the method defined (on Object) will be “orchestrate”

Public Class Methods

belongs_to(clazz) click to toggle source
# File lib/orchestrated/base.rb, line 25
def belongs_to clazz
  # borrowed from Ick
  method_name = self.underscore(self.name.split('::')[-1])
  unless clazz.method_defined?(method_name)
    clazz.class_eval "
      def #{method_name}(prerequisite=Complete.new)
        raise ArgumentError.new('orchestrate does not take a block') if block_given?
        raise ArgumentError.new(%[cannot use \#{prerequisite.class.name} as a prerequisite]) unless
          prerequisite.kind_of?(CompletionExpression)
        Proxy.new(prerequisite, self)
      end"
  end
end
underscore(camel_cased_word) click to toggle source

snarfed from Ruby On Rails

# File lib/orchestrated/base.rb, line 19
def underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    tr("-", "_").
    downcase
end