Class: Henry::Task

Inherits:
Object
  • Object
show all
Defined in:
lib/henry/task.rb,
lib/henry/task/rake_task.rb,
lib/henry/task/rspec_task.rb,
lib/henry/task/cucumber_task.rb,
lib/henry/task/minitest_task.rb

Overview

Henry Task

Direct Known Subclasses

RakeTask

Defined Under Namespace

Classes: CucumberTask, MiniTestTask, RakeTask, RspecTask

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, data) ⇒ Task

Initialize the Task with the given name and data.



22
23
24
25
26
27
28
# File 'lib/henry/task.rb', line 22

def initialize(name, data)
  self.data = OpenStruct.new(data)
  self.enabled = true
  self.execution.task_name = name
  self.name = name
  self.timeout = self.data.timeout || 18000 #The given timeout (in seconds) or 5 hours
end

Instance Attribute Details

#dataObject

Accessors for name, data and enabled



9
10
11
# File 'lib/henry/task.rb', line 9

def data
  @data
end

#enabledObject

Accessors for name, data and enabled



9
10
11
# File 'lib/henry/task.rb', line 9

def enabled
  @enabled
end

#nameObject

Accessors for name, data and enabled



9
10
11
# File 'lib/henry/task.rb', line 9

def name
  @name
end

#timeoutObject

Accessors for name, data and enabled



9
10
11
# File 'lib/henry/task.rb', line 9

def timeout
  @timeout
end

Class Method Details

.create(name, data) ⇒ Henry::Task

Note:

Factory to create X Task instances.

Returns an instance of the target Task class.



17
18
19
# File 'lib/henry/task.rb', line 17

def self.create(name, data)
  return Kernel.eval(data['class_name']).new(name, data)
end

Instance Method Details

#after_executeObject

Code to be run justafter the execution



37
38
39
40
# File 'lib/henry/task.rb', line 37

def after_execute
  LoggerService.stop
  ExecutionService.stop
end

#before_executeObject

Code to be run just before the execution



31
32
33
34
# File 'lib/henry/task.rb', line 31

def before_execute
  LoggerService.start(self.logger)
  ExecutionService.start(self.execution)
end

#configure(params, extended_context = {}) ⇒ Object

Nothing to be done here… The Task configuration code should be defined under this method on the specific Task class.



108
109
# File 'lib/henry/task.rb', line 108

def configure(params, extended_context={})
end

#disable!Object

Makes the Task disabled



97
98
99
# File 'lib/henry/task.rb', line 97

def disable!
  self.enabled = false
end

#disabled?True, False

Returns true whenever the Task is disabled.



87
88
89
# File 'lib/henry/task.rb', line 87

def disabled?
  !self.enabled?
end

#enable!Object

Makes the Task enabled



92
93
94
# File 'lib/henry/task.rb', line 92

def enable!
  self.enabled = true
end

#enabled?True, False

Returns true whenever the Task is enabled.



80
81
82
# File 'lib/henry/task.rb', line 80

def enabled?
  self.enabled
end

#executeObject

The execution code should be defined under this method on the specific Task class.



102
103
104
# File 'lib/henry/task.rb', line 102

def execute
  abort "Your task class ('#{self.class}' may be?) MUST define this method with its execution logic."
end

#executionExecution

Returns the Task Execution.



66
67
68
# File 'lib/henry/task.rb', line 66

def execution
  @execution ||= Execution.new
end

#export_config(config) ⇒ Object

Exports the Task config to the ENV.



59
60
61
# File 'lib/henry/task.rb', line 59

def export_config(config)
  Henry::Config.export!(config)
end

#export_params(params) ⇒ Object

Exports the Task params to the ENV.



52
53
54
# File 'lib/henry/task.rb', line 52

def export_params(params)
  Input.export!(params)
end

#loggerLogger

Returns the Task Logger.



73
74
75
# File 'lib/henry/task.rb', line 73

def logger
  @logger ||= Logger.new
end

#reportHash

Returns the json ready hash report of the task execution.



45
46
47
# File 'lib/henry/task.rb', line 45

def report
  self.execution.report
end