teuton 2.3.6 → 2.3.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -4
  3. data/bin/teuton +1 -1
  4. data/docs/CHANGELOG.md +8 -0
  5. data/docs/changelog/v2.4.md +16 -0
  6. data/docs/dsl/definition/expect.md +11 -7
  7. data/docs/dsl/definition/result.md +7 -6
  8. data/docs/dsl/definition/run_local.md +0 -1
  9. data/docs/dsl/definition/target.md +1 -1
  10. data/docs/dsl/execution/export.md +14 -16
  11. data/docs/dsl/execution/send.md +1 -1
  12. data/docs/dsl/setting/get.md +5 -5
  13. data/docs/es/exit_code.md +59 -0
  14. data/docs/es/guess_os.md +28 -0
  15. data/docs/{Challenge-Server-Project.md → ideas/Challenge-Server-Project.md} +0 -0
  16. data/docs/{changelog → ideas}/contributions.md +0 -0
  17. data/docs/{changelog → ideas}/ideas.md +0 -0
  18. data/docs/{changelog → ideas}/servidor-de-retos.md +0 -0
  19. data/docs/learn/{example-01-target.md → 01-target.md} +1 -3
  20. data/docs/learn/{example-02-config.md → 02-config.md} +1 -3
  21. data/docs/learn/{example-03-remote-hosts.md → 03-remote_hosts.md} +10 -10
  22. data/docs/learn/{example-04-new-test.md → 04-new_test.md} +8 -16
  23. data/docs/learn/{example-05-use.md → 05-use.md} +1 -3
  24. data/docs/learn/{example-06-debug.md → 06-debug.md} +1 -3
  25. data/docs/learn/{example-07-log.md → 07-log.md} +1 -3
  26. data/docs/learn/{example-08-readme.md → 08-readme.md} +1 -3
  27. data/docs/learn/{example-09-preserve.md → 09-preserve.md} +7 -4
  28. data/docs/learn/10-result.md +36 -0
  29. data/docs/learn/11-moodle_id.md +19 -0
  30. data/docs/learn/12-get_vars.md +37 -0
  31. data/docs/learn/13-include.md +59 -0
  32. data/docs/learn/14-alias.md +47 -0
  33. data/docs/learn/16-exit_codes.md +24 -0
  34. data/docs/learn/README.md +19 -17
  35. data/lib/teuton/application.rb +24 -17
  36. data/lib/teuton/case_manager/case/builtin/main.rb +2 -3
  37. data/lib/teuton/case_manager/case/builtin/package.rb +2 -3
  38. data/lib/teuton/case_manager/case/builtin/service.rb +4 -5
  39. data/lib/teuton/case_manager/case/builtin/teuton_file.rb +3 -4
  40. data/lib/teuton/case_manager/case/builtin/teuton_host.rb +5 -6
  41. data/lib/teuton/case_manager/case/builtin/user.rb +1 -2
  42. data/lib/teuton/case_manager/case/case.rb +27 -27
  43. data/lib/teuton/case_manager/case/close.rb +2 -2
  44. data/lib/teuton/case_manager/case/config.rb +14 -14
  45. data/lib/teuton/case_manager/case/dsl/expect.rb +46 -39
  46. data/lib/teuton/case_manager/case/dsl/goto.rb +2 -2
  47. data/lib/teuton/case_manager/case/dsl/log.rb +5 -6
  48. data/lib/teuton/case_manager/case/dsl/macro.rb +11 -7
  49. data/lib/teuton/case_manager/case/dsl/main.rb +8 -8
  50. data/lib/teuton/case_manager/case/dsl/send.rb +11 -14
  51. data/lib/teuton/case_manager/case/dsl/unique.rb +1 -3
  52. data/lib/teuton/case_manager/case/main.rb +5 -5
  53. data/lib/teuton/case_manager/case/play.rb +1 -1
  54. data/lib/teuton/case_manager/case/result/ext_array.rb +9 -9
  55. data/lib/teuton/case_manager/case/result/ext_compare.rb +44 -58
  56. data/lib/teuton/case_manager/case/result/ext_filter.rb +20 -8
  57. data/lib/teuton/case_manager/case/result/result.rb +19 -18
  58. data/lib/teuton/case_manager/case/runner.rb +53 -60
  59. data/lib/teuton/case_manager/case_manager.rb +15 -15
  60. data/lib/teuton/case_manager/check_cases.rb +1 -4
  61. data/lib/teuton/case_manager/dsl.rb +5 -5
  62. data/lib/teuton/case_manager/export_manager.rb +8 -19
  63. data/lib/teuton/case_manager/hall_of_fame.rb +4 -6
  64. data/lib/teuton/case_manager/main.rb +4 -5
  65. data/lib/teuton/case_manager/report.rb +21 -16
  66. data/lib/teuton/case_manager/show.rb +2 -2
  67. data/lib/teuton/case_manager/utils.rb +13 -14
  68. data/lib/teuton/check/builtin.rb +5 -1
  69. data/lib/teuton/check/dsl.rb +10 -11
  70. data/lib/teuton/check/laboratory.rb +13 -15
  71. data/lib/teuton/check/show.rb +33 -35
  72. data/lib/teuton/cli.rb +31 -35
  73. data/lib/teuton/files/start.rb +3 -6
  74. data/lib/teuton/readme/dsl.rb +12 -6
  75. data/lib/teuton/readme/lang.rb +20 -21
  76. data/lib/teuton/readme/readme.rb +40 -42
  77. data/lib/teuton/report/close.rb +1 -3
  78. data/lib/teuton/report/formatter/array_formatter.rb +28 -39
  79. data/lib/teuton/report/formatter/base_formatter.rb +2 -13
  80. data/lib/teuton/report/formatter/csv_formatter.rb +12 -18
  81. data/lib/teuton/report/formatter/formatter_factory.rb +31 -29
  82. data/lib/teuton/report/formatter/html_formatter.rb +37 -21
  83. data/lib/teuton/report/formatter/json_formatter.rb +2 -8
  84. data/lib/teuton/report/formatter/list_formatter.rb +6 -12
  85. data/lib/teuton/report/formatter/moodle_csv_formatter.rb +3 -6
  86. data/lib/teuton/report/formatter/resume_array_formatter.rb +1 -1
  87. data/lib/teuton/report/formatter/resume_html_formatter.rb +29 -19
  88. data/lib/teuton/report/formatter/resume_json_formatter.rb +2 -3
  89. data/lib/teuton/report/formatter/resume_list_formatter.rb +4 -4
  90. data/lib/teuton/report/formatter/resume_txt_formatter.rb +14 -18
  91. data/lib/teuton/report/formatter/resume_yaml_formatter.rb +1 -9
  92. data/lib/teuton/report/formatter/txt_formatter.rb +19 -20
  93. data/lib/teuton/report/formatter/xml_formatter.rb +29 -37
  94. data/lib/teuton/report/formatter/yaml_formatter.rb +2 -12
  95. data/lib/teuton/report/report.rb +10 -10
  96. data/lib/teuton/report/show.rb +14 -33
  97. data/lib/teuton/skeleton.rb +6 -14
  98. data/lib/teuton/utils/configfile_reader.rb +22 -21
  99. data/lib/teuton/utils/name_file_finder.rb +21 -26
  100. data/lib/teuton/utils/verbose.rb +1 -2
  101. data/lib/teuton/version.rb +3 -4
  102. data/lib/teuton.rb +5 -6
  103. metadata +62 -86
  104. data/bin/check_teuton +0 -41
