teuton 2.1.8 → 2.1.9

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.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +5 -8
  3. data/bin/check_teuton +43 -0
  4. data/docs/changelog/contributions.md +32 -0
  5. data/docs/changelog/v2.1.md +22 -0
  6. data/docs/changelog/v2.2.md +29 -0
  7. data/docs/commands/README.md +105 -7
  8. data/docs/commands/example_check.md +54 -0
  9. data/docs/commands/example_run.md +112 -0
  10. data/docs/dsl/README.md +11 -9
  11. data/docs/dsl/definition/expect.md +25 -21
  12. data/docs/dsl/definition/group.md +5 -1
  13. data/docs/dsl/definition/result.md +45 -34
  14. data/docs/dsl/definition/run_local.md +34 -0
  15. data/docs/dsl/definition/run_remote.md +119 -0
  16. data/docs/dsl/definition/target.md +6 -0
  17. data/docs/dsl/execution/export.md +27 -19
  18. data/docs/dsl/execution/play.md +4 -0
  19. data/docs/dsl/execution/send.md +21 -2
  20. data/docs/dsl/execution/show.md +13 -8
  21. data/docs/dsl/setting/get.md +24 -8
  22. data/docs/dsl/setting/set.md +8 -3
  23. data/docs/install/README.md +19 -26
  24. data/docs/install/modes_of_use.md +27 -26
  25. data/docs/install/scripts.md +53 -36
  26. data/docs/install/vagrant_docker.md +56 -0
  27. data/docs/learn/README.md +13 -6
  28. data/docs/learn/example-01-target.md +78 -61
  29. data/docs/learn/example-02-config.md +152 -0
  30. data/docs/learn/example-03-remote-hosts.md +31 -25
  31. data/docs/learn/example-04-use.md +23 -17
  32. data/docs/learn/example-05-debug.md +24 -17
  33. data/docs/learn/example-06-log.md +70 -0
  34. data/lib/teuton/application.rb +7 -4
  35. data/lib/teuton/case_manager/case/case.rb +4 -1
  36. data/lib/teuton/case_manager/case/dsl/expect.rb +3 -1
  37. data/lib/teuton/case_manager/case/dsl/goto.rb +12 -7
  38. data/lib/teuton/case_manager/case/dsl/macro.rb +38 -0
  39. data/lib/teuton/case_manager/case/dsl/main.rb +1 -2
  40. data/lib/teuton/case_manager/case/dsl/target.rb +1 -1
  41. data/lib/teuton/case_manager/case/runner.rb +7 -7
  42. data/lib/teuton/case_manager/case_manager.rb +1 -20
  43. data/lib/teuton/case_manager/check_cases.rb +12 -2
  44. data/lib/teuton/case_manager/dsl.rb +4 -6
  45. data/lib/teuton/case_manager/export_manager.rb +29 -3
  46. data/lib/teuton/case_manager/report.rb +29 -8
  47. data/lib/teuton/case_manager/show.rb +8 -4
  48. data/lib/teuton/cli.rb +1 -0
  49. data/lib/teuton/cli/play.rb +1 -0
  50. data/lib/teuton/cli/version.rb +1 -4
  51. data/lib/teuton/files/config.yaml +0 -1
  52. data/lib/teuton/files/start.rb +1 -1
  53. data/lib/teuton/files/template/case.html +135 -0
  54. data/lib/teuton/files/template/resume.html +115 -0
  55. data/lib/teuton/project/laboratory/builtin.rb +2 -1
  56. data/lib/teuton/project/laboratory/dsl.rb +13 -15
  57. data/lib/teuton/project/laboratory/laboratory.rb +5 -1
  58. data/lib/teuton/project/laboratory/show.rb +21 -13
  59. data/lib/teuton/project/name_file_finder.rb +6 -1
  60. data/lib/teuton/project/project.rb +7 -3
  61. data/lib/teuton/project/readme/dsl.rb +3 -1
  62. data/lib/teuton/project/readme/readme.rb +37 -26
  63. data/lib/teuton/project/skeleton.rb +20 -4
  64. data/lib/teuton/report/close.rb +15 -11
  65. data/lib/teuton/report/formatter/formatter_factory.rb +10 -6
  66. data/lib/teuton/report/formatter/html_formatter.rb +16 -79
  67. data/lib/teuton/report/formatter/resume_html_formatter.rb +39 -0
  68. data/lib/teuton/report/formatter/resume_yaml_formatter.rb +7 -1
  69. data/lib/teuton/report/report.rb +5 -4
  70. data/lib/teuton/report/show.rb +55 -26
  71. metadata +26 -39
  72. data/docs/changelog/todo.md +0 -46
  73. data/docs/commands/create_skeleton.md +0 -31
  74. data/docs/commands/help.md +0 -13
  75. data/docs/commands/revise_test.md +0 -46
  76. data/docs/commands/run_test_unit.md +0 -78
  77. data/docs/commands/show_version.md +0 -9
  78. data/docs/developers/01-telnet.md +0 -121
  79. data/docs/developers/02-ssh.md +0 -93
  80. data/docs/developers/03-encoding.md +0 -153
  81. data/docs/developers/comparative.md +0 -17
  82. data/docs/dsl/_Sidebar.md +0 -30
  83. data/docs/dsl/definition/goto.md +0 -112
  84. data/docs/dsl/definition/run.md +0 -23
  85. data/docs/install/tested_os.md +0 -25
  86. data/docs/install/vagrant.md +0 -9
  87. data/docs/learn/example-02-configfile.md +0 -174
  88. data/docs/learn/quick-demo.md +0 -170
  89. data/lib/teuton/case_manager/case/dsl/check.rb +0 -24
  90. data/lib/teuton/case_manager/case/dsl/missing.rb +0 -12
  91. data/lib/teuton/files/gitignore +0 -2
