Sha256: 2418206ce3c6d7a716cfc17258993c770cb6605baeedf754a9cb5d0fec3b95ad

Contents?: true

Size: 1.88 KB

Versions: 34

Compression:

Stored size: 1.88 KB

Contents

require 'rbconfig'
require 'cucumber/version'

# This generator bootstraps a Rails project for use with Cucumber
class CucumberGenerator < Rails::Generator::Base
  DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'],
                              Config::CONFIG['ruby_install_name'])

  attr_accessor :framework

  def manifest
    record do |m|
      m.directory 'features/step_definitions'
      m.template  'webrat_steps.rb', 'features/step_definitions/webrat_steps.rb'
      m.template  'cucumber_environment.rb', 'config/environments/cucumber.rb',
        :assigns => { :cucumber_version => ::Cucumber::VERSION::STRING }

      m.gsub_file 'config/database.yml', /test:.*\n/, "test: &TEST\n"
      m.gsub_file 'config/database.yml', /\z/, "\ncucumber:\n  <<: *TEST"

      m.directory 'features/support'

      if spork?
        m.template  'spork_env.rb',     'features/support/env.rb'
      else
        m.template  'env.rb',           'features/support/env.rb'
      end

      m.file      'paths.rb',         'features/support/paths.rb'

      m.directory 'lib/tasks'
      m.template  'cucumber.rake',    'lib/tasks/cucumber.rake'

      m.file      'cucumber',         'script/cucumber', {
        :chmod => 0755, :shebang => options[:shebang] == DEFAULT_SHEBANG ? nil : options[:shebang]
      }
    end
  end

  def framework
    options[:framework] || :rspec
  end
  
  def spork?
    options[:spork]
  end

protected

  def banner
    "Usage: #{$0} cucumber"
  end

  def add_options!(opt)
    opt.separator ''
    opt.separator 'Options:'
    opt.on('--rspec', 'Setup cucumber for use with RSpec (default)') do |value|
      options[:framework] = :rspec
    end

    opt.on('--testunit', 'Setup cucumber for use with test/unit') do |value|
      options[:framework] = :testunit
    end

    opt.on('--spork', 'Setup cucumber for use with Spork') do |value|
      options[:spork] = true
    end
  end

end

Version data entries

34 entries across 34 versions & 6 rubygems

Version Path
aslakhellesoy-cucumber-0.3.100 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.101.2 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.101 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.102.1 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.102.2 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.102 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.103 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.104 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.93.1 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.93 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.94.1 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.94 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.95 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.96 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.97 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.98 rails_generators/cucumber/cucumber_generator.rb
aslakhellesoy-cucumber-0.3.99 rails_generators/cucumber/cucumber_generator.rb
dwaite-cucumber-0.3.101 rails_generators/cucumber/cucumber_generator.rb
engineyard-cucumber-0.3.101 rails_generators/cucumber/cucumber_generator.rb
pezra-cucumber-0.3.94.1 rails_generators/cucumber/cucumber_generator.rb