mumukit 2.24.0 → 2.25.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/mumukit.rb +2 -1
- data/lib/mumukit/runner.rb +24 -6
- data/lib/mumukit/runtime/info.rb +11 -10
- data/lib/mumukit/server/test_server.rb +7 -1
- data/lib/mumukit/templates.rb +6 -3
- data/lib/mumukit/templates/file_hook.rb +0 -1
- data/lib/mumukit/templates/multi_file_precompile_hook.rb +49 -0
- data/lib/mumukit/templates/with_multiple_files.rb +6 -0
- data/lib/mumukit/version.rb +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 7b81867a9a5abeffe235e31ab9112621032cd9aabe70331164cd04ef9fa9690d
|
|
4
|
+
data.tar.gz: 8a2a5ee8b78adccd927ae4cf6eeb2485500aa97b5a29289a77ae6ff067c767c4
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 259531cd39aabca42051d6e5e43f2e1a20034aaffb66275073b2554a7f9cb4644bbf9df865b29ef9e1523a566995e85ed3452401e1d7dc0c202682a4a3f4c296
|
|
7
|
+
data.tar.gz: 3fa8093b04df63cbf313d7204fb710a7a566d2ac7a369750d359294c7ef93c1b6c87e4ada07da72adffd88bd0b9f07b10f2d0d431212d00453b208174a954c85
|
data/lib/mumukit.rb
CHANGED
|
@@ -31,7 +31,7 @@ module Mumukit
|
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
class << self
|
|
34
|
-
delegate :prefix, :config, :configure, :runtime, :configure_runtime, :directives_pipeline, to: :current_runner
|
|
34
|
+
delegate :prefix, :config, :configure, :reconfigure, :runtime, :configure_runtime, :directives_pipeline, to: :current_runner
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -48,6 +48,7 @@ Mumukit.configure_defaults do |config|
|
|
|
48
48
|
config.command_size_limit = 1024
|
|
49
49
|
config.process_expectations_on_empty_content = false
|
|
50
50
|
config.run_test_hook_on_empty_test = false
|
|
51
|
+
config.multifile = false
|
|
51
52
|
end
|
|
52
53
|
|
|
53
54
|
require 'mumukit/content_type'
|
data/lib/mumukit/runner.rb
CHANGED
|
@@ -11,6 +11,12 @@ class Mumukit::Runner
|
|
|
11
11
|
yield @config
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
def reconfigure(&block)
|
|
15
|
+
@config = nil
|
|
16
|
+
@pipeline = nil
|
|
17
|
+
configure &block
|
|
18
|
+
end
|
|
19
|
+
|
|
14
20
|
def configure_runtime(config)
|
|
15
21
|
@runtime = Mumukit::Runtime.new(config)
|
|
16
22
|
end
|
|
@@ -30,17 +36,29 @@ class Mumukit::Runner
|
|
|
30
36
|
def new_directives_pipeline
|
|
31
37
|
if config.preprocessor_enabled
|
|
32
38
|
Mumukit::Directives::Pipeline.new(
|
|
33
|
-
[
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
[new_sections_directive,
|
|
40
|
+
new_interpolations_directive('test'),
|
|
41
|
+
new_interpolations_directive('extra'),
|
|
42
|
+
new_interpolations_directive('content'),
|
|
43
|
+
new_flags_directive],
|
|
38
44
|
config.comment_type)
|
|
39
45
|
else
|
|
40
46
|
Mumukit::Directives::NullPipeline
|
|
41
47
|
end
|
|
42
48
|
end
|
|
43
49
|
|
|
50
|
+
def new_interpolations_directive(key)
|
|
51
|
+
Mumukit::Directives::Interpolations.new(key)
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def new_sections_directive
|
|
55
|
+
Mumukit::Directives::Sections.new nest_sections: Mumukit.config.multifile
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def new_flags_directive
|
|
59
|
+
Mumukit::Directives::Flags.new
|
|
60
|
+
end
|
|
61
|
+
|
|
44
62
|
def self.default_config
|
|
45
63
|
@default_config
|
|
46
64
|
end
|
|
@@ -49,4 +67,4 @@ class Mumukit::Runner
|
|
|
49
67
|
@default_config ||= OpenStruct.new
|
|
50
68
|
yield @default_config
|
|
51
69
|
end
|
|
52
|
-
end
|
|
70
|
+
end
|
data/lib/mumukit/runtime/info.rb
CHANGED
|
@@ -10,17 +10,18 @@ module Mumukit::RuntimeInfo
|
|
|
10
10
|
output_content_type: Mumukit.config.content_type,
|
|
11
11
|
comment_type: Mumukit.config.comment_type,
|
|
12
12
|
features: {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
13
|
+
precompile: precompile_hook?,
|
|
14
|
+
query: query_hook?,
|
|
15
|
+
try: try_hook?,
|
|
16
|
+
expectations: expectations_hook?,
|
|
17
|
+
feedback: feedback_hook?,
|
|
18
|
+
secure: validation_hook?,
|
|
19
|
+
stateful: Mumukit.config.stateful,
|
|
20
|
+
multifile: Mumukit.config.multifile,
|
|
21
|
+
preprocessor: Mumukit.config.preprocessor_enabled,
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
23
|
+
sandboxed: any_hook_include?([:test, :query], Mumukit::Templates::WithIsolatedEnvironment),
|
|
24
|
+
structured: any_hook_include?([:test], Mumukit::Templates::WithStructuredResults) || Mumukit.config.structured
|
|
24
25
|
}
|
|
25
26
|
}
|
|
26
27
|
end
|
|
@@ -10,7 +10,10 @@ class Mumukit::Server::TestServer
|
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def info(url)
|
|
13
|
-
runtime.info
|
|
13
|
+
runtime.info
|
|
14
|
+
.merge(repo_url: default_repo_url)
|
|
15
|
+
.merge(runtime.metadata_hook.metadata)
|
|
16
|
+
.merge(url: url)
|
|
14
17
|
end
|
|
15
18
|
|
|
16
19
|
def start_request!(_request)
|
|
@@ -114,4 +117,7 @@ class Mumukit::Server::TestServer
|
|
|
114
117
|
{exit: :errored, out: content_type.format_exception(e)}
|
|
115
118
|
end
|
|
116
119
|
|
|
120
|
+
def default_repo_url
|
|
121
|
+
"https://github.com/mumuki/mumuki-#{Mumukit.runner_name}-runner"
|
|
122
|
+
end
|
|
117
123
|
end
|
data/lib/mumukit/templates.rb
CHANGED
|
@@ -3,8 +3,6 @@ module Mumukit
|
|
|
3
3
|
end
|
|
4
4
|
end
|
|
5
5
|
|
|
6
|
-
require_relative './templates/file_hook'
|
|
7
|
-
require_relative './templates/try_hook'
|
|
8
6
|
require_relative './templates/with_structured_results'
|
|
9
7
|
require_relative './templates/with_metatest'
|
|
10
8
|
require_relative './templates/with_metatest_results'
|
|
@@ -12,6 +10,11 @@ require_relative './templates/with_mashup_file_content'
|
|
|
12
10
|
require_relative './templates/with_embedded_environment'
|
|
13
11
|
require_relative './templates/with_isolated_environment'
|
|
14
12
|
require_relative './templates/with_line_number_offset'
|
|
15
|
-
require_relative './templates/
|
|
13
|
+
require_relative './templates/with_multiple_files'
|
|
16
14
|
require_relative './templates/with_code_smells'
|
|
17
15
|
require_relative './templates/with_cookie'
|
|
16
|
+
|
|
17
|
+
require_relative './templates/file_hook'
|
|
18
|
+
require_relative './templates/try_hook'
|
|
19
|
+
require_relative './templates/mulang_expectations_hook'
|
|
20
|
+
require_relative './templates/multi_file_precompile_hook'
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
module Mumukit
|
|
2
|
+
class Templates::MultiFilePrecompileHook < Mumukit::Hook
|
|
3
|
+
include Mumukit::Templates::WithMultipleFiles
|
|
4
|
+
|
|
5
|
+
def compile(request)
|
|
6
|
+
request
|
|
7
|
+
.to_h
|
|
8
|
+
.merge(content: files_content(request))
|
|
9
|
+
.to_struct
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def main_file
|
|
13
|
+
raise NotImplementedError
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def consolidate(main_content, files)
|
|
17
|
+
raise NotImplementedError
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
def files_content(request)
|
|
23
|
+
files = files_of request
|
|
24
|
+
if files.empty?
|
|
25
|
+
no_files_content request
|
|
26
|
+
elsif files.count == 1
|
|
27
|
+
single_file_content files
|
|
28
|
+
else
|
|
29
|
+
multi_file_content files
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def no_files_content(request)
|
|
34
|
+
request.content
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
def single_file_content(files)
|
|
38
|
+
files.values.first
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
def multi_file_content(files)
|
|
42
|
+
consolidate main_file_content(files), files
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def main_file_content(files)
|
|
46
|
+
files[main_file] || ''
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
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.25.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: 2018-
|
|
11
|
+
date: 2018-08-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -226,14 +226,14 @@ dependencies:
|
|
|
226
226
|
requirements:
|
|
227
227
|
- - "~>"
|
|
228
228
|
- !ruby/object:Gem::Version
|
|
229
|
-
version: '0.
|
|
229
|
+
version: '0.4'
|
|
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: '0.
|
|
236
|
+
version: '0.4'
|
|
237
237
|
- !ruby/object:Gem::Dependency
|
|
238
238
|
name: mumukit-content-type
|
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -303,6 +303,7 @@ files:
|
|
|
303
303
|
- lib/mumukit/templates.rb
|
|
304
304
|
- lib/mumukit/templates/file_hook.rb
|
|
305
305
|
- lib/mumukit/templates/mulang_expectations_hook.rb
|
|
306
|
+
- lib/mumukit/templates/multi_file_precompile_hook.rb
|
|
306
307
|
- lib/mumukit/templates/try_hook.rb
|
|
307
308
|
- lib/mumukit/templates/with_code_smells.rb
|
|
308
309
|
- lib/mumukit/templates/with_cookie.rb
|
|
@@ -312,6 +313,7 @@ files:
|
|
|
312
313
|
- lib/mumukit/templates/with_mashup_file_content.rb
|
|
313
314
|
- lib/mumukit/templates/with_metatest.rb
|
|
314
315
|
- lib/mumukit/templates/with_metatest_results.rb
|
|
316
|
+
- lib/mumukit/templates/with_multiple_files.rb
|
|
315
317
|
- lib/mumukit/templates/with_structured_results.rb
|
|
316
318
|
- lib/mumukit/version.rb
|
|
317
319
|
- lib/mumukit/with_command_line.rb
|