Class: Orchestrated::Orchestrate
Overview
because this class is called “Orchestrate”, the method defined (on Object) will be “orchestrate”
Class Method Summary collapse
- .belongs_to(clazz) ⇒ Object
-
.underscore(camel_cased_word) ⇒ Object
snarfed from Ruby On Rails.
Class Method Details
.belongs_to(clazz) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 |
# 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) ⇒ Object
snarfed from Ruby On Rails
19 20 21 22 23 24 |
# 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 |