@@ -1,104 +1,41 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'erb'
3
4
  require_relative 'yaml_formatter'
5
+ require_relative '../../application'
4
6
 
5
7
  ##
6
8
  # HTMLFormatter class receive a [Report] and generates HAML output.
7
- class HAMLFormatter < YAMLFormatter
9
+ class HTMLFormatter < YAMLFormatter
8
10
  ##
9
11
  # Class constructor
10
12
  # @param report [Report] Parent object that contains data to be exported.
11
13
  def initialize(report)
12
14
  super(report)
13
15
  @data = {}
16
+ filepath = File.join(File.dirname(__FILE__), '..', '..', 'files', 'template', 'case.html')
17
+ @template = File.read(filepath)
14
18
  end
15
19
 
16
20
  ##
17
21
  # Process data from parent object and export it into YAML format.
18
- # @return [nil]
19
22
  def process
20
23
  build_data
21
- # w @data.to_yaml # Write data into ouput file
22
24
  build_page
23
25
  deinit
24
26
  end
25
27
 
28
+ ##
29
+ # Build html case page
26
30
  def build_page
27
- puts "<html>"
28
- puts "<head><title>TEUTON report</title></head>"
29
- puts "<body>"
30
- build_config
31
- build_targets
32
- build_results
33
- end
34
-
35
- def build_config
36
- puts "<header><h1><a name=\"index\">Checking Machines v0.4</a></h1>"
37
- puts '<ul>'
38
- @data[:head].each do |key,value|
39
- puts "<li><b>"+key.to_s+": </b>"+value.to_s+"</li>" if key!=:title
40
- end
41
- puts '</ul>'
42
- puts "<table border=1 >"
43
- puts "<thead><tr><td>Members</td><td>Grade</td><td>Fails</td></tr></thead>"
44
- puts "<tbody>"
45
-
46
- counter=0
47
- @data[:groups].each do |group|
48
- group[:targets].each do |target|
49
- counter+=1
50
- puts "<tr><td><a href=\"#group"+counter.to_s+"\">"+target.head[:members]+"</a></td>"
51
- puts "<td>"+target[:tail][:grade]+"</td>"
52
- puts "<td>"+target[:tail][:fail_counter]+"</td></tr>"
53
- end
54
- puts "</tbody></table></header>"
55
- puts "<h1>Cases</h1>"
56
-
57
- counter=0
58
- @data[:groups].each do |group|
59
- counter += 1
60
- process_datagroup(group, counter)
61
- end
62
-
63
- puts '<ul>'
64
- @tail.each do |key,value|
65
- puts "<li><b>"+key.to_s+": </b>"+value.to_s+"</li>"
66
- end
67
- puts '</ul>'
68
- puts "</body></html>"
31
+ config = @data[:config]
32
+ results = @data[:results]
33
+ logs = @data[:logs]
34
+ groups = @data[:groups]
35
+ groups = @data[:groups]
36
+ hall_of_fame = @data[:hall_of_fame]
37
+ version = Application::VERSION
38
+ renderer = ERB.new(@template)
39
+ w renderer.result(binding)
69
40
  end
