mumukit 2.33.1 → 2.37.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 +4 -4
- data/lib/locales/es-CL.yml +17 -0
- data/lib/locales/es.yml +2 -2
- data/lib/mumukit.rb +5 -0
- data/lib/mumukit/explainer.rb +8 -2
- data/lib/mumukit/metatest.rb +2 -1
- data/lib/mumukit/metatest/checker.rb +49 -11
- data/lib/mumukit/metatest/errors.rb +11 -4
- data/lib/mumukit/metatest/test_result_builder.rb +20 -0
- data/lib/mumukit/runtime/info.rb +1 -0
- data/lib/mumukit/server/response_builder.rb +10 -4
- data/lib/mumukit/templates/expectations_hook.rb +4 -6
- data/lib/mumukit/templates/mulang_expectations_hook.rb +1 -0
- data/lib/mumukit/version.rb +1 -1
- metadata +21 -25
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dfa3c63e600cb5848a01f68ac274471b174e2812faf5895d99d0764b874a5d4b
|
|
4
|
+
data.tar.gz: c1c0d95c19b7b986759fb4c490a4ac1a88c5503e7fd99b3ad8a88f6370644555
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e86876cf4f194d7c1bf299d533001b57973a24e0c50ac46a4d054e948a959391a9f70482cecab30f97506bae3d2108040418e6187bdf59f6b45c0681566953ee
|
|
7
|
+
data.tar.gz: 2782593fbba56c18d46be88f69e8688b51056f9693d626662f442ff6c4afecbf9c367c77bd38a493e37c032e380990eb34b4c2083901acbb63df81cd6ddf20de
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
es-CL:
|
|
2
|
+
mumukit:
|
|
3
|
+
memory_exceeded: Limite de memoria excedido. ¿Tu programa está alocando demasiada memoria?
|
|
4
|
+
time_exceeded: Limite de tiempo de ejecución de %{limit}s excedido. ¿Tu programa tiene recursión o bucle infinito?
|
|
5
|
+
masked_tempfile_basename: solucion
|
|
6
|
+
interactive:
|
|
7
|
+
check_last_query_equals: "La consulta debería ser '%{expected}' pero fue '%{actual}'"
|
|
8
|
+
check_last_query_fails: "La consulta debería fallar pero pasó"
|
|
9
|
+
check_last_query_matches: "La consulta no cumple con la expresión regular %{regex}"
|
|
10
|
+
check_last_query_outputs: "La consulta debería devolver '%{expected}' pero devolvió '%{actual}'"
|
|
11
|
+
check_last_query_includes: "La consulta debería incluir '%{expected}' pero devolvió '%{actual}'"
|
|
12
|
+
check_last_query_like: "La consulta debería ser como '%{expected}' pero devolvió '%{actual}'"
|
|
13
|
+
check_last_query_passes: "La consulta debería pasar pero falló"
|
|
14
|
+
check_query_fails: "La consulta '%{query}' debería fallar pero pasó"
|
|
15
|
+
check_query_outputs: "La consulta '%{query}' debería devolver '%{expected}' pero devolvió '%{actual}'"
|
|
16
|
+
check_query_passes: "La consulta '%{query}' debería pasar pero falló"
|
|
17
|
+
goal_passed: "El objetivo se cumplió exitosamente"
|
data/lib/locales/es.yml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
es:
|
|
2
2
|
mumukit:
|
|
3
3
|
memory_exceeded: Limite de memoria excedido. ¿Tu programa está alocando demasiada memoria?
|
|
4
|
-
time_exceeded:
|
|
4
|
+
time_exceeded: Limite de tiempo de ejecución de %{limit}s excedido. ¿Tu programa tiene recursión o bucle infinito?
|
|
5
5
|
masked_tempfile_basename: solucion
|
|
6
6
|
interactive:
|
|
7
7
|
check_last_query_equals: "La consulta debería ser '%{expected}' pero fue '%{actual}'"
|
|
@@ -14,4 +14,4 @@ es:
|
|
|
14
14
|
check_query_fails: "La consulta '%{query}' debería fallar pero pasó"
|
|
15
15
|
check_query_outputs: "La consulta '%{query}' debería devolver '%{expected}' pero devolvió '%{actual}'"
|
|
16
16
|
check_query_passes: "La consulta '%{query}' debería pasar pero falló"
|
|
17
|
-
goal_passed: "El objetivo se cumplió exitosamente"
|
|
17
|
+
goal_passed: "El objetivo se cumplió exitosamente"
|
data/lib/mumukit.rb
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
require 'mumukit/core'
|
|
2
2
|
require 'mumukit/directives'
|
|
3
|
+
require 'mumukit/inspection'
|
|
3
4
|
require 'ostruct'
|
|
5
|
+
require 'mulang'
|
|
4
6
|
|
|
5
7
|
I18n.load_translations_path File.join(__dir__, 'locales', '*.yml')
|
|
6
8
|
|
|
9
|
+
Mulang::Inspection.register_extension! Mumukit::Inspection::Source
|
|
10
|
+
|
|
7
11
|
module Mumukit
|
|
8
12
|
def self.current_runner=(runner)
|
|
9
13
|
@current_runner = runner
|
|
@@ -49,6 +53,7 @@ Mumukit.configure_defaults do |config|
|
|
|
49
53
|
config.process_expectations_on_empty_content = false
|
|
50
54
|
config.run_test_hook_on_empty_test = false
|
|
51
55
|
config.multifile = false
|
|
56
|
+
config.settings = false
|
|
52
57
|
end
|
|
53
58
|
|
|
54
59
|
require 'mumukit/content_type'
|
data/lib/mumukit/explainer.rb
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
class Mumukit::Explainer
|
|
2
|
+
include Mumukit::WithContentType
|
|
3
|
+
|
|
2
4
|
def explain(content, test_results)
|
|
5
|
+
content_type.enumerate(explanations(content, test_results))
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
private
|
|
9
|
+
|
|
10
|
+
def explanations(content, test_results)
|
|
3
11
|
explain_methods
|
|
4
12
|
.map { |selector, key| eval_explain(selector, key, content, test_results) }
|
|
5
13
|
.compact
|
|
6
14
|
.map { |explain| I18n.t(explain[:key], explain[:binding]) }
|
|
7
|
-
.map { |it| "* #{it}" }
|
|
8
|
-
.join("\n")
|
|
9
15
|
end
|
|
10
16
|
|
|
11
17
|
def eval_explain(selector, key, content, test_results)
|
data/lib/mumukit/metatest.rb
CHANGED
|
@@ -3,6 +3,7 @@ end
|
|
|
3
3
|
|
|
4
4
|
require_relative './metatest/errors'
|
|
5
5
|
require_relative './metatest/checker'
|
|
6
|
+
require_relative './metatest/test_result_builder'
|
|
6
7
|
require_relative './metatest/interactive_checker'
|
|
7
8
|
require_relative './metatest/framework'
|
|
8
|
-
require_relative './metatest/identity_runner'
|
|
9
|
+
require_relative './metatest/identity_runner'
|
|
@@ -24,10 +24,12 @@ module Mumukit::Metatest
|
|
|
24
24
|
## }
|
|
25
25
|
##
|
|
26
26
|
def check(input, example)
|
|
27
|
+
builder = Mumukit::Metatest::TestResultBuilder.new
|
|
28
|
+
|
|
27
29
|
check_assertions input, postconditions_for(example), example
|
|
28
|
-
|
|
30
|
+
build_passed_test_result builder, example, input
|
|
29
31
|
rescue => e
|
|
30
|
-
|
|
32
|
+
build_failed_test_result builder, example, input, e
|
|
31
33
|
end
|
|
32
34
|
|
|
33
35
|
## If no postconditions are included in the example,
|
|
@@ -36,12 +38,34 @@ module Mumukit::Metatest
|
|
|
36
38
|
example[:postconditions] || example.except(:name)
|
|
37
39
|
end
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
# Implementors may override this method instead of `build_success_output`
|
|
42
|
+
# if they don't want to handle error details.
|
|
43
|
+
#
|
|
44
|
+
# This method is only for backward compatibility. New code
|
|
45
|
+
# should use `build_success_output`.
|
|
46
|
+
def render_success_output(_input)
|
|
40
47
|
nil
|
|
41
48
|
end
|
|
42
49
|
|
|
43
|
-
|
|
44
|
-
|
|
50
|
+
# Implementors may override this method instead of `build_error_output`
|
|
51
|
+
# if they don't want to handle error details.
|
|
52
|
+
#
|
|
53
|
+
# This method is only for backward compatibility. New code
|
|
54
|
+
# should use `build_error_output`.
|
|
55
|
+
def render_error_output(_input, error_message)
|
|
56
|
+
error_message
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# Implementors should override this method if they want access to
|
|
60
|
+
# the error details and produce more complex test results
|
|
61
|
+
def build_success_output(builder, _example, input)
|
|
62
|
+
builder.result = render_success_output input
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# Implementors should override this method if they want access to
|
|
66
|
+
# the error details and produce more complex test results
|
|
67
|
+
def build_error_output(builder, input, _example, error)
|
|
68
|
+
builder.result = render_error_output input, error.message
|
|
45
69
|
end
|
|
46
70
|
|
|
47
71
|
def check_assertions(input, assertions_hash, example)
|
|
@@ -54,16 +78,30 @@ module Mumukit::Metatest
|
|
|
54
78
|
send "check_#{assertion_name}", input, assertion_config
|
|
55
79
|
end
|
|
56
80
|
|
|
57
|
-
def fail(message)
|
|
58
|
-
raise Mumukit::Metatest::Failed,
|
|
81
|
+
def fail(message, details: nil)
|
|
82
|
+
raise Mumukit::Metatest::Failed.new(message, details)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def abort(message, details: nil)
|
|
86
|
+
raise Mumukit::Metatest::Aborted.new(message, details)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def error(message, details: nil)
|
|
90
|
+
raise Mumukit::Metatest::Errored.new(message, details)
|
|
59
91
|
end
|
|
60
92
|
|
|
61
|
-
def
|
|
62
|
-
|
|
93
|
+
def build_passed_test_result(builder, example, input)
|
|
94
|
+
builder.title = example[:name]
|
|
95
|
+
builder.status = :passed
|
|
96
|
+
build_success_output builder, example, input
|
|
97
|
+
builder.build
|
|
63
98
|
end
|
|
64
99
|
|
|
65
|
-
def
|
|
66
|
-
|
|
100
|
+
def build_failed_test_result(builder, example, input, e)
|
|
101
|
+
builder.title = example[:name]
|
|
102
|
+
builder.status = :failed
|
|
103
|
+
build_error_output builder, example, input, e
|
|
104
|
+
builder.build
|
|
67
105
|
end
|
|
68
106
|
end
|
|
69
107
|
end
|
|
@@ -1,10 +1,17 @@
|
|
|
1
1
|
module Mumukit::Metatest
|
|
2
|
-
class
|
|
2
|
+
class BaseError < StandardError
|
|
3
|
+
attr_reader :details
|
|
4
|
+
def initialize(message = "", details = nil)
|
|
5
|
+
super(message)
|
|
6
|
+
@details = details
|
|
7
|
+
end
|
|
8
|
+
end
|
|
9
|
+
class Aborted < BaseError
|
|
3
10
|
end
|
|
4
11
|
|
|
5
|
-
class Errored <
|
|
12
|
+
class Errored < BaseError
|
|
6
13
|
end
|
|
7
14
|
|
|
8
|
-
class Failed <
|
|
15
|
+
class Failed < BaseError
|
|
9
16
|
end
|
|
10
|
-
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Mumukit::Metatest
|
|
2
|
+
class TestResultBuilder
|
|
3
|
+
attr_accessor :title, :status, :result, :summary_type, :summary_message
|
|
4
|
+
|
|
5
|
+
def summary
|
|
6
|
+
{type: summary_type.presence, message: summary_message.presence}.compact
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
def build
|
|
10
|
+
raise 'missing status' unless status
|
|
11
|
+
raise "invalid #{status}" unless status.passed? || status.failed?
|
|
12
|
+
|
|
13
|
+
if summary_message.present? || summary_type.present?
|
|
14
|
+
[title, status, result, summary]
|
|
15
|
+
else
|
|
16
|
+
[title, status, result]
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
data/lib/mumukit/runtime/info.rb
CHANGED
|
@@ -19,6 +19,7 @@ module Mumukit::RuntimeInfo
|
|
|
19
19
|
stateful: Mumukit.config.stateful,
|
|
20
20
|
multifile: Mumukit.config.multifile,
|
|
21
21
|
preprocessor: Mumukit.config.preprocessor_enabled,
|
|
22
|
+
settings: Mumukit.config.settings,
|
|
22
23
|
|
|
23
24
|
sandboxed: any_hook_include?([:test, :query], Mumukit::Templates::WithIsolatedEnvironment),
|
|
24
25
|
structured: any_hook_include?([:test], Mumukit::Templates::WithStructuredResults) || Mumukit.config.structured
|
|
@@ -58,10 +58,16 @@ class Mumukit::Server::ResponseBuilder
|
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
def structured_base_response(test_results)
|
|
61
|
-
{
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
61
|
+
{
|
|
62
|
+
testResults: test_results[0].map do |title, status, result, summary|
|
|
63
|
+
{ summary: summary&.compact.presence }
|
|
64
|
+
.compact
|
|
65
|
+
.merge(
|
|
66
|
+
title: title,
|
|
67
|
+
status: status,
|
|
68
|
+
result: result)
|
|
69
|
+
end
|
|
70
|
+
}
|
|
65
71
|
end
|
|
66
72
|
|
|
67
73
|
def unstructured_base_response(test_results)
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
require 'mumukit/inspection'
|
|
2
|
-
|
|
3
1
|
module Mumukit
|
|
4
2
|
class Templates::ExpectationsHook < Mumukit::Hook
|
|
5
3
|
SOURCE_EXPECTATION_EVALUATORS = {
|
|
@@ -21,8 +19,8 @@ module Mumukit
|
|
|
21
19
|
private
|
|
22
20
|
|
|
23
21
|
def compile_expectations(request)
|
|
24
|
-
expectations = {ast: [], source: [], exceptions: []}
|
|
25
|
-
request[:expectations].each do |it|
|
|
22
|
+
expectations = {ast: [], source: [], exceptions: [], custom: request[:custom_expectations] }
|
|
23
|
+
request[:expectations].to_a.each do |it|
|
|
26
24
|
fill_expectations it.deep_symbolize_keys, expectations
|
|
27
25
|
end
|
|
28
26
|
expectations
|
|
@@ -40,7 +38,7 @@ module Mumukit
|
|
|
40
38
|
end
|
|
41
39
|
|
|
42
40
|
def compile_expectation(expectation)
|
|
43
|
-
|
|
41
|
+
Mulang::Expectation.parse(expectation).as_v2.to_h
|
|
44
42
|
end
|
|
45
43
|
|
|
46
44
|
def compile_source_expectation(expectation)
|
|
@@ -62,7 +60,7 @@ module Mumukit
|
|
|
62
60
|
end
|
|
63
61
|
|
|
64
62
|
def self.parse(expectation)
|
|
65
|
-
parsed =
|
|
63
|
+
parsed = Mulang::Expectation.parse(expectation)
|
|
66
64
|
evaluator = parse_evaluator(parsed.inspection)
|
|
67
65
|
new parsed, evaluator
|
|
68
66
|
end
|
|
@@ -18,6 +18,7 @@ module Mumukit
|
|
|
18
18
|
def compile_mulang_analysis(request, expectations)
|
|
19
19
|
mulang_code(request).analysis(
|
|
20
20
|
expectations: expectations[:ast],
|
|
21
|
+
customExpectations: expectations[:custom],
|
|
21
22
|
smellsSet: {
|
|
22
23
|
tag: 'AllSmells',
|
|
23
24
|
exclude: (expectations[:exceptions] + default_smell_exceptions)
|
data/lib/mumukit/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mumukit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.37.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Franco Leonardo Bulgarelli
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2020-11-10 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -16,42 +16,42 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
19
|
+
version: '2.0'
|
|
20
20
|
type: :development
|
|
21
21
|
prerelease: false
|
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
23
|
requirements:
|
|
24
24
|
- - "~>"
|
|
25
25
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: '
|
|
26
|
+
version: '2.0'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: rake
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '
|
|
33
|
+
version: '12.3'
|
|
34
34
|
type: :development
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - "~>"
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: '
|
|
40
|
+
version: '12.3'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: rspec
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '
|
|
47
|
+
version: '3.0'
|
|
48
48
|
type: :development
|
|
49
49
|
prerelease: false
|
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
|
51
51
|
requirements:
|
|
52
52
|
- - "~>"
|
|
53
53
|
- !ruby/object:Gem::Version
|
|
54
|
-
version: '
|
|
54
|
+
version: '3.0'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
56
|
name: codeclimate-test-reporter
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -170,14 +170,14 @@ dependencies:
|
|
|
170
170
|
requirements:
|
|
171
171
|
- - "~>"
|
|
172
172
|
- !ruby/object:Gem::Version
|
|
173
|
-
version: '0.
|
|
173
|
+
version: '0.71'
|
|
174
174
|
type: :runtime
|
|
175
175
|
prerelease: false
|
|
176
176
|
version_requirements: !ruby/object:Gem::Requirement
|
|
177
177
|
requirements:
|
|
178
178
|
- - "~>"
|
|
179
179
|
- !ruby/object:Gem::Version
|
|
180
|
-
version: '0.
|
|
180
|
+
version: '0.71'
|
|
181
181
|
- !ruby/object:Gem::Dependency
|
|
182
182
|
name: sinatra-cross_origin
|
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -212,28 +212,28 @@ dependencies:
|
|
|
212
212
|
requirements:
|
|
213
213
|
- - "~>"
|
|
214
214
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '
|
|
215
|
+
version: '5.1'
|
|
216
216
|
type: :runtime
|
|
217
217
|
prerelease: false
|
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
219
|
requirements:
|
|
220
220
|
- - "~>"
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: '
|
|
222
|
+
version: '5.1'
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
|
224
224
|
name: mumukit-inspection
|
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
|
226
226
|
requirements:
|
|
227
227
|
- - "~>"
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version: '
|
|
229
|
+
version: '5.0'
|
|
230
230
|
type: :runtime
|
|
231
231
|
prerelease: false
|
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
|
233
233
|
requirements:
|
|
234
234
|
- - "~>"
|
|
235
235
|
- !ruby/object:Gem::Version
|
|
236
|
-
version: '
|
|
236
|
+
version: '5.0'
|
|
237
237
|
- !ruby/object:Gem::Dependency
|
|
238
238
|
name: mumukit-core
|
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -266,22 +266,16 @@ dependencies:
|
|
|
266
266
|
name: mumukit-content-type
|
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
|
268
268
|
requirements:
|
|
269
|
-
- - "
|
|
270
|
-
- !ruby/object:Gem::Version
|
|
271
|
-
version: '0.2'
|
|
272
|
-
- - "<"
|
|
269
|
+
- - "~>"
|
|
273
270
|
- !ruby/object:Gem::Version
|
|
274
|
-
version: '
|
|
271
|
+
version: '1.10'
|
|
275
272
|
type: :runtime
|
|
276
273
|
prerelease: false
|
|
277
274
|
version_requirements: !ruby/object:Gem::Requirement
|
|
278
275
|
requirements:
|
|
279
|
-
- - "
|
|
280
|
-
- !ruby/object:Gem::Version
|
|
281
|
-
version: '0.2'
|
|
282
|
-
- - "<"
|
|
276
|
+
- - "~>"
|
|
283
277
|
- !ruby/object:Gem::Version
|
|
284
|
-
version: '
|
|
278
|
+
version: '1.10'
|
|
285
279
|
description: Helpers for building a Mumuki Test Server
|
|
286
280
|
email:
|
|
287
281
|
- flbulgarelli@yahoo.com.ar
|
|
@@ -291,6 +285,7 @@ extra_rdoc_files: []
|
|
|
291
285
|
files:
|
|
292
286
|
- bin/limit
|
|
293
287
|
- lib/locales/en.yml
|
|
288
|
+
- lib/locales/es-CL.yml
|
|
294
289
|
- lib/locales/es.yml
|
|
295
290
|
- lib/locales/pt.yml
|
|
296
291
|
- lib/mumukit.rb
|
|
@@ -317,6 +312,7 @@ files:
|
|
|
317
312
|
- lib/mumukit/metatest/framework.rb
|
|
318
313
|
- lib/mumukit/metatest/identity_runner.rb
|
|
319
314
|
- lib/mumukit/metatest/interactive_checker.rb
|
|
315
|
+
- lib/mumukit/metatest/test_result_builder.rb
|
|
320
316
|
- lib/mumukit/request_validation_error.rb
|
|
321
317
|
- lib/mumukit/runner.rb
|
|
322
318
|
- lib/mumukit/runtime.rb
|
|
@@ -373,7 +369,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
373
369
|
- !ruby/object:Gem::Version
|
|
374
370
|
version: '0'
|
|
375
371
|
requirements: []
|
|
376
|
-
rubygems_version: 3.0.
|
|
372
|
+
rubygems_version: 3.0.8
|
|
377
373
|
signing_key:
|
|
378
374
|
specification_version: 4
|
|
379
375
|
summary: Mumuki Test Server Development Kit
|