Class: Specimen::Generator::SpecimenProjectConfig

Inherits:
Object
  • Object
show all
Defined in:
lib/specimen/generator/specimen_project_config.rb

Constant Summary collapse

GEM_LIST =
%w[
  activesupport dotenv ffaker rest-client thor uuid
  cucumber cuke_modeler parallel_tests rspec
  selenium-webdriver watir
  debug pry rubocop
].freeze

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ SpecimenProjectConfig

Returns a new instance of SpecimenProjectConfig.



13
14
15
# File 'lib/specimen/generator/specimen_project_config.rb', line 13

def initialize(options)
  @options = options
end

Instance Method Details

#api_only?Boolean

Returns:

  • (Boolean)


45
46
47
# File 'lib/specimen/generator/specimen_project_config.rb', line 45

def api_only?
  @options[:api_only]
end

#cucumber?Boolean

Returns:

  • (Boolean)


49
50
51
# File 'lib/specimen/generator/specimen_project_config.rb', line 49

def cucumber?
  @options[:cucumber]
end

#dataObject



17
18
19
20
21
22
23
24
25
# File 'lib/specimen/generator/specimen_project_config.rb', line 17

def data
  @data ||= {
    project_name: project_name,
    gems: project_gems,
    project_root: project_root,
    api_only: api_only?,
    cucumber: cucumber?
  }
end

#gemsObject



41
42
43
# File 'lib/specimen/generator/specimen_project_config.rb', line 41

def gems
  @gems ||= GEM_LIST.dup
end

#project_gemsObject



27
28
29
30
31
# File 'lib/specimen/generator/specimen_project_config.rb', line 27

def project_gems
  gems.reject! { |gem| gem.eql?('selenium-webdriver') || gem.eql?('watir') } if api_only?
  gems.reject! { |gem| gem.eql?('cucumber') || gem.eql?('cuke_modeler') } unless cucumber?
  gems.sort
end

#project_nameObject



37
38
39
# File 'lib/specimen/generator/specimen_project_config.rb', line 37

def project_name
  @options[:project_name]
end

#project_rootObject



33
34
35
# File 'lib/specimen/generator/specimen_project_config.rb', line 33

def project_root
  "#{@options[:destination_root]}/#{project_name}"
end