@@ -1,20 +1,13 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'base_formatter'
3
+ require_relative "base_formatter"
4
4
 
5
- ##
6
- # ArrayFormatter class: format report data into an array
7
5
  class ArrayFormatter < BaseFormatter
8
- ##
9
- # Initialize class
10
- # @param report (Report) Format report data into Array
11
6
  def initialize(report)
12
7
  super(report)
13
8
  @data = {}
14
9
  end
15
10
 
16
- ##
17
- # Execute format action
18
11
  def process
19
12
  build_data
20
13
  w @data.to_s # Write data into ouput file
@@ -34,49 +27,45 @@ class ArrayFormatter < BaseFormatter
34
27
  @data[:config] = head
35
28
  end
36
29
 
37
- # rubocop:disable Metrics/AbcSize
38
- # rubocop:disable Metrics/MethodLength
39
30
  def build_history_data
40
31
  @data[:logs] = []
41
32
  groups = []
42
33
  title = nil
43
34
  targets = []
44
35
  @lines.each do |i|
45
- if i.class.to_s == 'Hash'
46
- value = 0.0
47
- value = i[:weight] if i[:check]
48
- if i[:groupname] != title
49
- # Add currentgroup
50
- groups << { title: title, targets: targets } unless title.nil?
51
- # Create new group
52
- title = i[:groupname]
53
- targets = []
54
- end
55
-
56
- target = {}
57
- # target[:target_id] = format('%02d', i[:id])
58
- target[:target_id] = format('%<id>02d', id: i[:id])
59
- target[:check] = i[:check]
60
- target[:score] = value
61
- target[:weight] = i[:weight]
62
- target[:description] = i[:description]
63
- target[:command] = i[:command]
64
- target[:conn_type] = i[:conn_type]
65
- target[:duration] = i[:duration]
66
- target[:alterations] = i[:alterations]
67
- target[:expected] = i[:expected]
68
- target[:result] = i[:result]
69
- targets << target
70
- else
36
+ unless i.instance_of? Hash
71
37
  @data[:logs] << i.to_s # Add log line
