Class: Specimen::Generator::SpecimenProject

Inherits:
Commands::BaseGroupCommand show all
Includes:
Specimen::Generator
Defined in:
lib/specimen/generator/specimen_project.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Specimen::Generator

#create_file_by_template

Methods inherited from Commands::BaseGroupCommand

banner

Constructor Details

#initialize(_, _, _) ⇒ SpecimenProject

Returns a new instance of SpecimenProject.



16
17
18
19
# File 'lib/specimen/generator/specimen_project.rb', line 16

def initialize(_, _, _)
  super
  @opts = project_options.to_h.deep_symbolize_keys
end

Class Method Details

.source_rootObject



12
13
14
# File 'lib/specimen/generator/specimen_project.rb', line 12

def self.source_root
  "#{File.dirname(__FILE__)}/templates"
end

Instance Method Details

#executeObject



29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/specimen/generator/specimen_project.rb', line 29

def execute
  empty_directory(@config.project_name)
  create_root_files

  inside @config.project_root do
    if @config.cucumber?
      empty_directory('features/step_definitions')
      empty_directory('features/support')
    end

    empty_directory('spec/support')
  end
end

#finishObject



43
44
45
# File 'lib/specimen/generator/specimen_project.rb', line 43

def finish
  say("created new Specimen project in #{@config.project_root}", Color::GREEN)
end

#startObject



21
22
23
24
25
26
27
# File 'lib/specimen/generator/specimen_project.rb', line 21

def start
  say('Initialize new Specimen project', Color::BOLD)

  @opts[:project_name].empty? ? ask_for_name : @opts[:project_name]
  @opts[:destination_root] = destination_root
  @config = SpecimenProjectConfig.new(@opts)
end