Module: Orchestrated

Defined in:
lib/generators/orchestrated/active_record_generator.rb,
lib/orchestrated/base.rb,
lib/orchestrated/object.rb,
lib/orchestrated/version.rb,
lib/orchestrated/completion.rb,
lib/orchestrated/dependency.rb,
lib/orchestrated/orchestration.rb,
lib/orchestrated/message_delivery.rb

Overview

Extend the DelayedJobGenerator so that it creates an AR migration

Defined Under Namespace

Modules: InstanceMethods Classes: ActiveRecordGenerator, Complete, CompletionExpression, CompositeCompletion, FirstCompletion, Incomplete, LastCompletion, MessageDelivery, Orchestration, OrchestrationCompletion, OrchestrationCompletionShim, OrchestrationDependency, OrchestrationInterest, Proxy

Constant Summary collapse

VERSION =
"0.0.7"

Class Method Summary collapse

Class Method Details

.belongs_to(clazz) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/orchestrated/base.rb', line 22

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) ⇒ Object

snarfed from Ruby On Rails



16
17
18
19
20
21
# File 'lib/orchestrated/base.rb', line 16

def underscore(camel_cased_word)
  camel_cased_word.to_s.gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    tr("-", "_").
    downcase
end