Class: Cucumber::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/cucumber/install_generator.rb

Constant Summary collapse

DEFAULT_SHEBANG =
File.join(RbConfig::CONFIG['bindir'], RbConfig::CONFIG['ruby_install_name'])

Instance Method Summary collapse

Instance Method Details

#configure_environmentObject



36
37
38
39
40
41
42
43
# File 'lib/generators/cucumber/install_generator.rb', line 36

def configure_environment
  environment(<<~CONFIG, env: %w[development test]) if ::Rails::VERSION::MAJOR >= 6
    # Configure 'rails notes' to inspect Cucumber files
    config.annotations.register_directories('features')
    config.annotations.register_extensions('feature') { |tag| /#\\s*(\#{tag}):?\\s*(.*)$/ }

  CONFIG
end

#create_databaseObject



50
51
52
53
54
55
56
# File 'lib/generators/cucumber/install_generator.rb', line 50

def create_database
  return unless File.exist?('config/database.yml')
  return unless File.read('config/database.yml').include? 'cucumber:'

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

#create_feature_supportObject



31
32
33
34
# File 'lib/generators/cucumber/install_generator.rb', line 31

def create_feature_support
  empty_directory 'features/support'
  template 'support/env.rb.erb', 'features/support/env.rb'
end

#create_scriptsObject



21
22
23
24
# File 'lib/generators/cucumber/install_generator.rb', line 21

def create_scripts
  copy_file 'bin/cucumber', 'bin/cucumber'
  chmod     'bin/cucumber', 0755
end

#create_step_definitionsObject



26
27
28
29
# File 'lib/generators/cucumber/install_generator.rb', line 26

def create_step_definitions
  empty_directory 'features/step_definitions'
  create_file 'features/step_definitions/.keep'
end

#create_tasksObject



45
46
47
48
# File 'lib/generators/cucumber/install_generator.rb', line 45

def create_tasks
  empty_directory 'lib/tasks'
  template 'tasks/cucumber.rake.erb', 'lib/tasks/cucumber.rake'
end

#create_templatesObject



17
18
19
# File 'lib/generators/cucumber/install_generator.rb', line 17

def create_templates
  template 'config/cucumber.yml.erb', 'config/cucumber.yml'
end