70
-
71
- def process_datagroup(pGroup, pCounter)
72
- puts "<h2><a name=\"group"+pCounter.to_s+"\">Case members "+@head[:members]+"</a> (<a href=\"#index\">up</a>)</h2>"
73
- puts "<table border=1 >"
74
- puts "<thead><tr><td>Params</td><td>Results</td></tr></thead>"
75
- puts "<tbody><tr>"
76
- puts "<td><ul>"
77
- pGroup.head.each do |key,value|
78
- puts "<li><b>"+key.to_s+"</b>= "+value.to_s+"</li>" if key!=:members
79
- end
80
- puts "</ul></td>"
81
- puts '<td><ul>'
82
- pGroup.tail.each do |key,value|
83
- puts "<li><b>"+key.to_s+"</b>= "+value.to_s+"</li>"
84
- end
85
- puts '</ul></td>'
86
-
87
- puts '</tr></tbdody></table>'
88
- puts '<h3>Test log</h3>'
89
- puts '<ul>'
90
- pGroup.lines.each do |i|
91
- if i.class.to_s=='Hash' then
92
- value=0.0
93
- value=i[:weight] if i[:check]
94
- a="<li>"+i[:id].to_s+" ("+value.to_s+") [weight="+i[:weight].to_s+"] "
95
- a+="<i>"+i[:description]+"</i>: "+i[:command]+"</li>"
96
- puts a
97
- else
98
- puts "<li>"+i.to_s+"</li>"
99
- end
100
- end
101
- puts '</ul>'
102
- end
103
- end
104
41
  end
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'erb'
4
+ require_relative 'resume_yaml_formatter'
5
+ require_relative '../../application'
6
+
7
+ ##
8
+ # HTMLFormatter class receive a [Report] and generates HAML output.
9
+ class ResumeHTMLFormatter < ResumeYAMLFormatter
10
+ ##
11
+ # Class constructor
12
+ # @param report [Report] Parent object that contains data to be exported.
13
+ def initialize(report)
14
+ super(report)
15
+ @data = {}
16
+ filepath = File.join(File.dirname(__FILE__), '..', '..', 'files', 'template', 'resume.html')
17
+ @template = File.read(filepath)
18
+ end
19
+
20
+ ##
21
+ # Process data from parent object and export it into YAML format.
22
+ def process
23
+ build_data
24
+ build_page
25
+ deinit
26
+ end
27
+
28
+ ##
29
+ # Build html case page
30
+ def build_page
31
+ config = @data[:config]
32
+ cases = @data[:cases]
33
+ results = @data[:results]
34
+ hall_of_fame = @data[:hall_of_fame]
35
+ version = Application::VERSION
36
+ renderer = ERB.new(@template)
37
+ w renderer.result(binding)
38
+ end
39
+ end
@@ -1,13 +1,19 @@
1
1
 
