teuton 2.3.2 → 2.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/docs/learn/example-02-config.md +0 -1
- data/lib/teuton/application.rb +0 -17
- data/lib/teuton/case_manager/case/dsl/send.rb +2 -1
- data/lib/teuton/case_manager/case/play.rb +7 -8
- data/lib/teuton/case_manager/check_cases.rb +3 -4
- data/lib/teuton/case_manager/main.rb +0 -1
- data/lib/teuton/case_manager/report.rb +3 -8
- data/lib/teuton/case_manager/utils.rb +1 -4
- data/lib/teuton/files/config.yaml +4 -4
- data/lib/teuton/files/start.rb +3 -3
- data/lib/teuton/readme/readme.rb +2 -12
- data/lib/teuton/skeleton.rb +0 -7
- data/lib/teuton/utils/configfile_reader.rb +0 -13
- data/lib/teuton/utils/name_file_finder.rb +0 -45
- data/lib/teuton/utils/verbose.rb +1 -2
- data/lib/teuton/version.rb +1 -1
- data/lib/teuton.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0a36bf6988e2ba265f20e42f586c03272e151403c9f6d721d239cb0eb47f5aed
|
4
|
+
data.tar.gz: bbc005ffac1751e856d6ba0f4b07c1f6e7685e8028204f602636c3e9a17eb306
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9b252bdd093780d5fec237d70f20545303c97d86bc9afa70957a5b1863b772cd69b1018b1e33f685ceb7e8537fc48197d14d64e445ecca071061a18a59d43e01
|
7
|
+
data.tar.gz: 3bfb33b02b0ce7d8507cc479250f2f3fc40173d7eeeb9d8377ff50c84e781c25fa4d842a06fa1b35981ca65cab990eccefb3955506ecce77e72106c29ac3946e
|
data/lib/teuton/application.rb
CHANGED
@@ -22,15 +22,10 @@ class Application
|
|
22
22
|
attr_accessor :hall_of_fame
|
23
23
|
attr_accessor :project_path, :script_path, :config_path, :test_name
|
24
24
|
|
25
|
-
##
|
26
|
-
# Initialize Application instance
|
27
25
|
def initialize
|
28
26
|
reset
|
29
27
|
end
|
30
28
|
|
31
|
-
##
|
32
|
-
# Reset param values
|
33
|
-
# rubocop:disable Metrics/MethodLength
|
34
29
|
def reset
|
35
30
|
@letter = { good: '.', bad: 'F', error: '?', none: ' ' }
|
36
31
|
@running_basedir = Dir.getwd
|
@@ -46,25 +41,15 @@ class Application
|
|
46
41
|
@uses = [] # TODO
|
47
42
|
@hall_of_fame = []
|
48
43
|
end
|
49
|
-
# rubocop:enable Metrics/MethodLength
|
50
44
|
|
51
|
-
##
|
52
|
-
# Return debug param
|
53
|
-
# @return Boolean
|
54
45
|
def debug
|
55
46
|
@default[:debug]
|
56
47
|
end
|
57
48
|
|
58
|
-
##
|
59
|
-
# Return name param
|
60
|
-
# @return String
|
61
49
|
def name
|
62
50
|
@default[:name]
|
63
51
|
end
|
64
52
|
|
65
|
-
##
|
66
|
-
# Return quiet param
|
67
|
-
# @return Boolean
|
68
53
|
def quiet?
|
69
54
|
return true if Application.instance.options['quiet']
|
70
55
|
return true unless Application.instance.verbose
|
@@ -76,7 +61,6 @@ class Application
|
|
76
61
|
# Preprocess input options:
|
77
62
|
# * Convert input case options String to an Array of integers
|
78
63
|
# * Read color input option
|
79
|
-
# rubocop:disable Metrics/AbcSize
|
80
64
|
def add_input_params(projectpath, options)
|
81
65
|
@options.merge! options
|
82
66
|
NameFileFinder.find_filenames_for(projectpath)
|
@@ -89,5 +73,4 @@ class Application
|
|
89
73
|
a = @options['case'].split(',')
|
90
74
|
@options['case'] = a.collect!(&:to_i)
|
91
75
|
end
|
92
|
-
# rubocop:enable Metrics/AbcSize
|
93
76
|
end
|
@@ -18,7 +18,8 @@ module DSL
|
|
18
18
|
ip = get((host + '_ip').to_sym)
|
19
19
|
username = get((host + '_username').to_sym).to_s
|
20
20
|
password = get((host + '_password').to_sym).to_s
|
21
|
-
port = get((host + '_port').to_sym)
|
21
|
+
port = get((host + '_port').to_sym).to_i
|
22
|
+
port = 22 if port.zero?
|
22
23
|
|
23
24
|
filename = @report.filename + '.' + @report.format.to_s
|
24
25
|
localfilepath = File.join(@report.output_dir, filename)
|
@@ -16,15 +16,16 @@ class Case
|
|
16
16
|
end
|
17
17
|
# TODO: Delete old reports???
|
18
18
|
start_time = Time.now
|
19
|
-
|
20
|
-
|
19
|
+
if get(:tt_sequence) == true
|
20
|
+
play_in_sequence
|
21
|
+
else
|
22
|
+
play_in_parallel
|
23
|
+
end
|
21
24
|
fill_report(start_time, Time.now)
|
22
25
|
close_opened_sessions
|
23
26
|
end
|
24
27
|
alias start play
|
25
28
|
|
26
|
-
##
|
27
|
-
# Close opened sessions for this case
|
28
29
|
def close_opened_sessions
|
29
30
|
@sessions.each_value do |s|
|
30
31
|
s.close if s.class == Net::SSH::Connection::Session
|
@@ -46,9 +47,9 @@ class Case
|
|
46
47
|
##
|
47
48
|
# Execute every play#group in sequence
|
48
49
|
def play_in_sequence
|
49
|
-
verboseln "Starting case
|
50
|
+
verboseln "Starting case [#{@config.get(:tt_members)}]"
|
50
51
|
@groups.each do |t|
|
51
|
-
verbose "* Processing
|
52
|
+
verbose "* Processing [#{t[:name]}] "
|
52
53
|
@action[:groupname] = t[:name]
|
53
54
|
instance_eval(&t[:block])
|
54
55
|
verbose "\n"
|
@@ -58,7 +59,6 @@ class Case
|
|
58
59
|
|
59
60
|
##
|
60
61
|
# Fill case report with time information
|
61
|
-
# rubocop:disable Metrics/AbcSize
|
62
62
|
def fill_report(start_time, finish_time)
|
63
63
|
@report.head.merge! @config.global
|
64
64
|
@report.head.merge! @config.local
|
@@ -68,5 +68,4 @@ class Case
|
|
68
68
|
@report.tail[:finish_time] = finish_time
|
69
69
|
@report.tail[:duration] = finish_time - start_time
|
70
70
|
end
|
71
|
-
# rubocop:enable Metrics/AbcSize
|
72
71
|
end
|
@@ -39,12 +39,12 @@ class CaseManager
|
|
39
39
|
# Run all cases
|
40
40
|
def run_all_cases
|
41
41
|
start_time = Time.now
|
42
|
-
if Application.instance.global[:tt_sequence]
|
43
|
-
verboseln Rainbow("
|
42
|
+
if Application.instance.global[:tt_sequence] == true
|
43
|
+
verboseln Rainbow("==> Teuton: Running in sequence (#{start_time})").yellow.bright
|
44
44
|
# Run every case in sequence
|
45
45
|
@cases.each(&:play)
|
46
46
|
else
|
47
|
-
verboseln Rainbow("
|
47
|
+
verboseln Rainbow("==> Teuton: Running in parallel (#{start_time})").yellow.bright
|
48
48
|
threads = []
|
49
49
|
# Run all cases in parallel
|
50
50
|
@cases.each { |c| threads << Thread.new { c.play } }
|
@@ -78,7 +78,6 @@ class CaseManager
|
|
78
78
|
@cases.each { |c| threads << Thread.new { c.close uniques } }
|
79
79
|
threads.each(&:join)
|
80
80
|
|
81
|
-
# Build Hall of Fame
|
82
81
|
build_hall_of_fame
|
83
82
|
end
|
84
83
|
end
|
@@ -12,17 +12,13 @@ class CaseManager
|
|
12
12
|
def open_main_report(config_filepath)
|
13
13
|
app = Application.instance
|
14
14
|
|
15
|
-
@report.head[:tt_title] = "
|
15
|
+
@report.head[:tt_title] = "Teuton (#{Teuton::VERSION})"
|
16
16
|
@report.head[:tt_scriptname] = trim(app.script_path)
|
17
17
|
@report.head[:tt_configfile] = trim(config_filepath)
|
18
18
|
@report.head[:tt_pwd] = app.running_basedir
|
19
19
|
@report.head[:tt_debug] = true if @debug
|
20
20
|
# @report.head[:tt_uses] = app.uses.join(', ') # TO-REVISE
|
21
21
|
@report.head.merge!(app.global)
|
22
|
-
|
23
|
-
verboseln ' '
|
24
|
-
verboseln '=' * @report.head[:tt_title].length
|
25
|
-
verboseln Rainbow(@report.head[:tt_title]).yellow.bright
|
26
22
|
end
|
27
23
|
|
28
24
|
def close_main_report(start_time)
|
@@ -31,9 +27,8 @@ class CaseManager
|
|
31
27
|
@report.tail[:finish_time] = finish_time
|
32
28
|
@report.tail[:duration] = finish_time - start_time
|
33
29
|
|
34
|
-
verbose Rainbow("\n
|
35
|
-
verboseln Rainbow("
|
36
|
-
verboseln '=' * @report.head[:tt_title].length
|
30
|
+
verbose Rainbow("\n==> Teuton: Duration=#{format('%3.3f',(finish_time - start_time))}").yellow.bright
|
31
|
+
verboseln Rainbow(" (#{finish_time})").yellow.bright
|
37
32
|
verboseln ' '
|
38
33
|
|
39
34
|
app = Application.instance
|
@@ -1,8 +1,7 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
1
|
|
3
2
|
require_relative '../application'
|
3
|
+
require 'fileutils'
|
4
4
|
|
5
|
-
# Define general use methods
|
6
5
|
module Utils
|
7
6
|
# Create the directory if it dosn't exist.
|
8
7
|
def ensure_dir(dirname)
|
@@ -13,7 +12,6 @@ module Utils
|
|
13
12
|
true
|
14
13
|
end
|
15
14
|
|
16
|
-
# rubocop:disable Metrics/MethodLength
|
17
15
|
def encode_and_split(encoding, text)
|
18
16
|
# Convert text to UTF-8 deleting unknown chars
|
19
17
|
text ||= '' # Ensure text is not nil
|
@@ -31,7 +29,6 @@ module Utils
|
|
31
29
|
|
32
30
|
text.split("\n")
|
33
31
|
end
|
34
|
-
# rubocop:enable Metrics/MethodLength
|
35
32
|
|
36
33
|
def my_execute(cmd, encoding = 'UTF-8')
|
37
34
|
return { exitstatus: 0, content: '' } if Application.instance.debug
|
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
|
4
|
-
-
|
5
|
-
|
2
|
+
global:
|
3
|
+
cases:
|
4
|
+
- tt_members: MEMBERS
|
5
|
+
tt_moodle_id: MOODLE_ID
|
data/lib/teuton/files/start.rb
CHANGED
data/lib/teuton/readme/readme.rb
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
1
|
|
3
2
|
require_relative '../application'
|
4
3
|
require_relative '../utils/configfile_reader'
|
@@ -44,8 +43,6 @@ class Readme
|
|
44
43
|
reset
|
45
44
|
end
|
46
45
|
|
47
|
-
##
|
48
|
-
# Show README on screen
|
49
46
|
def show
|
50
47
|
process_content
|
51
48
|
show_head
|
@@ -55,8 +52,6 @@ class Readme
|
|
55
52
|
|
56
53
|
private
|
57
54
|
|
58
|
-
##
|
59
|
-
# Reset attributes
|
60
55
|
def reset
|
61
56
|
app = Application.instance
|
62
57
|
@config = ConfigFileReader.read(app.config_path)
|
@@ -86,8 +81,6 @@ class Readme
|
|
86
81
|
@action = { readme: [] }
|
87
82
|
end
|
88
83
|
|
89
|
-
##
|
90
|
-
# Show README head
|
91
84
|
def show_head
|
92
85
|
app = Application.instance
|
93
86
|
puts '```'
|
@@ -117,12 +110,10 @@ class Readme
|
|
117
110
|
@cases_params.sort!
|
118
111
|
puts Lang::get(:params)
|
119
112
|
@cases_params.uniq.each { |i| puts format('* %s', i) }
|
120
|
-
puts "\n> NOTE: Save every '
|
113
|
+
puts "\n> NOTE: Save every 'param: value' into config file."
|
121
114
|
end
|
122
115
|
end
|
123
116
|
|
124
|
-
##
|
125
|
-
# Show README content
|
126
117
|
def show_content
|
127
118
|
@data[:groups].each do |group|
|
128
119
|
next if group[:actions].empty?
|
@@ -148,8 +139,6 @@ class Readme
|
|
148
139
|
end
|
149
140
|
end
|
150
141
|
|
151
|
-
##
|
152
|
-
# Show README tail
|
153
142
|
def show_tail
|
154
143
|
return if @global_params.empty?
|
155
144
|
|
@@ -170,3 +159,4 @@ class Readme
|
|
170
159
|
@setted_params.each_pair { |k,v| puts "|#{k}|#{v}|" }
|
171
160
|
end
|
172
161
|
end
|
162
|
+
|
data/lib/teuton/skeleton.rb
CHANGED
@@ -1,13 +1,10 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
1
|
|
3
2
|
require 'fileutils'
|
4
3
|
require 'rainbow'
|
5
4
|
|
6
|
-
# Skeleton module
|
7
5
|
module Skeleton
|
8
6
|
##
|
9
7
|
# Create teuton project skeleton
|
10
|
-
# @param project_dir (String)
|
11
8
|
def self.create(project_dir)
|
12
9
|
project_name = File.basename(project_dir)
|
13
10
|
puts "\n[INFO] Creating #{Rainbow(project_name).bright} project skeleton"
|
@@ -33,9 +30,6 @@ module Skeleton
|
|
33
30
|
end
|
34
31
|
end
|
35
32
|
|
36
|
-
##
|
37
|
-
# Create dir
|
38
|
-
# @param dirpath (String)
|
39
33
|
private_class_method def self.create_dir(dirpath)
|
40
34
|
if Dir.exist? dirpath
|
41
35
|
puts "* Exists dir! => #{Rainbow(dirpath).yellow}"
|
@@ -67,5 +61,4 @@ module Skeleton
|
|
67
61
|
end
|
68
62
|
end
|
69
63
|
end
|
70
|
-
# rubocop:enable Metrics/MethodLength
|
71
64
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
1
|
|
3
2
|
require 'yaml'
|
4
3
|
require 'json/pure'
|
@@ -29,9 +28,6 @@ module ConfigFileReader
|
|
29
28
|
# Read YAML config file
|
30
29
|
# @param filepath (String) Path to YAML config file
|
31
30
|
# @return Hash with config data
|
32
|
-
# rubocop:disable Metrics/MethodLength
|
33
|
-
# rubocop:disable Metrics/AbcSize
|
34
|
-
# rubocop:disable Security/YAMLLoad
|
35
31
|
def self.read_yaml(filepath)
|
36
32
|
begin
|
37
33
|
data = YAML.load(File.open(filepath))
|
@@ -49,9 +45,6 @@ module ConfigFileReader
|
|
49
45
|
read_included_files!(filepath, data)
|
50
46
|
data
|
51
47
|
end
|
52
|
-
# rubocop:enable Metrics/MethodLength
|
53
|
-
# rubocop:enable Metrics/AbcSize
|
54
|
-
# rubocop:enable Security/YAMLLoad
|
55
48
|
|
56
49
|
##
|
57
50
|
# Read JSON config file
|
@@ -71,7 +64,6 @@ module ConfigFileReader
|
|
71
64
|
# Read all configuration files from "filepath" folder.
|
72
65
|
# @param filepath (String) Folder with config files
|
73
66
|
# @param data (Hash) Input configuration
|
74
|
-
# rubocop:disable Security/YAMLLoad
|
75
67
|
private_class_method def self.read_included_files!(filepath, data)
|
76
68
|
return if data[:global][:tt_include].nil?
|
77
69
|
|
@@ -94,10 +86,7 @@ module ConfigFileReader
|
|
94
86
|
end
|
95
87
|
}
|
96
88
|
end
|
97
|
-
# rubocop:enable Security/YAMLLoad
|
98
89
|
|
99
|
-
# rubocop:disable Metrics/MethodLength
|
100
|
-
# rubocop:disable Metrics/AbcSize
|
101
90
|
private_class_method def self.convert_string_keys_to_symbol(input)
|
102
91
|
return input if input.class != Hash
|
103
92
|
|
@@ -116,6 +105,4 @@ module ConfigFileReader
|
|
116
105
|
end
|
117
106
|
output
|
118
107
|
end
|
119
|
-
# rubocop:enable Metrics/MethodLength
|
120
|
-
# rubocop:enable Metrics/AbcSize
|
121
108
|
end
|
@@ -1,4 +1,3 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
1
|
|
3
2
|
require 'rainbow'
|
4
3
|
require_relative '../application'
|
@@ -29,8 +28,6 @@ module NameFileFinder
|
|
29
28
|
##
|
30
29
|
# Find project filenames from input folder path
|
31
30
|
# @param folder_path (String)
|
32
|
-
# rubocop:disable Metrics/AbcSize
|
33
|
-
# rubocop:disable Metrics/MethodLength
|
34
31
|
def self.find_filenames_from_directory(folder_path)
|
35
32
|
# COMPLEX MODE: We use start.rb as main RB file
|
36
33
|
script_path = File.join(folder_path, 'start.rb')
|
@@ -48,15 +45,10 @@ module NameFileFinder
|
|
48
45
|
|
49
46
|
find_configfilename_from_directory(folder_path)
|
50
47
|
end
|
51
|
-
# rubocop:enable Metrics/AbcSize
|
52
|
-
# rubocop:enable Metrics/MethodLength
|
53
48
|
|
54
49
|
##
|
55
50
|
# Find project config filename from input folder path
|
56
51
|
# @param folder_path (String)
|
57
|
-
# rubocop:disable Metrics/AbcSize
|
58
|
-
# rubocop:disable Metrics/MethodLength
|
59
|
-
# rubocop:disable Style/IfUnlessModifier
|
60
52
|
def self.find_configfilename_from_directory(folder_path)
|
61
53
|
# COMPLEX MODE: We use config.yaml by default
|
62
54
|
app = Application.instance
|
@@ -76,12 +68,7 @@ module NameFileFinder
|
|
76
68
|
end
|
77
69
|
app.config_path = config_path
|
78
70
|
end
|
79
|
-
# rubocop:enable Metrics/AbcSize
|
80
|
-
# rubocop:enable Metrics/MethodLength
|
81
|
-
# rubocop:enable Style/IfUnlessModifier
|
82
71
|
|
83
|
-
# rubocop:disable Metrics/AbcSize
|
84
|
-
# rubocop:disable Metrics/MethodLength
|
85
72
|
def self.find_filenames_from_rb(script_path)
|
86
73
|
# SIMPLE MODE: We use script_path as main RB file
|
87
74
|
# This must be fullpath to DSL script file
|
@@ -99,12 +86,7 @@ module NameFileFinder
|
|
99
86
|
|
100
87
|
find_configfilenames_from_rb(script_path)
|
101
88
|
end
|
102
|
-
# rubocop:enable Metrics/AbcSize
|
103
|
-
# rubocop:enable Metrics/MethodLength
|
104
89
|
|
105
|
-
# rubocop:disable Metrics/MethodLength
|
106
|
-
# rubocop:disable Metrics/AbcSize
|
107
|
-
# rubocop:disable Style/IfUnlessModifier
|
108
90
|
def self.find_configfilenames_from_rb(script_path)
|
109
91
|
# SIMPLE MODE: We use script_path as main RB file
|
110
92
|
# This must be fullpath to DSL script file
|
@@ -126,33 +108,6 @@ module NameFileFinder
|
|
126
108
|
end
|
127
109
|
app.config_path = config_path
|
128
110
|
end
|
129
|
-
# rubocop:enable Metrics/MethodLength
|
130
|
-
# rubocop:enable Metrics/AbcSize
|
131
|
-
# rubocop:enable Style/IfUnlessModifier
|
132
|
-
|
133
|
-
# def self.puts_input_info_on_screen
|
134
|
-
# app = Application.instance
|
135
|
-
#
|
136
|
-
# verbose Rainbow('[INFO] ScriptPath => ').blue
|
137
|
-
# verboseln Rainbow(trim(app.script_path)).blue.bright
|
138
|
-
# verbose Rainbow('[INFO] ConfigPath => ').blue
|
139
|
-
# verboseln Rainbow(trim(app.config_path)).blue.bright
|
140
|
-
# verbose Rainbow('[INFO] Pwd => ').blue
|
141
|
-
# verboseln Rainbow(app.running_basedir).blue.bright
|
142
|
-
# verbose Rainbow('[INFO] TestName => ').blue
|
143
|
-
# verboseln Rainbow(trim(app.test_name)).blue.bright
|
144
|
-
# end
|
145
|
-
|
146
|
-
##
|
147
|
-
# Trim string text when is too long
|
148
|
-
# def self.trim(input)
|
149
|
-
# return input unless input.to_s.start_with? Dir.pwd.to_s
|
150
|
-
#
|
151
|
-
# output = input.to_s
|
152
|
-
# offset = (Dir.pwd).length + 1
|
153
|
-
# output = "#{input[offset, input.size]}"
|
154
|
-
# output.to_s
|
155
|
-
# end
|
156
111
|
|
157
112
|
def self.verboseln(text)
|
158
113
|
verbose(text + "\n")
|
data/lib/teuton/utils/verbose.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
|
2
2
|
require_relative '../application'
|
3
3
|
|
4
|
-
# Define general use methods
|
5
4
|
module Verbose
|
6
5
|
def verboseln(text)
|
7
6
|
verbose(text + "\n")
|
@@ -9,7 +8,7 @@ module Verbose
|
|
9
8
|
|
10
9
|
def verbose(text)
|
11
10
|
return if Application.instance.quiet?
|
12
|
-
|
11
|
+
|
13
12
|
print text
|
14
13
|
end
|
15
14
|
end
|
data/lib/teuton/version.rb
CHANGED
data/lib/teuton.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
|
2
2
|
require_relative 'teuton/application'
|
3
|
-
require_relative 'teuton/skeleton'
|
4
3
|
|
5
4
|
module Teuton
|
6
5
|
def self.create(path_to_new_dir)
|
6
|
+
require_relative 'teuton/skeleton'
|
7
7
|
Skeleton.create(path_to_new_dir)
|
8
8
|
end
|
9
9
|
|
@@ -13,7 +13,7 @@ module Teuton
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def self.readme(projectpath, options = {})
|
16
|
-
# Create Readme file for a test
|
16
|
+
# Create Readme file for a teuton test
|
17
17
|
Application.instance.add_input_params(projectpath, options)
|
18
18
|
require_dsl_and_script('teuton/readme/readme') # Define DSL keywords
|
19
19
|
|
@@ -39,7 +39,7 @@ module Teuton
|
|
39
39
|
require_relative app.script_path
|
40
40
|
rescue SyntaxError => e
|
41
41
|
puts e.to_s
|
42
|
-
puts Rainbow.new("[
|
42
|
+
puts Rainbow.new("==> [FAIL] SyntaxError into file #{app.script_path}").red
|
43
43
|
end
|
44
44
|
end
|
45
45
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teuton
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Vargas Ruiz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-06-
|
11
|
+
date: 2022-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
@@ -378,5 +378,5 @@ requirements: []
|
|
378
378
|
rubygems_version: 3.1.6
|
379
379
|
signing_key:
|
380
380
|
specification_version: 4
|
381
|
-
summary: Teuton (
|
381
|
+
summary: Teuton (Infrastructure test)
|
382
382
|
test_files: []
|