class StairMaster::Step
Attributes
conditions[RW]
key[R]
label[RW]
path[RW]
Public Class Methods
new(key, label, path, conditions)
click to toggle source
# File lib/stair_master/step.rb, line 7 def initialize(key, label, path, conditions) @key = key @label = label @path = path @conditions = build_conditions conditions end
Public Instance Methods
skip?(context)
click to toggle source
Methods ——————————————–
# File lib/stair_master/step.rb, line 16 def skip?(context) rules = @conditions[:skippable] ( rules.empty? ? [false] : test_rules(rules, context) ).all? end
test_rules(rules, context)
click to toggle source
# File lib/stair_master/step.rb, line 21 def test_rules(rules, context) results = [] rules.each{ |condition| results << condition.test(context) } results end
to_s()
click to toggle source
# File lib/stair_master/step.rb, line 37 def to_s label end
url_for(resources=[], options={})
click to toggle source
# File lib/stair_master/step.rb, line 27 def url_for(resources=[], options={}) begin ## TODO: There is probably a better way to handle this. resources = resources.nil? ? [] : resources Rails.application.routes.url_helpers.send @path.to_sym, (resources.empty? ? nil : resources), options rescue Exception => e raise RuntimeError, "Could not find the route '#{ @path }' in your application. #{ e.message }" end end