mumuki-javascript-runner 1.5.0 → 1.6.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: cb2c3425cccd2c1dd04911c424109da786ab4cd9a6969904f168db188f625045
4
- data.tar.gz: e849e9592b35944b138969f9596004471574bfea4eae1612fbaf53bd3f0a8a2e
3
+ metadata.gz: 1dc108165a6187802b53ed65230fdcab0afaa85b9494f49855ed5e086a1158d6
4
+ data.tar.gz: a19387ab148f83b6d87f8e6b59dcc41266bec8ab1964ba934a5602d60d02c48f
5
5
  SHA512:
6
- metadata.gz: 875f71c53f6566579d4efe71dfe4e2522e3286f538d80957d5bfadf4875a8d003a536db763a20e3fa283af80bea54a351d6a5a3f27693549e610e8fe9ff050f5
7
- data.tar.gz: 162afef619eaff6248339f5c8d9703816434174bb65de82b25e7fed7de6572b1663c7f6ec447b1f929cd407e5d32bc8d9756365d9ff2f60b3d8eb448b46fabac
6
+ metadata.gz: f7137d3840e9d7890d425ac6f2423598a4fb651314b207494e2a88c94e5eb76b53a269a00d869374640fb52411a5d1600de8a2dbd98c5c753fa3e432cab8234b
7
+ data.tar.gz: 55e9f22881c641fd3b9244db5ef47ef5f18f6c0ce7cfd295ca68fbcf48a05e1a495c33d9a778bfa99a160ea468098c6d36b5eff1eeaa0290bf7694a0ac00d991
@@ -0,0 +1,25 @@
1
+ class JavascriptFeedbackHook < Mumukit::Hook
2
+ def run!(request, results)
3
+ content = request.content
4
+ test_results = test_failure_messages results
5
+
6
+ JavascriptExplainer.new.explain(content, test_results)
7
+ end
8
+
9
+ def test_failure_messages(results)
10
+ structured_test_results = results.test_results[0]
11
+ if structured_test_results.is_a? Array
12
+ structured_test_results.select { |it| it[1].failed? }.map { |it| it[2] }.join("\n")
13
+ else
14
+ ''
15
+ end
16
+ end
17
+
18
+ class JavascriptExplainer < Mumukit::Explainer
19
+ def explain_is_not_defined(_, test_results)
20
+ (/([a-zA-Z0-9_]+) is not defined/.match test_results).try do |it|
21
+ {identifier: it[1]}
22
+ end
23
+ end
24
+ end
25
+ end
@@ -1,5 +1,7 @@
1
1
  require 'mumukit'
2
2
 
3
+ I18n.load_translations_path File.join(__dir__, 'locales', '*.yml')
4
+
3
5
  Mumukit.runner_name = 'javascript'
4
6
  Mumukit.configure do |config|
5
7
  config.docker_image = 'mumuki/mumuki-mocha-worker'
@@ -12,5 +14,6 @@ require_relative './metadata_hook'
12
14
  require_relative './validation_hook'
13
15
  require_relative './test_hook'
14
16
  require_relative './expectations_hook'
17
+ require_relative './feedback_hook'
15
18
  require_relative './query_hook'
16
- require_relative './try_hook'
19
+ require_relative './try_hook'
@@ -0,0 +1,2 @@
1
+ en:
2
+ is_not_defined: "it looks like you are using `%{identifier}` but it is not defined. Perhaps you have misspelled it or you need to define it"
@@ -0,0 +1,2 @@
1
+ es:
2
+ is_not_defined: "parece que estás usando `%{identifier}` pero no está definido. ¿Puede que hayas escrito mal su nombre o tengas que definirlo?"
@@ -0,0 +1,2 @@
1
+ pt:
2
+ is_not_defined: "Parece que você usa %{identifier} mas não está indefinido. Você digitou o nome errado ou precisa defini-lo"
@@ -95,11 +95,15 @@ javascript
95
95
 
96
96
  def error_patterns
97
97
  [
98
- Mumukit::ErrorPattern::Errored.new(syntax_error_regexp)
98
+ Mumukit::ErrorPattern::Errored.new(error_regexp)
99
99
  ]
100
100
  end
101
101
 
102
- def syntax_error_regexp
103
- /(?=\X*SyntaxError)(solution.*\n)|SyntaxError.*\n\K at \X*/
102
+ def error_types
103
+ '(Reference|Syntax|Type)Error'
104
+ end
105
+
106
+ def error_regexp
107
+ /(?=\X*#{error_types})(solution.*\n|var __mumuki_query_result__ = )|#{error_types}.*\n\K\X*/
104
108
  end
105
109
  end
@@ -1,3 +1,3 @@
1
1
  module JavascriptVersionHook
2
- VERSION = '1.5.0'
2
+ VERSION = '1.6.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mumuki-javascript-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.0
4
+ version: 1.6.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: 2019-02-26 00:00:00.000000000 Z
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mumukit
@@ -102,7 +102,11 @@ extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
104
  - lib/expectations_hook.rb
105
+ - lib/feedback_hook.rb
105
106
  - lib/javascript_runner.rb
107
+ - lib/locales/en.yml
108
+ - lib/locales/es.yml
109
+ - lib/locales/pt.yml
106
110
  - lib/metadata_hook.rb
107
111
  - lib/query_hook.rb
108
112
  - lib/test_hook.rb
@@ -128,7 +132,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
128
132
  - !ruby/object:Gem::Version
129
133
  version: '0'
130
134
  requirements: []
131
- rubygems_version: 3.0.2
135
+ rubyforge_project:
136
+ rubygems_version: 2.7.7
132
137
  signing_key:
133
138
  specification_version: 4
134
139
  summary: Javascript Runner for Mumuki