forked from cucumber/cucumber-rails
/
skeleton_generator.rb
63 lines (49 loc) · 1.98 KB
/
skeleton_generator.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
puts "HALOOOOOOOOOOOOOOOOO"
require File.join(File.dirname(__FILE__), 'skeleton_base')
module Cucumber
# module Generators
class SkeletonGenerator < Rails::Generators::Base
include Cucumber::Generators::SkeletonBase
DEFAULT_SHEBANG = File.join(Config::CONFIG['bindir'], Config::CONFIG['ruby_install_name'])
argument :language, :type => :string, :banner => "LANG", :optional => true
class_option :webrat, :type => :boolean, :desc => "Use Webrat"
class_option :capybara, :type => :boolean, :desc => "Use Capybara"
class_option :rspec, :type => :boolean, :desc => "Use RSpec"
class_option :testunit, :type => :boolean, :desc => "Use Test::Unit"
class_option :spork, :type => :boolean, :desc => "Use Spork"
class_option :skip_database, :type => :boolean, :desc => "Skip modification of database.yml", :aliases => '-D', :default => false
attr_reader :framework, :driver
def configure_defaults
@language ||= 'en'
@framework = framework_from_options || detect_current_framework || detect_default_framework
@driver = driver_from_options || detect_current_driver || detect_default_driver
end
def generate
check_upgrade_limitations
create_templates
create_scripts
create_step_definitions
create_feature_support
create_tasks
create_database unless options[:skip_database]
end
def self.gem_root
File.expand_path("../../../../../", __FILE__)
end
def self.source_root
File.join(gem_root, 'templates/skeleton')
end
private
def framework_from_options
return :rspec if options[:rspec]
return :testunit if options[:testunit]
return nil
end
def driver_from_options
return :webrat if options[:webrat]
return :capybara if options[:capybara]
return nil
end
end
# end
end