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