38
+ next
39
+ end
40
+
41
+ value = 0.0
42
+ value = i[:weight] if i[:check]
43
+ if i[:groupname] != title
44
+ # Add currentgroup
45
+ groups << {title: title, targets: targets} unless title.nil?
46
+ # Create new group
47
+ title = i[:groupname]
48
+ targets = []
72
49
  end
50
+
51
+ target = {}
52
+ target[:target_id] = format("%<id>02d", id: i[:id])
53
+ target[:check] = i[:check]
54
+ target[:score] = value
55
+ target[:weight] = i[:weight]
56
+ target[:description] = i[:description]
57
+ target[:command] = i[:command]
58
+ target[:conn_type] = i[:conn_type]
59
+ target[:duration] = i[:duration]
60
+ target[:alterations] = i[:alterations]
61
+ target[:expected] = i[:expected]
62
+ target[:result] = i[:result]
63
+ targets << target
73
64
  end
74
65
 
75
- groups << { title: title, targets: targets } unless title.nil?
66
+ groups << {title: title, targets: targets} unless title.nil?
76
67
  @data[:groups] = groups
77
68
  end
78
- # rubocop:enable Metrics/AbcSize
79
- # rubocop:enable Metrics/MethodLength
80
69
 
81
70
  def build_final_data
82
71
  tail = {}
@@ -1,28 +1,19 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # BaseFormatter class
4
3
  class BaseFormatter
5
- ##
6
- # Initialize class
7
- # @param report (Report) Format report data
8
4
  def initialize(report)
9
5
  @head = report.head
10
6
  @lines = report.lines
11
7
  @tail = report.tail
12
8
  end
13
9
 
14
- ##
15
- # Execute format action
16
10
  def process
17
- raise 'Empty method!'
11
+ raise "Empty method!"
18
12
  end
19
13
 
20
- ##
21
- # Creates new output file
22
- # @param filename (String) Path to output file
23
14
  def init(filename)
24
15
  @filename = filename
