teuton 2.1.8 → 2.1.9

Sign up to get free protection for your applications and to get access to all the features.
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