Class: Burke::TaskDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/burke.rb

Constant Summary collapse

ALL =
{}

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ TaskDefinition

Returns a new instance of TaskDefinition.



15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/burke.rb', line 15

def initialize *args, &block
  a1, a2 = *args
  name = nil
  prereqs = nil
  if a1.is_a? Hash
    name, prereqs = *a1.entries[0]
  else
    name, prereqs = a1, a2
  end
  @name = String(name)
  @prerequisites = [*prereqs].compact.map {|e| String(e)}
  @block = block
  ALL[@name] = self
end

Instance Attribute Details

#blockObject (readonly)

Returns the value of attribute block.



13
14
15
# File 'lib/burke.rb', line 13

def block
  @block
end

#nameObject (readonly)

Returns the value of attribute name.



13
14
15
# File 'lib/burke.rb', line 13

def name
  @name
end

#prerequisitesObject (readonly)

Returns the value of attribute prerequisites.



13
14
15
# File 'lib/burke.rb', line 13

def prerequisites
  @prerequisites
end

Instance Method Details

#execute(s) ⇒ Object



30
31
32
33
34
35
36
# File 'lib/burke.rb', line 30

def execute(s)
  unless @executed
    execute_prerequisites(s)
    @block.call(s)
    @executed = true
  end
end

#execute_prerequisites(s) ⇒ Object



38
39
40
41
42
# File 'lib/burke.rb', line 38

def execute_prerequisites(s)
  @prerequisites.each do |prereq|
    ALL[prereq].execute(s)
  end
end