2
2
  require_relative 'resume_array_formatter'
3
3
 
4
- # JSONFormatter class
4
+ ##
5
+ # ResumeHTMLFormatter class
5
6
  class ResumeYAMLFormatter < ResumeArrayFormatter
7
+ ##
8
+ # Initialize class
9
+ # @param report (Report)
6
10
  def initialize(report)
7
11
  super(report)
8
12
  @data = {}
9
13
  end
10
14
 
15
+ ##
16
+ # Process resume report
11
17
  def process
12
18
  build_data
13
19
  w @data.to_yaml # Write data into ouput file
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
 
2
3
  require 'terminal-table'
3
4
  require_relative '../application'
@@ -32,9 +33,9 @@ class Report
32
33
  @id = id
33
34
  @filename = "case-#{@id}"
34
35
  @output_dir = Application.instance.output_basedir
35
- @head = {}
36
- @lines = []
37
- @tail = {}
36
+ @head = {}
37
+ @lines = []
38
+ @tail = {}
38
39
  # @history save 1 letter for every target.
39
40
  # For example: "..F." means: good, good, fail and good
40
41
  # I will use this in the future stats manager.
@@ -57,7 +58,7 @@ class Report
57
58
  # Export resumed data from all Cases, to specified format.
58
59
  # @param format [Symbol] Select export format. Default value is :txt.
59
60
  def export_resume(format = :txt)
60
- @format = "resume_#{format.to_s}".to_sym
61
+ @format = "resume_#{format}".to_sym
61
62
  filepath = File.join(@output_dir, @filename + '.' \
62
63
  + FormatterFactory.ext(@format))
63
64
  formatter = FormatterFactory.get(self, @format, filepath)
@@ -17,52 +17,69 @@ class Report
17
17
 
18
18
  private
19
19
 
20
+ ##
21
+ # Display initial configurations
20
22
  def show_initial_configurations
21
- puts 'INITIAL CONFIGURATIONS'
23
+ puts Rainbow('INITIAL CONFIGURATIONS').bright
22
24
  my_screen_table = Terminal::Table.new do |st|
23
25
  @head.each do |key, value|
24
26
  st.add_row [key.to_s, trim(value)]
25
27
  end
26
28
  end
27
- puts my_screen_table.to_s + "\n\n"
29
+ puts "#{my_screen_table}\n\n"
28
30
  end
29
31
 
32
+ ##
33
+ # Display resume
30
34
  def show_resume
31
35
  show_case_list
32
36
  show_conn_status
33
37
  end
34
38
 
39
+ ##
40
+ # Display case list
35
41
  def show_case_list
36
- puts 'CASE RESULTS'
42
+ puts Rainbow('CASE RESULTS').bright
37
43
  my_screen_table = Terminal::Table.new do |st|
38
- st.add_row ['CASE', 'MEMBERS', 'GRADE', 'STATE' ]
44
+ st.add_row %w[CASE MEMBERS GRADE STATE]
39
45
  @lines.each do |line|
40
46
  st.add_row [line[:id], line[:members], line[:grade], line[:letter]]
41
47
  end
42
48
  end
43
- puts my_screen_table.to_s + "\n\n"
49
+ puts "#{my_screen_table}\n\n"
44
50
  end
45
51
 
52
+ ##
53
+ # Display Connection status
54
+ # rubocop:disable Metrics/MethodLength
55
+ # rubocop:disable Metrics/AbcSize
46
56
  def show_conn_status
47
- e = 0
48
- @lines.each { |line| e += line[:conn_status].size }
49
- return if e == 0
57
+ errors = 0
58
+ @lines.each { |line| errors += line[:conn_status].size }
59
+ return if errors.zero?
50
60
 
51
- puts 'CONN ERRORS'
61
+ puts Rainbow('CONN ERRORS').bright
52
62
  my_screen_table = Terminal::Table.new do |st|
