teuton 0.0.1 → 2.1.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d55a24ec355421cd07d663355e689bc8edd0d4c80c498510d018a629580eb90
4
- data.tar.gz: e640a71a276ce35f26aa4fc6412c836e4405df58a6c08e212f9046639280e486
3
+ metadata.gz: b8888bb5a43b357d2968cdcf354d1bad4851649f282a4ef1d24f7ad26ba04243
4
+ data.tar.gz: 2c476f06e9b429c19c4fc87c0fd783b30fd4931bf2887fcf7fe834c86463e028
5
5
  SHA512:
6
- metadata.gz: 6008a3dbeef623139d4e6cbe73b54755e055756ce643d5bb3b8e46c42ecf1cba349cd3cd88274d8b188a94de89d06a03182269d8783ebfa8b13ad79669bbd865
7
- data.tar.gz: 69128f5748c9cef8fa9b13c84c7c134dfb085709ba7c2c43b7d40033f974c2e088d6f28e8cbb67f37bd97ccae6be530bf9779dcc4fd30fec3795b36ca6988dcf
6
+ metadata.gz: b0ca5960c2334209ae1bf9058cb017554664b58b1d7b7854b647efb9bf240e09098d4a939f0325b3056910029251412b76aea57a06d72db20a3e1febe091266f
7
+ data.tar.gz: e6a0f6a97d6a77a4c7e7ad9286de04de2145c15d40be0b781f9d7f98db5d28cdc662ff570cb7e4573c264f03cac6bd56946935d32852eafbee9bb9647b343ac3
data/README.md ADDED
@@ -0,0 +1,46 @@
1
+
2
+ # TEUTON Software
3
+
4
+ _Create Unit Test for your machines.
5
+ Test your infraestructure as code._
6
+
7
+ ![logo](./docs/logo.png)
8
+
9
+ Intrastructure test, useful for:
10
+ * Sysadmin teachers to evaluate students remote machines.
11
+ * Sysadmin apprentices to evaluate their learning process as a game.
12
+ * Professional sysadmin to monitor remote machines.
13
+
14
+ Allow us:
15
+ * Write test units for real or virtual machines using simple DSL.
16
+ * Check compliance with requirements on remote machines.
17
+
18
+ # Documentation
19
+
20
+ Read [Teuton Wiki](https://github.com/teuton-software/teuton/wiki) documentation.
21
+
22
+ * [Installation](https://github.com/teuton-software/teuton/wiki/Installation)
23
+ * [Modes](https://github.com/teuton-software/teuton/wiki/Modes-of-use)
24
+ * [Installation scripts](https://github.com/teuton-software/teuton/wiki/Installation-using-scripts)
25
+ * [Vagrant](https://github.com/teuton-software/teuton/wiki/Installation-using-Vagrant)
26
+ * [Manual](https://github.com/teuton-software/teuton/wiki/Manual-installation)
27
+ * [Learning](https://github.com/teuton-software/teuton/wiki/Learning)
28
+ * [Quick demo](https://github.com/teuton-software/teuton/wiki/Quick-demo)
29
+ * [Example 01 - Target](https://github.com/teuton-software/teuton/wiki/Example-01---Target)
30
+ * [Example 02 - Configfile](https://github.com/teuton-software/teuton/wiki/Example-02---Config-file)
31
+ * [Example 03 - Remote hosts](https://github.com/teuton-software/teuton/wiki/Example-03---Remote-hosts)
32
+ * [Example 04 - Use](https://github.com/teuton-software/teuton/wiki/Example-04---Use)
33
+ * [Commands](https://github.com/teuton-software/teuton/wiki/Commands)
34
+ * [DSL keywords](https://github.com/teuton-software/teuton/wiki/DSL-keywords)
35
+
36
+ # Features
37
+
38
+ * [Free Software License](LICENSE).
39
+ * Multiplatform [installation](https://github.com/teuton-software/teuton/wiki/Installation).
40
+ * Use SSH or Telnet protocol to connect to remote machines.
41
+ * Developed using the ruby language.
42
+
43
+ # Contact
44
+
45
+ * **Email**: `teuton.software@protonmail.com`
46
+ * **Twitter**: `@SoftwareTeuton`
data/docs/logo.png ADDED
Binary file
@@ -20,7 +20,13 @@ class Teuton < Thor
20
20
  def download
21
21
  repo = 'teuton-challenges'
22
22
  puts "[INFO] Downloading <#{repo}> repo..."
23
- system("git clone https://github.com/teuton-software/#{repo}.git")
24
- puts "[INFO] Your files are into <#{Rainbow(repo).bright}> directory..."
23
+ ok = system("git clone https://github.com/teuton-software/#{repo}.git")
24
+ if ok
25
+ puts "[INFO] Your files are into <#{Rainbow(repo).bright}> directory..."
26
+ else
27
+ puts Rainbow('[ERROR] Ensure: ').red
28
+ puts Rainbow(' 1. Git is installed.').red
29
+ puts Rainbow(' 2. Your Internet connection is working.').red
30
+ end
25
31
  end
26
32
  end
@@ -2,6 +2,13 @@
2
2
 
3
3
  # Close Show methods for Report class.
4
4
  class Report
5
+ ##
6
+ # Calculate final values:
7
+ # * grade
8
+ # * max_weight
9
+ # * good_weight,d
10
+ # * fail_weight
11
+ # * fail_counter
5
12
  def close
6
13
  app = Application.instance
7
14
  max = 0.0
@@ -3,13 +3,20 @@
3
3
  require 'yaml'
4
4
  require_relative 'array_formatter'
5
5
 
6
- # YAMLFormatter class
6
+ ##
7
+ # YAMLFormatter class receive a [Report] and generates YAML output.
7
8
  class YAMLFormatter < ArrayFormatter
9
+ ##
10
+ # Class constructor
11
+ # @param report [Report] Parent object that contains data to be exported.
8
12
  def initialize(report)
9
13
  super(report)
10
14
  @data = {}
11
15
  end
12
16
 
17
+ ##
18
+ # Process data from parent object and export it into YAML format.
19
+ # @return [nil]
13
20
  def process
14
21
  build_data
15
22
  w @data.to_yaml # Write data into ouput file
@@ -5,19 +5,30 @@ require_relative 'formatter/formatter_factory'
5
5
  require_relative 'show'
6
6
  require_relative 'close'
7
7
 
8
- =begin
9
- This class maintain the results of every case, in a structured way.
10
- * report/show.rb
11
- * report/close.rb
12
- =end
13
-
8
+ ##
9
+ # This class maintain the results of every case, in a structured way.
10
+ # * report/show.rb
11
+ # * report/close.rb
14
12
  class Report
13
+ # @!attribute id
14
+ # @return [Integer] It is the [Case] number. Zero indicates Resume Report.
15
15
  attr_accessor :id, :filename, :output_dir
16
- attr_accessor :head, :lines, :tail
17
- attr_reader :history
16
+ # @!attribute head
17
+ # @return [Hash] Report head information.
18
+ attr_accessor :head
19
+ # @!attribute lines
20
+ # @return [Array] Report body information.
21
+ attr_accessor :lines
22
+ # @!attribute tail
23
+ # @return [Hash] Report tail information.
24
+ attr_accessor :tail
25
+ # @!attribute format
26
+ # @return [Symbol] Indicate export format.
18
27
  attr_reader :format
19
-
20
- def initialize(id=0)
28
+ attr_reader :history
29
+ ##
30
+ # Class constructor
31
+ def initialize(id = 0)
21
32
  @id = id
22
33
  number = '0' + @id.to_s
23
34
  number = @id.to_s if @id > 9
@@ -32,6 +43,9 @@ class Report
32
43
  @history = ''
33
44
  end
34
45
 
46
+ ##
47
+ # Export [Case] data to specified format.
48
+ # @param format [Symbol] Select export format. Default value is :txt.
35
49
  def export(format = :txt)
36
50
  @format = format
37
51
  filepath = File.join(@output_dir, @filename + '.' \
@@ -41,6 +55,9 @@ class Report
41
55
  formatter.process
42
56
  end
43
57
 
58
+ ##
59
+ # Export resumed data from all Cases, to specified format.
60
+ # @param format [Symbol] Select export format. Default value is :txt.
44
61
  def export_resume(format = :txt)
45
62
  @format = "resume_#{format.to_s}".to_sym
46
63
  filepath = File.join(@output_dir, @filename + '.' \
@@ -2,6 +2,8 @@
2
2
 
3
3
  # Show methods for Report class.
4
4
  class Report
5
+ ##
6
+ # Display [Report] information on screen
5
7
  def show
6
8
  show_initial_configurations
7
9
  if @filename.to_s.include? 'resume'
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: 0.0.1
4
+ version: 2.1.0
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: 2019-11-12 00:00:00.000000000 Z
11
+ date: 2019-11-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0.2'
61
+ version: '0.1'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0.2'
68
+ version: '0.1'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rainbow
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +94,6 @@ dependencies:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0.20'
97
- - !ruby/object:Gem::Dependency
98
- name: timeout
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '0.0'
104
- type: :runtime
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '0.0'
111
97
  - !ruby/object:Gem::Dependency
112
98
  name: terminal-table
113
99
  requirement: !ruby/object:Gem::Requirement
@@ -150,15 +136,27 @@ dependencies:
150
136
  - - "~>"
151
137
  - !ruby/object:Gem::Version
152
138
  version: '0.74'
153
- description: " Intrastructure Test Software.\n\n Installation: https://github.com/teuton-software/teuton/wiki/Installation-using-scripts\n
154
- \ \n"
139
+ description: |2
140
+ Intrastructure Test Software.
141
+
142
+ Some dependencies require compilation.
143
+ Ensure these packages are installed into your local hosts:
144
+ [ALL] ruby, make, gcc
145
+ [Debian] ssh, ruby-dev
146
+ [OpenSUSE] openssh, ruby-devel
147
+
148
+ Read Teuton documentation: https://github.com/teuton-software/teuton/wiki/
155
149
  email: teuton.software@protonmail.com
156
150
  executables:
157
151
  - teuton
158
152
  extensions: []
159
- extra_rdoc_files: []
153
+ extra_rdoc_files:
154
+ - README.md
155
+ - docs/logo.png
160
156
  files:
157
+ - README.md
161
158
  - bin/teuton
159
+ - docs/logo.png
162
160
  - lib/teuton.rb
163
161
  - lib/teuton/application.rb
164
162
  - lib/teuton/case_manager/case/builtin/main.rb