lib/stair_master/concerns/getters.rb in stair_master-0.0.1 vs lib/stair_master/concerns/getters.rb in stair_master-0.0.2

- old
+ new

@@ -5,10 +5,12 @@ module StairMaster module Concerns module Getters extend ActiveSupport::Concern + private # ------------------------------------------- + def get_step_index_by_name(step_name) available_steps.find_index step_name end def get_step_name_by_index(step_index) @@ -21,42 +23,50 @@ def get_step_by_name(step_name) workflow_map.steps[step_name] end + ## NEXT STEP ---------------------------------------- def get_next_step_index on_last_step? ? nil : find_next_step_index end - def get_previous_step_index(step_index=nil) - on_first_step? ? nil : find_previous_step_index - end + def find_next_step_index(step_index=nil) + next_index = step_index.nil? ? current_step_index.next : step_index.next + step = get_step_by_index next_index - private # ------------------------------------------- - - def find_previous_step_index(step_index=nil) - previous_index = step_index.nil? ? current_step_index.pred : step_index.pred - step = get_step_by_index previous_index - if step.nil? nil elsif step.skip?(self) - find_previous_step_index(previous_index) + if is_last_step?(step.key) + return nil + else + find_next_step_index(next_index) + end else - previous_index + next_index end end - def find_next_step_index(step_index=nil) - next_index = step_index.nil? ? current_step_index.next : step_index.next - step = get_step_by_index next_index + ## GET PREVIOIUS STEP INDEX ------------------------- + def get_previous_step_index(step_index=nil) + on_first_step? ? nil : find_previous_step_index + end + def find_previous_step_index(step_index=nil) + previous_index = step_index.nil? ? current_step_index.pred : step_index.pred + step = get_step_by_index previous_index + if step.nil? nil elsif step.skip?(self) - find_next_step_index(next_index) + if is_first_step?(step.key) + return nil + else + find_previous_step_index(previous_index) + end else - next_index + previous_index end end end end end \ No newline at end of file