53
- st.add_row ['CASE', 'MEMBERS', 'HOST', 'ERROR']
63
+ st.add_row %w[CASE MEMBERS HOST ERROR]
54
64
  @lines.each do |line|
55
- line[:conn_status].each_pair do |h,e|
56
- st.add_row [line[:id], line[:members], h, e]
65
+ line[:conn_status].each_pair do |host, error|
66
+ st.add_row [line[:id], line[:members], host,
67
+ Rainbow(error).red.bright]
57
68
  end
58
69
  end
59
70
  end
60
- puts my_screen_table.to_s + "\n\n"
71
+ puts "#{my_screen_table}\n\n"
61
72
  end
73
+ # rubocop:enable Metrics/MethodLength
74
+ # rubocop:enable Metrics/AbcSize
62
75
 
76
+ # rubocop:disable Style/FormatString
77
+ # rubocop:disable Style/FormatStringToken
78
+ # rubocop:disable Metrics/AbcSize
79
+ # rubocop:disable Metrics/MethodLength
63
80
  def show_targets_history
64
81
  tab = ' '
65
- puts 'CASE RESULTS'
82
+ puts Rainbow('CASE RESULTS').bright
66
83
  if @lines.size == 1
67
84
  puts @lines[0]
68
85
  else
@@ -70,44 +87,56 @@ class Report
70
87
  if i.class.to_s == 'Hash'
71
88
  value = 0.0
72
89
  value = i[:weight] if i[:check]
73
- print tab + "%03d" % i[:id].to_i
74
- print ' (' + '%2d.2f' % value.to_f + '/'
75
- puts '%2d.2f' % i[:weight].to_f + ') ' + i[:description].to_s
90
+ print tab + '%03d' % i[:id].to_i
91
+ print ' (%2.1f' % value.to_f
92
+ print '/%2.1f' % i[:weight].to_f
93
+ puts ') %s' % i[:description].to_s
76
94
  else
77
- puts tab + '- ' + i.to_s
95
+ puts "#{tab}=> #{i}"
78
96
  end
79
97
  end
80
98
  end
81
99
  puts "\n\n"
82
100
  end
101
+ # rubocop:enable Style/FormatString
102
+ # rubocop:enable Style/FormatStringToken
103
+ # rubocop:enable Metrics/AbcSize
104
+ # rubocop:enable Metrics/MethodLength
83
105
 
106
+ ##
107
+ # Display final values section on screen
84
108
  def show_final_values
85
- puts 'FINAL VALUES'
109
+ puts Rainbow('FINAL VALUES').bright
86
110
  my_screen_table = Terminal::Table.new do |st|
87
111
  @tail.each do |key, value|
88
112
  st.add_row [key.to_s, value.to_s]
89
113
  end
90
114
  end
91
- puts my_screen_table.to_s + "\n\n"
115
+ puts "#{my_screen_table}\n\n"
92
116
  end
93
117
 
118
+ ##
119
+ # Display hall of fame section on screen
94
120
  def show_hall_of_fame
95
121
  app = Application.instance
96
122
  return if app.hall_of_fame.size < 3
97
123
 
98
- puts 'HALL OF FAME'
124
+ puts Rainbow('HALL OF FAME').bright
99
125
  my_screen_table = Terminal::Table.new do |st|
100
126
  app.hall_of_fame.each do |line|
101
127
  st.add_row [line[0], line[1]]
102
128
  end
103
129
  end
104
- puts my_screen_table.to_s + "\n"
130
+ puts "#{my_screen_table}\n"
105
131
  end
106
132
 
133
+ ##
134
+ # Trim absolute path values
107
135
  def trim(input)
108
- output = input.to_s
109
- return output if output.size<65
110
- output = "...#{input[input.size-50, input.size]}"
111
- output.to_s
136
+ return input unless input.to_s.start_with? Dir.pwd.to_s
137
+ return input if input == Dir.pwd.to_s
138
+
139
+ offset = Dir.pwd.length + 1
140
+ input[offset, input.size].to_s
112
141
  end
