Module: NameFileFinder

Defined in:
lib/teuton/utils/name_file_finder.rb

Overview

NameFileFinder module Methods: find_filenames_for, verbose, verboseln

Class Method Summary collapse

Class Method Details

.find_configfilename_from_directory(folder_path) ⇒ Object

Find project config filename from input folder path rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength rubocop:disable Style/IfUnlessModifier

Parameters:

  • folder_path (String)


60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/teuton/utils/name_file_finder.rb', line 60

def self.find_configfilename_from_directory(folder_path)
  # COMPLEX MODE: We use config.yaml by default
  app = Application.instance
  config_path = ''

  if app.options['cpath'].nil?
    config_name = 'config'
    # Config name file is introduced by cname arg option from teuton command
    config_name = app.options['cname'] unless app.options['cname'].nil?
    config_path = File.join(folder_path, "#{config_name}.json")
    unless File.exist? config_path
      config_path = File.join(folder_path, "#{config_name}.yaml")
    end
  else
    # Config path file is introduced by cpath arg option from teuton command
    config_path = app.options['cpath']
  end
  app.config_path = config_path
end

.find_configfilenames_from_rb(script_path) ⇒ Object

rubocop:disable Metrics/MethodLength rubocop:disable Metrics/AbcSize rubocop:disable Style/IfUnlessModifier



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/teuton/utils/name_file_finder.rb', line 108

def self.find_configfilenames_from_rb(script_path)
  # SIMPLE MODE: We use script_path as main RB file
  # This must be fullpath to DSL script file
  app = Application.instance

  config_path = ''
  if app.options['cpath'].nil?
    config_name = File.basename(script_path, '.rb')
    # Config name file is introduced by cname arg option from teuton command
    config_name = app.options['cname'] unless app.options['cname'].nil?

    config_path = File.join(app.project_path, config_name + '.json')
    unless File.exist? config_path
      config_path = File.join(app.project_path, config_name + '.yaml')
    end
  else
    # Config path file is introduced by cpath arg option from teuton command
    config_path = app.options['cpath']
  end
  app.config_path = config_path
end

.find_filenames_for(relprojectpath) ⇒ Object

Find project filenames from input project relative path

Parameters:

  • relprojectpath (String)


13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/teuton/utils/name_file_finder.rb', line 13

def self.find_filenames_for(relprojectpath)
  projectpath = File.absolute_path(relprojectpath)

  # Define:
  #   script_path, must contain fullpath to DSL script file
  #   config_path, must contain fullpath to YAML config file
  if File.directory?(projectpath)
    # COMPLEX MODE: We use start.rb as main RB file
    find_filenames_from_directory(projectpath)
  else
    # SIMPLE MODE: We use pathtofile as main RB file
    find_filenames_from_rb(projectpath)
  end
  true
end

.find_filenames_from_directory(folder_path) ⇒ Object

Find project filenames from input folder path rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength

Parameters:

  • folder_path (String)


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/teuton/utils/name_file_finder.rb', line 34

def self.find_filenames_from_directory(folder_path)
  # COMPLEX MODE: We use start.rb as main RB file
  script_path = File.join(folder_path, 'start.rb')
  unless File.exist? script_path
    print Rainbow('[ERROR] File ').red
    print Rainbow(script_path).bright.red
    puts Rainbow(' not found!').red
    exit 1
  end

  app = Application.instance
  app.project_path = folder_path
  app.script_path = script_path
  app.test_name = folder_path.split(File::SEPARATOR)[-1]

  find_configfilename_from_directory(folder_path)
end

.find_filenames_from_rb(script_path) ⇒ Object

rubocop:disable Metrics/AbcSize rubocop:disable Metrics/MethodLength



85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/teuton/utils/name_file_finder.rb', line 85

def self.find_filenames_from_rb(script_path)
  # SIMPLE MODE: We use script_path as main RB file
  # This must be fullpath to DSL script file
  if File.extname(script_path) != '.rb'
    print Rainbow('[ERROR] Script ').red
    print Rainbow(script_path).bright.red
    puts Rainbow(' must have rb extension').red
    exit 1
  end

  app = Application.instance
  app.project_path = File.dirname(script_path)
  app.script_path = script_path
  app.test_name = File.basename(script_path, '.rb')

  find_configfilenames_from_rb(script_path)
end

.verbose(text) ⇒ Object



161
162
163
164
165
166
# File 'lib/teuton/utils/name_file_finder.rb', line 161

def self.verbose(text)
  return unless Application.instance.verbose
  return if Application.instance.options['quiet']

  print text
end

.verboseln(text) ⇒ Object

Trim string text when is too long

def self.trim(input)
  return input unless input.to_s.start_with? Dir.pwd.to_s

  output = input.to_s
  offset = (Dir.pwd).length + 1
  output = "#{input[offset, input.size]}"
  output.to_s
end


157
158
159
# File 'lib/teuton/utils/name_file_finder.rb', line 157

def self.verboseln(text)
  verbose(text + "\n")
end