reviser 0.0.3.rc2 → 0.0.3

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.
data/config.yml CHANGED
@@ -1,7 +1,27 @@
1
- ---
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
2
22
 
3
23
  ################################################
4
- # Config file #
24
+ # Template config file #
5
25
  ################################################
6
26
 
7
27
 
@@ -41,10 +61,6 @@ out_format:
41
61
  # The type of project (<type>.yml must exists)
42
62
  type: example/Labyrinthe
43
63
 
44
- # Default timeout
45
- # shall be overriden in sorts
46
- timeout: 5
47
-
48
64
 
49
65
  ######## Global config ########
50
66
 
@@ -67,7 +83,7 @@ extensions:
67
83
 
68
84
  # Whether to create a git repository for each project
69
85
  # relies on 'git' gem
70
- create_git_repo: true
86
+ # create_git_repo: true
71
87
 
72
88
  # Options of all components
73
89
  # For the moment, there is just verbose option (for logger)
data/ext/valgrind.rb CHANGED
@@ -1,3 +1,28 @@
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+
23
+ #
24
+ # @author Yann Prono
25
+ #
1
26
  module Reviser
2
27
  module Extensions
3
28
  module Valgrind
@@ -1,3 +1,25 @@
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+
1
23
  #
2
24
  # @author Renan Strauss
3
25
  #
@@ -7,7 +29,6 @@
7
29
  # It's very simple at that point, but feel free to
8
30
  # make the extension better :-)
9
31
  #
10
-
11
32
  module Reviser
12
33
  module Extensions
13
34
  module WebValidators
@@ -18,9 +39,6 @@ module Reviser
18
39
  # if any
19
40
  #
20
41
  def validate_web
21
- #
22
- # TODO : explain the exception to the user
23
- #
24
42
  unless defined? W3CValidators
25
43
  require_gem 'w3c_validators'
26
44
 
@@ -60,7 +78,7 @@ module Reviser
60
78
  files = sources.select { |s| File.extname(s) == ".#{lang}" }
61
79
  files.each do |f|
62
80
  begin
