Class: Employer::Employees::AbstractEmployee
- Inherits:
-
Object
- Object
- Employer::Employees::AbstractEmployee
show all
- Defined in:
- lib/employer/employees/abstract_employee.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of AbstractEmployee.
8
9
10
|
# File 'lib/employer/employees/abstract_employee.rb', line 8
def initialize(logger)
@logger = logger
end
|
Instance Attribute Details
#job ⇒ Object
Returns the value of attribute job.
6
7
8
|
# File 'lib/employer/employees/abstract_employee.rb', line 6
def job
@job
end
|
#logger ⇒ Object
Returns the value of attribute logger.
6
7
8
|
# File 'lib/employer/employees/abstract_employee.rb', line 6
def logger
@logger
end
|
Instance Method Details
#force_work_stop ⇒ Object
57
58
|
# File 'lib/employer/employees/abstract_employee.rb', line 57
def force_work_stop
end
|
#free ⇒ Object
48
49
50
51
52
|
# File 'lib/employer/employees/abstract_employee.rb', line 48
def free
return unless work_completed? || work_failed?
@work_state = nil
@job = nil
end
|
#free? ⇒ Boolean
32
33
34
|
# File 'lib/employer/employees/abstract_employee.rb', line 32
def free?
job.nil?
end
|
17
18
19
20
21
|
# File 'lib/employer/employees/abstract_employee.rb', line 17
def perform_job
logger.debug("Employee #{self.object_id} is now performing job #{job.id}")
job.perform
logger.debug("Employee #{self.object_id} has now completed #{job.id}")
end
|
#stop_working ⇒ Object
27
28
29
30
|
# File 'lib/employer/employees/abstract_employee.rb', line 27
def stop_working
return if work_completed? || work_failed?
force_work_stop
end
|
#wait_for_completion ⇒ Object
23
24
25
|
# File 'lib/employer/employees/abstract_employee.rb', line 23
def wait_for_completion
work_state(true)
end
|
#work(job) ⇒ Object
12
13
14
15
|
# File 'lib/employer/employees/abstract_employee.rb', line 12
def work(job)
raise Employer::Errors::EmployeeBusy unless free?
@job = job
end
|
#work_completed? ⇒ Boolean
40
41
42
|
# File 'lib/employer/employees/abstract_employee.rb', line 40
def work_completed?
true if work_state == :complete
end
|
#work_failed? ⇒ Boolean
44
45
46
|
# File 'lib/employer/employees/abstract_employee.rb', line 44
def work_failed?
true if work_state == :failed
end
|
#work_in_progress? ⇒ Boolean
36
37
38
|
# File 'lib/employer/employees/abstract_employee.rb', line 36
def work_in_progress?
true if work_state == :busy
end
|
#work_state(wait = false) ⇒ Object
54
55
|
# File 'lib/employer/employees/abstract_employee.rb', line 54
def work_state(wait = false)
end
|