Class: Progression::Progress

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(object, progression) ⇒ Progress

Returns a new instance of Progress.



53
54
55
56
57
# File 'lib/progression.rb', line 53

def initialize(object, progression)
  @object = object
  @progression = progression
  @steps = progression.steps
end

Instance Attribute Details

#stepsObject (readonly)

Returns the value of attribute steps.



51
52
53
# File 'lib/progression.rb', line 51

def steps
  @steps
end

Instance Method Details

#completed_stepsObject



59
60
61
62
63
# File 'lib/progression.rb', line 59

def completed_steps
  steps.select do |step|
    step.evaluate(@object)
  end
end

#next_stepObject



71
72
73
74
75
# File 'lib/progression.rb', line 71

def next_step
  steps.find do |step|
    !step.evaluate(@object)
  end
end

#percentage_completedObject



65
66
67
68
69
# File 'lib/progression.rb', line 65

def percentage_completed
  completed_steps.inject(0) do |percentage_completed, step|
    percentage_completed + @progression.percentage_value_for(step)
  end
end

#percentage_completed_after_next_stepObject



77
78
79
80
# File 'lib/progression.rb', line 77

def percentage_completed_after_next_step
  return 100.0 if next_step.nil?
  percentage_completed + @progression.percentage_value_for(next_step)
end