class Cucumber::InstallGenerator

Constants

DEFAULT_SHEBANG

Public Instance Methods

configure_environment() click to toggle source
# 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_database() click to toggle source
# 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_support() click to toggle source
# 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_scripts() click to toggle source
# 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_definitions() click to toggle source
# 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_tasks() click to toggle source
# 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_templates() click to toggle source
# File lib/generators/cucumber/install_generator.rb, line 17
def create_templates
  template 'config/cucumber.yml.erb', 'config/cucumber.yml'
end

Protected Instance Methods

embed_file(source, indent = '') click to toggle source
# File lib/generators/cucumber/install_generator.rb, line 60
def embed_file(source, indent = '')
  File.read(File.join(self.class.source_root, source)).gsub(/^/, indent)
end
embed_template(source, indent = '') click to toggle source
# File lib/generators/cucumber/install_generator.rb, line 64
def embed_template(source, indent = '')
  template = File.join(self.class.source_root, source)
  ERB.new(File.read(template), trim_mode: '-').result(binding).gsub(/^/, indent)
end