25
- @file = File.open(@filename, 'w')
16
+ @file = File.open(@filename, "w")
26
17
  end
27
18
 
28
19
  ##
@@ -32,8 +23,6 @@ class BaseFormatter
32
23
  @file.write text.to_s
33
24
  end
34
25
 
35
- ##
36
- # Close open output file
37
26
  def deinit
38
27
  @file.close
39
28
  end
@@ -1,31 +1,25 @@
1
-
2
- require_relative 'base_formatter'
1
+ require_relative "base_formatter"
3
2
 
4
3
  class CSVFormatter < BaseFormatter
5
- def initialize(report)
6
- super(report)
7
- end
8
-
9
4
  def process
10
- d = ';'
11
- @head.each { |key,value| w "HEAD#{d}#{key}#{d}#{value}\n" }
5
+ d = ";"
6
+ @head.each { |key, value| w "HEAD#{d}#{key}#{d}#{value}\n" }
12
7
  @datagroups.each { |item| process_datagroup(item,d) }
13
- @tail.each { |key,value| w "TAIL#{d}#{key}#{d}#{value}\n" }
8
+ @tail.each { |key, value| w "TAIL#{d}#{key}#{d}#{value}\n" }
14
9
  deinit
15
10
  end
16
11
 
17
- def process_datagroup(pGroup, delimiter=';')
12
+ def process_datagroup(group, delimiter = ";")
18
13
  d = delimiter
19
- a = "DATAGROUP"+pGroup.order.to_s+d
20
- pGroup.head.each { |key,value| w a+"HEAD"+d+key.to_s+d+value.to_s+"\n" }
21
- pGroup.lines.each do |i|
22
- if i.class.to_s=='Hash' then
23
- w a + "LINES#{d}ACTION#{d}#{i[:id]}#{d}#{i[:weight]}#{d}" +
24
- "#{i[:description]}\n"
14
+ a = "DATAGROUP#{group.order}#{d}"
15
+ group.head.each { |key, value| w "#{a}HEAD#{d}#{key}#{d}#{value}\n" }
16
+ group.lines.each do |i|
17
+ if i.instance_of? Hash
18
+ w "#{a}LINES#{d}ACTION#{d}#{i[:id]}#{d}#{i[:weight]}#{d}#{i[:description]}\n"
25
19
  else
26
- w a + "LINES#{d}LOG#{d}#{i}\n"
20
+ w "#{a}LINES#{d}LOG#{d}#{i}\n"
27
21
  end
28
22
  end
29
- pGroup.tail.each { |key,value| w a+"TAIL"+d+key.to_s+d+value.to_s+"\n" }
23
+ group.tail.each { |key, value| w "#{a}TAIL#{d}#{key}#{d}#{value}\n" }
30
24
  end
31
25
  end
@@ -1,26 +1,26 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'rainbow'
4
- require_relative 'json_formatter'
5
- require_relative 'html_formatter'
6
- require_relative 'list_formatter'
7
- require_relative 'txt_formatter'
8
- require_relative 'yaml_formatter'
9
- require_relative 'resume_json_formatter'
10
- require_relative 'resume_html_formatter'
11
- require_relative 'resume_list_formatter'
12
- require_relative 'resume_yaml_formatter'
13
- require_relative 'resume_txt_formatter'
14
- require_relative 'moodle_csv_formatter'
15
- require_relative 'csv_formatter'
16
- require_relative 'xml_formatter'
3
+ require "rainbow"
4
+ require_relative "json_formatter"
5
+ require_relative "html_formatter"
6
+ require_relative "list_formatter"
7
+ require_relative "txt_formatter"
8
+ require_relative "yaml_formatter"
9
+ require_relative "resume_json_formatter"
10
+ require_relative "resume_html_formatter"
11
+ require_relative "resume_list_formatter"
12
+ require_relative "resume_yaml_formatter"
13
+ require_relative "resume_txt_formatter"
14
+ require_relative "moodle_csv_formatter"
15
+ require_relative "csv_formatter"
16
+ require_relative "xml_formatter"
17
17
 
