Class: Workarea::StatusCalculator
- Inherits:
-
Object
- Object
- Workarea::StatusCalculator
- Defined in:
- app/models/workarea/status_calculator.rb
Overview
TODO: for v4, remove @order, as this can be/is used with other classes.
Defined Under Namespace
Modules: Status
Instance Attribute Summary collapse
-
#calculators ⇒ Object
readonly
Returns the value of attribute calculators.
-
#model ⇒ Object
readonly
Returns the value of attribute model.
-
#order ⇒ Object
readonly
Returns the value of attribute order.
Instance Method Summary collapse
-
#initialize(calculators, model) ⇒ StatusCalculator
constructor
A new instance of StatusCalculator.
- #result ⇒ Object
- #results ⇒ Object
Constructor Details
#initialize(calculators, model) ⇒ StatusCalculator
Returns a new instance of StatusCalculator.
22 23 24 25 |
# File 'app/models/workarea/status_calculator.rb', line 22 def initialize(calculators, model) @calculators = calculators @order = @model = model end |
Instance Attribute Details
#calculators ⇒ Object (readonly)
Returns the value of attribute calculators.
20 21 22 |
# File 'app/models/workarea/status_calculator.rb', line 20 def calculators @calculators end |
#model ⇒ Object (readonly)
Returns the value of attribute model.
20 21 22 |
# File 'app/models/workarea/status_calculator.rb', line 20 def model @model end |
#order ⇒ Object (readonly)
Returns the value of attribute order.
20 21 22 |
# File 'app/models/workarea/status_calculator.rb', line 20 def order @order end |
Instance Method Details
#result ⇒ Object
27 28 29 30 31 32 |
# File 'app/models/workarea/status_calculator.rb', line 27 def result status = calculators.detect { |c| c.new(@model).in_status? } || calculators.first status.name.demodulize.underscore.to_sym end |
#results ⇒ Object
34 35 36 37 38 |
# File 'app/models/workarea/status_calculator.rb', line 34 def results calculators .select { |c| c.new(@model).in_status? } .map { |status| status.name.demodulize.underscore.to_sym } end |