Sha256: 9ababf5c844b889c765993d4efab20096c6d9b28fa7a1f433f7d43bd67987206

Contents?: true

Size: 686 Bytes

Versions: 6

Compression:

Stored size: 686 Bytes

Contents

class String
  
  # Convert a string into the associated scenario class:
  #
  #   "basic".to_scenario #=> BasicScenario
  #   "basic_scenario".to_scenario #=> BasicScenario
  #
  # Raises Scenario::NameError if the the scenario cannot be loacated in
  # Scenario.load_paths.
  def to_scenario
    class_name = "#{self.strip.camelize.sub(/Scenario$/, '')}Scenario"
    Scenario.load_paths.each do |path|
      filename = "#{path}/#{class_name.underscore}.rb"
      if File.file?(filename)
        require filename
        break
      end
    end
    class_name.constantize rescue raise Scenario::NameError, "Expected to find #{class_name} in #{Scenario.load_paths.inspect}"
  end
  
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
radiant-0.6.5.1 vendor/plugins/scenarios/lib/scenarios/extensions/string.rb
radiant-0.6.5 vendor/plugins/scenarios/lib/scenarios/extensions/string.rb
radiant-0.6.7 vendor/plugins/scenarios/lib/scenarios/extensions/string.rb
radiant-0.6.6 vendor/plugins/scenarios/lib/scenarios/extensions/string.rb
radiant-0.6.8 vendor/plugins/scenarios/lib/scenarios/extensions/string.rb
radiant-0.6.9 vendor/plugins/scenarios/lib/scenarios/extensions/string.rb