18
18
  # FormaterFactory module
19
19
  module FormatterFactory
20
20
  def self.get(report, format, filename)
21
21
  case format
22
22
  when :colored_text
23
- f = TXTFormatter.new(report,true)
23
+ f = TXTFormatter.new(report, true)
24
24
  when :csv
25
25
  f = CSVFormatter.new(report)
26
26
  when :html
@@ -30,7 +30,7 @@ module FormatterFactory
30
30
  when :list
31
31
  f = ListFormatter.new(report)
32
32
  when :txt
33
- f = TXTFormatter.new(report,false)
33
+ f = TXTFormatter.new(report, false)
34
34
  when :xml
35
35
  f = XMLFormatter.new(report)
36
36
  when :yaml
@@ -57,19 +57,21 @@ module FormatterFactory
57
57
  end
58
58
 
59
59
  def self.ext(format)
60
- data = { cvs: 'csv',
61
- colored_text: 'txt',
62
- json: 'json',
63
- list: 'txt',
64
- txt: 'txt',
65
- yaml: 'yaml',
66
- resume_colored_text: 'txt',
67
- resume_csv: 'csv',
68
- resume_json: 'json',
69
- resume_html: 'html',
70
- resume_list: 'txt',
71
- resume_txt: 'txt',
72
- resume_yaml: 'yaml' }
60
+ data = {
61
+ cvs: "csv",
62
+ colored_text: "txt",
63
+ json: "json",
64
+ list: "txt",
65
+ txt: "txt",
66
+ yaml: "yaml",
67
+ resume_colored_text: "txt",
68
+ resume_csv: "csv",
69
+ resume_json: "json",
70
+ resume_html: "html",
71
+ resume_list: "txt",
72
+ resume_txt: "txt",
73
+ resume_yaml: "yaml"
74
+ }
73
75
  return format.to_s if data[format].nil?
74
76
 
75
77
  data[format]
@@ -1,15 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'erb'
4
- require_relative 'yaml_formatter'
5
- require_relative '../../application'
3
+ require "erb"
4
+ require_relative "yaml_formatter"
5
+ require_relative "../../application"
6
6
 
7
- ##
8
- # HTMLFormatter class receive a [Report] and generates HAML output.
9
7
  class HTMLFormatter < YAMLFormatter
10
- ##
11
- # Class constructor
12
- # @param report [Report] Parent object that contains data to be exported.
13
8
  def initialize(report)
14
9
  super(report)
15
10
  @data = {}
@@ -17,25 +12,46 @@ class HTMLFormatter < YAMLFormatter
17
12
  @template = File.read(filepath)
18
13
  end
19
14
 
20
- ##
21
- # Process data from parent object and export it into YAML format.
22
15
  def process
23
16
  build_data
24
17
  build_page
25
18
  deinit
26
19
  end
27
20
 
28
- ##
29
- # Build html case page
30
21
  def build_page
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)
22
+ # config = @data[:config]
23
+ # results = @data[:results]
24
+ # logs = @data[:logs]
25
+ # groups = @data[:groups]
26
+ # hall_of_fame = @data[:hall_of_fame]
27
+ # version = Application::VERSION
28
+ render = ERB.new(@template)
29
+ w render.result(binding)
30
+ end
31
+
32
+ private
33
+
34
+ def config
35
+ @data[:config]
36
+ end
37
+
38
+ def results
39
+ @data[:results]
40
+ end
41
+
42
+ def logs
43
+ @data[:logs]
44
+ end
45
+
46
+ def groups
47
+ @data[:groups]
48
+ end
49
+
50
+ def hall_of_fame
51
+ @data[:hall_of_fame]
52
+ end
53
+
54
+ def version
55
+ Application::VERSION
40
56
  end
41
57
  end