113
142
  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.1.8
4
+ version: 2.1.9
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: 2020-03-11 00:00:00.000000000 Z
11
+ date: 2020-04-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_pure
@@ -148,80 +148,67 @@ description: |2
148
148
  email: teuton.software@protonmail.com
149
149
  executables:
150
150
  - teuton
151
+ - check_teuton
151
152
  extensions: []
152
153
  extra_rdoc_files:
153
154
  - README.md
154
155
  - LICENSE
155
156
  - docs/learn/example-03-remote-hosts.md
156
157
  - docs/learn/example-05-debug.md
158
+ - docs/learn/example-02-config.md
157
159
  - docs/learn/example-11-first-test.md
158
160
  - docs/learn/videos.md
159
- - docs/learn/example-02-configfile.md
161
+ - docs/learn/example-06-log.md
160
162
  - docs/learn/example-04-use.md
161
- - docs/learn/quick-demo.md
162
163
  - docs/learn/example-01-target.md
163
164
  - docs/learn/README.md
164
165
  - docs/changelog/v2.1.md
165
- - docs/changelog/todo.md
166
+ - docs/changelog/v2.2.md
167
+ - docs/changelog/contributions.md
166
168
  - docs/changelog/servidor-de-retos.md
167
169
  - docs/changelog/v2.0.md
168
- - docs/commands/show_version.md
169
- - docs/commands/help.md
170
- - docs/commands/revise_test.md
171
- - docs/commands/create_skeleton.md
170
+ - docs/commands/example_run.md
172
171
  - docs/commands/README.md
173
- - docs/commands/run_test_unit.md
174
- - docs/dsl/definition/run.md
175
- - docs/dsl/definition/goto.md
172
+ - docs/commands/example_check.md
176
173
  - docs/dsl/definition/result.md
177
174
  - docs/dsl/definition/target.md
178
175
  - docs/dsl/definition/group.md
179
176
  - docs/dsl/definition/expect.md
177
+ - docs/dsl/definition/run_local.md
178
+ - docs/dsl/definition/run_remote.md
180
179
  - docs/dsl/execution/export.md
181
180
  - docs/dsl/execution/play.md
182
181
  - docs/dsl/execution/send.md
183
182
  - docs/dsl/execution/show.md
184
- - docs/dsl/_Sidebar.md
185
183
  - docs/dsl/setting/set.md
186
184
  - docs/dsl/setting/get.md
187
185
  - docs/dsl/README.md
188
186
  - docs/Challenge-Server-Project.md
189
- - docs/developers/comparative.md
190
- - docs/developers/03-encoding.md
191
- - docs/developers/01-telnet.md
192
- - docs/developers/02-ssh.md
193
- - docs/install/vagrant.md
194
187
  - docs/install/modes_of_use.md
195
- - docs/install/tested_os.md
188
+ - docs/install/vagrant_docker.md
196
189
  - docs/install/scripts.md
197
190
  - docs/install/README.md
198
191
  - docs/install/manual.md
199
192
  files:
200
193
  - LICENSE
201
194
  - README.md
195
+ - bin/check_teuton
202
196
  - bin/teuton
203
197
  - docs/Challenge-Server-Project.md
198
+ - docs/changelog/contributions.md
204
199
  - docs/changelog/servidor-de-retos.md
205
- - docs/changelog/todo.md
206
200
  - docs/changelog/v2.0.md
207
201
  - docs/changelog/v2.1.md
202
+ - docs/changelog/v2.2.md
208
203
  - docs/commands/README.md
209
- - docs/commands/create_skeleton.md
210
- - docs/commands/help.md
211
- - docs/commands/revise_test.md
212
- - docs/commands/run_test_unit.md
213
- - docs/commands/show_version.md
214
- - docs/developers/01-telnet.md
215
- - docs/developers/02-ssh.md
216
- - docs/developers/03-encoding.md
217
- - docs/developers/comparative.md
204
+ - docs/commands/example_check.md
205
+ - docs/commands/example_run.md
218
206
  - docs/dsl/README.md
