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