Class: Generator

Inherits:
Thor::Group
  • Object
show all
Includes:
TemplateRenderer, Thor::Actions
Defined in:
lib/generators/generator.rb

Constant Summary collapse

LATEST_RUBY =
'3.4'

Class Method Summary collapse

Instance Method Summary collapse

Methods included from TemplateRenderer

included, #partial

Class Method Details

.source_pathsObject



16
17
18
19
20
21
# File 'lib/generators/generator.rb', line 16

def self.source_paths
  base_path = File.dirname(__FILE__)
  %W[#{base_path}/automation/templates #{base_path}/cucumber/templates
     #{base_path}/rspec/templates #{base_path}/minitest/templates
     #{base_path}/templates #{base_path}/infrastructure/templates ]
end

Instance Method Details

#allure_reporter?Boolean

Returns:

  • (Boolean)


100
101
102
103
# File 'lib/generators/generator.rb', line 100

def allure_reporter?
  has_reporter = args.any? { |a| a&.start_with?('reporter_') }
  has_reporter ? args.include?('reporter_allure') : !skip_allure?
end

#android?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/generators/generator.rb', line 48

def android?
  args.include?('android')
end

#argsObject



23
24
25
# File 'lib/generators/generator.rb', line 23

def args
  initializer.first
end

#axe_addon?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/generators/generator.rb', line 80

def axe_addon?
  args.include?('axe_addon')
end

#capybara?Boolean

Returns:

  • (Boolean)


64
65
66
# File 'lib/generators/generator.rb', line 64

def capybara?
  args.include?('capybara')
end

#cross_platform?Boolean

The framework is cross platform when it supports Android and iOS

Returns:

  • (Boolean)


32
33
34
# File 'lib/generators/generator.rb', line 32

def cross_platform?
  args.include?('cross_platform')
end

#cucumber?Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/generators/generator.rb', line 27

def cucumber?
  args.include?('cucumber')
end

#ios?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/generators/generator.rb', line 44

def ios?
  args.include?('ios')
end

#json_reporter?Boolean

Returns:

  • (Boolean)


109
110
111
# File 'lib/generators/generator.rb', line 109

def json_reporter?
  args.include?('reporter_json')
end

#junit_reporter?Boolean

Returns:

  • (Boolean)


105
106
107
# File 'lib/generators/generator.rb', line 105

def junit_reporter?
  args.include?('reporter_junit')
end

#lighthouse_addon?Boolean

Returns:

  • (Boolean)


84
85
86
# File 'lib/generators/generator.rb', line 84

def lighthouse_addon?
  args.include?('lighthouse_addon')
end

#minitest?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/generators/generator.rb', line 56

def minitest?
  args.include?('minitest')
end

#mobile?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/generators/generator.rb', line 36

def mobile?
  (args & %w[android ios cross_platform]).count.positive?
end

#rspec?Boolean

Returns:

  • (Boolean)


52
53
54
# File 'lib/generators/generator.rb', line 52

def rspec?
  args.include?('rspec')
end

#ruby_versionObject



113
114
115
116
# File 'lib/generators/generator.rb', line 113

def ruby_version
  arg = args.find { |a| a&.start_with?('ruby_version:') }
  arg ? arg.split(':', 2).last : LATEST_RUBY
end

#selenium?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/generators/generator.rb', line 60

def selenium?
  args.include?('selenium')
end

#selenium_based?Boolean

Returns:

  • (Boolean)


88
89
90
# File 'lib/generators/generator.rb', line 88

def selenium_based?
  args.include?('selenium')
end

#single_platform?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/generators/generator.rb', line 40

def single_platform?
  (args & %w[android ios]).count.positive?
end

#skip_allure?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/generators/generator.rb', line 92

def skip_allure?
  args.include?('skip_allure')
end

#skip_video?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/generators/generator.rb', line 96

def skip_video?
  args.include?('skip_video')
end

#visual_addon?Boolean

Returns:

  • (Boolean)


68
69
70
# File 'lib/generators/generator.rb', line 68

def visual_addon?
  args.include?('visual_addon')
end

#watir?Boolean

Returns:

  • (Boolean)


72
73
74
# File 'lib/generators/generator.rb', line 72

def watir?
  args.include?('watir')
end

#web?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/generators/generator.rb', line 76

def web?
  (args & %w[selenium watir capybara]).count.positive?
end