219
- - docs/dsl/_Sidebar.md
220
207
  - docs/dsl/definition/expect.md
221
- - docs/dsl/definition/goto.md
222
208
  - docs/dsl/definition/group.md
223
209
  - docs/dsl/definition/result.md
224
- - docs/dsl/definition/run.md
210
+ - docs/dsl/definition/run_local.md
211
+ - docs/dsl/definition/run_remote.md
225
212
  - docs/dsl/definition/target.md
226
213
  - docs/dsl/execution/export.md
227
214
  - docs/dsl/execution/play.md
@@ -233,16 +220,15 @@ files:
233
220
  - docs/install/manual.md
234
221
  - docs/install/modes_of_use.md
235
222
  - docs/install/scripts.md
236
- - docs/install/tested_os.md
237
- - docs/install/vagrant.md
223
+ - docs/install/vagrant_docker.md
238
224
  - docs/learn/README.md
239
225
  - docs/learn/example-01-target.md
240
- - docs/learn/example-02-configfile.md
226
+ - docs/learn/example-02-config.md
241
227
  - docs/learn/example-03-remote-hosts.md
242
228
  - docs/learn/example-04-use.md
243
229
  - docs/learn/example-05-debug.md
230
+ - docs/learn/example-06-log.md
244
231
  - docs/learn/example-11-first-test.md
245
- - docs/learn/quick-demo.md
246
232
  - docs/learn/videos.md
247
233
  - lib/teuton.rb
248
234
  - lib/teuton/application.rb
@@ -253,14 +239,13 @@ files:
253
239
  - lib/teuton/case_manager/case/case.rb
254
240
  - lib/teuton/case_manager/case/close.rb
255
241
  - lib/teuton/case_manager/case/config.rb
256
- - lib/teuton/case_manager/case/dsl/check.rb
257
242
  - lib/teuton/case_manager/case/dsl/deprecated.rb
258
243
  - lib/teuton/case_manager/case/dsl/expect.rb
259
244
  - lib/teuton/case_manager/case/dsl/getset.rb
260
245
  - lib/teuton/case_manager/case/dsl/goto.rb
261
246
  - lib/teuton/case_manager/case/dsl/log.rb
247
+ - lib/teuton/case_manager/case/dsl/macro.rb
262
248
  - lib/teuton/case_manager/case/dsl/main.rb
263
- - lib/teuton/case_manager/case/dsl/missing.rb
264
249
  - lib/teuton/case_manager/case/dsl/send.rb
265
250
  - lib/teuton/case_manager/case/dsl/target.rb
266
251
  - lib/teuton/case_manager/case/dsl/unique.rb
@@ -288,8 +273,9 @@ files:
288
273
  - lib/teuton/cli/version.rb
289
274
  - lib/teuton/files/README.md
290
275
  - lib/teuton/files/config.yaml
291
- - lib/teuton/files/gitignore
292
276
  - lib/teuton/files/start.rb
277
+ - lib/teuton/files/template/case.html
278
+ - lib/teuton/files/template/resume.html
293
279
  - lib/teuton/project/configfile_reader.rb
294
280
  - lib/teuton/project/laboratory/builtin.rb
295
281
  - lib/teuton/project/laboratory/dsl.rb
@@ -311,6 +297,7 @@ files:
311
297
  - lib/teuton/report/formatter/list_formatter.rb
312
298
  - lib/teuton/report/formatter/moodle_csv_formatter.rb
313
299
  - lib/teuton/report/formatter/resume_array_formatter.rb
300
+ - lib/teuton/report/formatter/resume_html_formatter.rb
314
301
  - lib/teuton/report/formatter/resume_json_formatter.rb
315
302
  - lib/teuton/report/formatter/resume_list_formatter.rb
316
303
  - lib/teuton/report/formatter/resume_txt_formatter.rb