63
- response = validator.validate_file(File.new(f))
81
+ response = validator.validate_file(File.new(f, :encoding => 'utf-8'))
64
82
  results[f] = {
65
83
  :valid => response.errors.length == 0,
66
84
  :errors => response.errors.length
@@ -68,9 +86,9 @@ module Reviser
68
86
 
69
87
  print "="
70
88
  rescue W3CValidators::ValidatorUnavailable => e
71
- results[f] = e.message
89
+ results[f] = { valid: e.message, errors: 1 }
72
90
  rescue Exception => e
73
- results[f] = e.message
91
+ results[f] = { valid: e.message, errors: 1 }
74
92
  end
75
93
  end
76
94
  puts "]"
@@ -79,21 +97,13 @@ module Reviser
79
97
  end
80
98
 
81
99
  def prettify results
82
- return results unless results.values.first
83
-
84
- headings = results.values.first.keys
85
-
86
100
  html = '<table><tr><th>File</th>'
87
- headings.each { |heading| html << "<th>#{heading.to_s.capitalize!}</th>" }
101
+ results.values.first.keys.each { |heading| html << "<th>#{heading.to_s.capitalize!}</th>" }
88
102
  html << '</tr>'
89
103
 
90
104
  results.each do |file, data|
91
105
  html << "<tr><th>#{file}</th>"
92
- if data.is_a?(Hash)
93
- data.values.each { |value| html << "<td>#{value}</td>" }
94
- else
95
- html << "<td>#{data}</td>"
96
- end
106
+ data.values.each { |value| html << "<td>#{value}</td>" }
97
107
  html << '</tr>'
98
108
  end
99
109
  html << '</table>'
data/lang/C.yml CHANGED
@@ -1,5 +1,28 @@
1
- ---
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+
23
+ #
2
24
  # C language
25
+ #
3
26
 
4
27
  # List of source files extensions
5
28
  extension:
data/lang/HTML.yml CHANGED
@@ -1,6 +1,28 @@
1
- ---
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
2
22
 
23
+ #
3
24
  # HTML language
25
+ #
4
26
 
5
27
  # List of source files extensions
6
28
  # !!!!! Recent changes make me think
data/lang/Java.yml CHANGED
@@ -1,5 +1,28 @@
1
- ---
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+
23
+ #
2
24
  # Java language
25
+ #
3
26
 
4
27
  # List of source files extensions
5
28
  extension:
data/lang/Ruby.yml CHANGED
@@ -1,5 +1,28 @@
1
- ---
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+
23
+ #
2
24
  # Ruby language
25
+ #
3
26
 
4
27
  # List of source files extensions
5
28
  extension:
data/lib/exec.rb CHANGED
@@ -1,3 +1,24 @@
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
1
22
  require 'thor'
2
23
  require 'fileutils'
3
24
  require 'colorize'
@@ -15,7 +36,7 @@ require_relative 'reviser/helpers/criteria'
15
36
  module Reviser
16
37
  class Exec < Thor
17
38
 
18
- VERSION = '0.0.3.rc1'
39
+ VERSION = '0.0.3'
19
40
 
20
41
  map '--version' => :version
21
42
  map '-v' => :version
@@ -132,8 +153,7 @@ module Reviser
132
153
 
133
154
  desc 'version', 'Print out version information'
134
155
  def version
135
- puts "Reviser #{VERSION}"
136
- puts 'Released under the GPLv3 License.'
156
+ puts "Reviser".yellow + " " + "#{VERSION}".light_red + " Copyright (C) 2015 Renan Strauss, Yann Prono, Anthony Cerf, Romain Ruez"
137
157
  end
138
158
 
139
159
 
data/lib/reviser.rb CHANGED
@@ -1,12 +1,23 @@
1
1
  #
2
- # @author Renan Strauss
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
3
  #
4
- # This class is basically here to give the user
5
- # a generic and comprehensive way to use and
6
- # customize the behavior of our tool.
7
- # The main idea is that the user should not
8
- # instantiate components himself, nor worry
9
- # about the data these components exchange.
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
10
21
  #
11
22
  require 'mkmf'
12
23
  require 'colorize'
@@ -32,7 +43,15 @@ def require_gem gem_name
32
43
  end
33
44
 
34
45
  #
35
- # The API entry point
46
+ # @author Renan Strauss
47
+ #
48
+ # This class is basically here to give the user
49
+ # a generic and comprehensive way to use and
50
+ # customize the behavior of our tool.
51
+ # The main idea is that the user should not
52
+ # instantiate components himself, nor worry
53
+ # about the data these components exchange.
54
+ # It is the API entry point.
36
55
  #
37
56
  module Reviser
38
57
  class Reviser
@@ -1,3 +1,26 @@
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
22
+ require_relative 'loggers/logger'
23
+
1
24
  #
2
25
  # The abstract class Component
3
26
  # Even though Ruby doesn't have abstract classes,
@@ -6,8 +29,6 @@
6
29
  #
7
30
  # @author Renan Strauss
8
31
  #
9
- require_relative 'loggers/logger'
10
-
11
32
  module Reviser
12
33
  class Component
13
34
  #
@@ -1,3 +1,24 @@
1
+ #
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
+ #
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
13
+ #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+ #
1
22
  require 'fileutils'
2
23
  require_relative 'extractors'
3
24
 
@@ -1,17 +1,38 @@
1
1
  #
2
- # @author Renan Strauss
2
+ # Reviser => a semi-automatic tool for student's projects evaluation
3
3
  #
4
- # The Checker is a component that wraps
5
- # all required tools to do the analysis.
6
- # It adapts itself dynamically
7
- # to the configuration
4
+ # Copyright (C) 2015 Renan Strauss
5
+ # Copyright (C) 2015 Yann Prono
6
+ # Copyright (C) 2015 Romain Ruez
7
+ # Copyright (C) 2015 Anthony Cerf
8
+ #
9
+ # This program is free software: you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation, either version 3 of the License, or
12
+ # (at your option) any later version.
8
13
  #
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+ #
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
9
21
  #
10
22
  require 'open3'
11
23
 
12
24
  require_relative '../result'
13
25
  require_relative '../helpers/criteria'
14
26
 
27
+ #
28
+ # @author Renan Strauss
29
+ #
30
+ # The Checker is a component that wraps
31
+ # all required tools to do the analysis.
32
+ # It adapts itself dynamically
33
+ # to the configuration
34
+ #
35
+ #
15
36
  module Reviser
16
37
  module Components
17
38
  class Checker < Component