Module: Yawl::Steps

Defined in:
lib/yawl/steps/base.rb

Defined Under Namespace

Classes: Base, RealStepMissing, SetDefiner

Class Method Summary collapse

Class Method Details

.for(name, process_step) ⇒ Object



54
55
56
57
58
# File 'lib/yawl/steps/base.rb', line 54

def self.for(name, process_step)
  name = name.to_sym
  klass = Base.all_steps[name] || RealStepMissing
  klass.new(process_step)
end

.realize_set_on(name, process) ⇒ Object



44
45
46
47
48
49
50
51
52
# File 'lib/yawl/steps/base.rb', line 44

def self.realize_set_on(name, process)
  unless set_step_names = sets[name.to_sym]
    raise "Set #{name} not found"
  end

  set_step_names.each do |set_step_name|
    process.add_step(:name => set_step_name)
  end
end

.set(name, &block) ⇒ Object



29
30
31
32
33
34
# File 'lib/yawl/steps/base.rb', line 29

def self.set(name, &block)
  name = name.to_sym
  definer = SetDefiner.new(name, &block)
  definer.run
  sets[name] = definer.step_names
end

.setsObject



25
26
27
# File 'lib/yawl/steps/base.rb', line 25

def self.sets
  @sets ||= {}
end

.step(name, &block) ⇒ Object



36
37
38
39
40
41
42
# File 'lib/yawl/steps/base.rb', line 36

def self.step(name, &block)
  name = name.to_sym
  Class.new(Base, &block).tap do |klass|
    klass.instance_eval "def name; #{name.inspect} end", __FILE__, __LINE__
    Base.register(klass)
  end
end