@@ -1,15 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'json/pure'
4
- require_relative 'array_formatter'
3
+ require "json/pure"
4
+ require_relative "array_formatter"
5
5
 
6
- # JSONFormatter class
7
6
  class JSONFormatter < ArrayFormatter
8
- def initialize(report)
9
- super(report)
10
- @data = {}
11
- end
12
-
13
7
  def process
14
8
  build_data
15
9
  w @data.to_json # Write data into ouput file
@@ -1,14 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'array_formatter'
3
+ require_relative "array_formatter"
4
4
 
5
- # ListFormatter class
6
5
  class ListFormatter < ArrayFormatter
7
- def initialize(report)
8
- super(report)
9
- @data = {}
10
- end
11
-
12
6
  def process
13
7
  build_data
14
8
  process_config
@@ -23,7 +17,7 @@ class ListFormatter < ArrayFormatter
23
17
 
24
18
  def process_config
25
19
  w "CONFIGURATION\n"
26
- @data[:config].sort.each { |key,value| w " * #{key} : #{value}\n" }
20
+ @data[:config].sort.each { |key, value| w " * #{key} : #{value}\n" }
27
21
  w "\n\n"
28
22
  end
29
23
 
@@ -43,8 +37,8 @@ class ListFormatter < ArrayFormatter
43
37
 
44
38
  def process_results
45
39
  w "\nRESULTS\n"
46
- @data[:results].each do |key,value|
47
- w " * #{key.to_s} : #{value.to_s}\n"
40
+ @data[:results].each do |key, value|
41
+ w " * #{key} : #{value}\n"
48
42
  end
49
43
  end
50
44
 
@@ -60,10 +54,10 @@ class ListFormatter < ArrayFormatter
60
54
  private
61
55
 
62
56
  def process_group(group)
63
- tab = ' '
57
+ tab = " "
64
58
  w "- #{group[:title]}\n"
65
59
  group[:targets].each do |i|
66
- w tab*2 + "#{format("%02d", i[:target_id].to_i)}"
60
+ w "#{tab * 2}#{format("%02d", i[:target_id].to_i)}"
67
61
  w " (#{i[:score]}/#{i[:weight]}) "
68
62
  w "#{i[:description]}\n"
69
63
  end
@@ -1,9 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'resume_array_formatter'
3
+ require_relative "resume_array_formatter"
4
4
 
5
- ##
6
- # Format data to Moodle CSV
7
5
  class MoodleCSVFormatter < ResumeArrayFormatter
8
6
  ##
9
7
  # initialize instance
@@ -28,10 +26,9 @@ class MoodleCSVFormatter < ResumeArrayFormatter
28
26
  w "MoodleID, TeutonGrade, TeutonFeedback\n"
29
27
  @data[:cases].each do |line|
30
28
  moodle_id = line[:moodle_id]
31
- moodle_id = line[:moodle_id].split(',') if moodle_id.class == String
29
+ moodle_id = line[:moodle_id].split(",") if moodle_id.instance_of? String
32
30
  moodle_id.each do |id|
33
- w "#{id.strip},#{line[:grade]}," \
34
- "#{line[:moodle_feedback]}\n" unless line[:skip]
31
+ w "#{id.strip},#{line[:grade]},#{line[:moodle_feedback]}\n" unless line[:skip]
35
32
  end
36
33
  end
37
34
  end
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'base_formatter'
3
+ require_relative "base_formatter"
4
4
 
5
5
  # ArrayFormatter class: format report data into an array
6
6
  class ResumeArrayFormatter < BaseFormatter
@@ -1,39 +1,49 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'erb'
4
- require_relative 'resume_yaml_formatter'
5
- require_relative '../../application'
3
+ require "erb"
4
+ require_relative "resume_yaml_formatter"
5
+ require_relative "../../application"
6
6
 
7
7
  ##
