class Rutabaga::Util

Public Class Methods

build_scenario_groups(feature_file) click to toggle source
# File lib/rutabaga/util.rb, line 51
def build_scenario_groups(feature_file)
  [Turnip::Builder.build(feature_file)]
end
find_feature(description) click to toggle source
# File lib/rutabaga/util.rb, line 23
def find_feature(description)
  tried = []

  if description =~ /.*\.(feature|rutabaga)\Z/
    return description if File.exists?(description)
    tried << description

    candidate = File.join(extract_directory, description)
    return candidate if File.exists?(candidate)
    tried << candidate
  else
    feature_files = extract_features
    feature_files.each do |feature_file|
      return feature_file if File.exists?(feature_file)
    end
    tried += feature_files
  end

  raise "Feature file not found. Tried: #{tried.join(', ')}"
end
require_if_exists(filename) click to toggle source
# File lib/rutabaga/util.rb, line 44
def require_if_exists(filename)
  require filename
rescue LoadError => e
  # Don't hide LoadErrors raised in the spec helper.
  raise unless e.message.include?(filename)
end

Private Class Methods

extract_directory() click to toggle source
# File lib/rutabaga/util.rb, line 57
def extract_directory
  caller(0).find do |call|
    call =~ /_spec.rb:/
  end.gsub(/\/[^\/]+_spec.rb:.*\Z/, '')
end
extract_features() click to toggle source
# File lib/rutabaga/util.rb, line 63
def extract_features
  base = caller(0).find do |call|
    call =~ /_spec.rb:/
  end.gsub(/_spec.rb:.*\Z/, '')
  [base+'.feature', base+'.rutabaga']
end