8
- # HTMLFormatter class receive a [Report] and generates HAML output.
8
+ # HTMLFormatter class receive a [Report] and generates HTML output.
9
9
  class ResumeHTMLFormatter < ResumeYAMLFormatter
10
- ##
11
- # Class constructor
12
- # @param report [Report] Parent object that contains data to be exported.
13
10
  def initialize(report)
14
11
  super(report)
15
12
  @data = {}
16
- filepath = File.join(File.dirname(__FILE__), '..', '..', 'files', 'template', 'resume.html')
13
+ filepath = File.join(File.dirname(__FILE__), "..", "..", "files", "template", "resume.html")
17
14
  @template = File.read(filepath)
18
15
  end
19
16
 
20
- ##
21
- # Process data from parent object and export it into YAML format.
22
17
  def process
23
18
  build_data
24
19
  build_page
25
20
  deinit
26
21
  end
27
22
 
28
- ##
29
- # Build html case page
30
23
  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)
24
+ render = ERB.new(@template)
25
+ w render.result(binding)
26
+ end
27
+
28
+ private
29
+
30
+ def config
31
+ @data[:config]
32
+ end
33
+
34
+ def cases
35
+ @data[:cases]
36
+ end
37
+
38
+ def results
39
+ @data[:results]
40
+ end
41
+
42
+ def hall_of_fame
43
+ @data[:hall_of_fame]
44
+ end
45
+
46
+ def version
47
+ Application::VERSION
38
48
  end
39
49
  end
@@ -1,6 +1,5 @@
1
-
2
- require 'json/pure'
3
- require_relative 'resume_array_formatter'
1
+ require "json/pure"
2
+ require_relative "resume_array_formatter"
4
3
 
5
4
  # JSONFormatter class
6
5
  class ResumeJSONFormatter < ResumeArrayFormatter
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require_relative 'resume_array_formatter'
3
+ require_relative "resume_array_formatter"
4
4
 
5
5
  # ResumeListFormatter class
6
6
  class ResumeListFormatter < ResumeArrayFormatter
@@ -23,7 +23,7 @@ class ResumeListFormatter < ResumeArrayFormatter
23
23
 
24
24
  def process_config
25
25
  w "CONFIGURATION\n"
26
- @data[:config].each do |key,value|
26
+ @data[:config].each do |key, value|
27
27
  w " * #{key}: #{trim(value)}\n"
28
28
  end
29
29
  end
@@ -31,7 +31,7 @@ class ResumeListFormatter < ResumeArrayFormatter
31
31
  def process_cases
32
32
  w "CASES\n"
33
33
  @data[:cases].each do |line|
34
- w " [#{line[:id]}] #{line[:members]} :#{format('%3d', line[:grade])}\n"
34
+ w " [#{line[:id]}] #{line[:members]} :#{format("%3d", line[:grade])}\n"
35
35
  end
36
36
  end
37
37
 
@@ -46,7 +46,7 @@ class ResumeListFormatter < ResumeArrayFormatter
46
46
 
47
47
  def process_results
48
48
  w "\nRESULTS\n"
49
- @data[:results].each do |key,value|
49
+ @data[:results].each do |key, value|
50
50
  w " * #{key}: #{value}\n"
51
51
  end
52
52
  end
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'terminal-table'
4
- require 'rainbow'
5
- require_relative 'resume_array_formatter'
3
+ require "terminal-table"
4
+ require "rainbow"
5
+ require_relative "resume_array_formatter"
6
6
 
7
7
  # TXTFormatter class
8
8
  class ResumeTXTFormatter < ResumeArrayFormatter
@@ -30,7 +30,7 @@ class ResumeTXTFormatter < ResumeArrayFormatter
30
30
  private
31
31
 
32
32
  def process_config
33
- w "#{Rainbow('CONFIGURATION').bg(:blue)}\n"
33
+ w "#{Rainbow("CONFIGURATION").bg(:blue)}\n"
34
34
  my_screen_table = Terminal::Table.new do |st|
35
35
  @data[:config].each do |key, value|
36
36
  st.add_row [key.to_s, trim(value)]
@@ -39,21 +39,21 @@ class ResumeTXTFormatter < ResumeArrayFormatter
39
39
  w "#{my_screen_table}\n\n"
40
40
  end
41
41
 
42
- # rubocop:disable Metrics/MethodLength
43
42
  def process_cases
44
- w "#{Rainbow('CASES').bg(:blue)}\n"
43
+ w "#{Rainbow("CASES").bg(:blue)}\n"
45
44
  my_screen_table = Terminal::Table.new do |st|
46
45
  st.add_row %w[CASE MEMBERS GRADE STATE]
47
46
  @data[:cases].each do |line|
48
- st.add_row [line[:id],
49
- line[:members],
50
- format(' %<grade>3d', { grade: line[:grade] }),
51
- line[:letter]]
47
+ st.add_row [
48
+ line[:id],
49
+ line[:members],
50
+ format(" %<grade>3d", {grade: line[:grade]}),
51
+ line[:letter]
52
+ ]
52
53
  end
53
54
  end
54
55
  w "#{my_screen_table}\n\n"
55
56
  end
56
- # rubocop:enable Metrics/MethodLength
57
57
 
58
58
  def process_conn_errors
59
59
  my_screen_table = Terminal::Table.new do |st|
@@ -66,11 +66,11 @@ class ResumeTXTFormatter < ResumeArrayFormatter
66
66
  end
67
67
  return unless my_screen_table.rows.size > 1
68
68
 
69
- w "#{Rainbow('CONN ERRORS').bg(:red)}\n#{my_screen_table}\n"
69
+ w "#{Rainbow("CONN ERRORS").bg(:red)}\n#{my_screen_table}\n"
70
70
  end
71
71
 
72
72
  def process_results
73
- w "\n#{Rainbow('RESULTS').bg(:blue)}\n"
73
+ w "\n#{Rainbow("RESULTS").bg(:blue)}\n"
74
74
  my_screen_table = Terminal::Table.new do |st|
75
75
  @data[:results].each do |key, value|
76
76
  st.add_row [key.to_s, value.to_s]
@@ -79,12 +79,10 @@ class ResumeTXTFormatter < ResumeArrayFormatter
79
79
  w "#{my_screen_table}\n"
80
80
  end
81
81
 
82
- # rubocop:disable Metrics/MethodLength
83
- # rubocop:disable Metrics/AbcSize
84
82
  def process_hof
85
83
  return if @data[:hall_of_fame].size < 3
86
84
 
87
- w "\n#{Rainbow('HALL OF FAME').bg(:blue)}\n"
85
+ w "\n#{Rainbow("HALL OF FAME").bg(:blue)}\n"
88
86
  my_screen_table = Terminal::Table.new do |st|
89
87
  @data[:hall_of_fame].each do |line|
90
88
  mycolor = :green
@@ -100,6 +98,4 @@ class ResumeTXTFormatter < ResumeArrayFormatter
100
98
  end
101
99
  w "#{my_screen_table}\n"
102
100
  end
103
- # rubocop:enable Metrics/MethodLength
104
- # rubocop:enable Metrics/AbcSize
105
101
  end
@@ -1,19 +1,11 @@
1
+ require_relative "resume_array_formatter"
1
2
 
2
- require_relative 'resume_array_formatter'
3
-
4
- ##
5
- # ResumeHTMLFormatter class
6
3
  class ResumeYAMLFormatter < ResumeArrayFormatter
7
- ##
8
- # Initialize class
9
- # @param report (Report)
10
4
  def initialize(report)
11
5
  super(report)
12
6
  @data = {}
13
7
  end
14
8
 
15
- ##
16
- # Process resume report
17
9
  def process
18
10
  build_data
19
11
  w @data.to_yaml # Write data into ouput file