mumuki-html-runner 1.11.0 → 1.15.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/checker/css.rb +22 -1
- data/lib/html_runner.rb +2 -1
- data/lib/test_dom_hook.rb +9 -1
- data/lib/version.rb +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 678f6053a88c9f839f8084bb6ff88bb18526aca5fd735f7b31868e153036e56e
|
4
|
+
data.tar.gz: d3f71851745a9990765bd9ef4627516b5c787e551cb99503197ecc12af5431f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 140ba9d52b244e49af4abae34259e3caaa5431c0370e333a742c1d4787371dc64a4b8c42a6a34cf019b5f9a16d0d08c23000b0f3868e8543d39443781f369db5
|
7
|
+
data.tar.gz: fbd19287c929fb4919b8b9c19c250d318336e201f0c86f81a14771a1a45aa702e4fcd400b141d316ff74e9ba110bae265f0d4289f51490dc0b751d3362be9982
|
data/lib/checker/css.rb
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
class CssParser::Parser
|
2
2
|
def dig(*keys)
|
3
|
-
|
3
|
+
media = parse_media(keys)
|
4
|
+
selectors = get_selectors(keys)
|
5
|
+
selectors.unshift(media)
|
6
|
+
to_h(media).dig(*selectors) rescue {}
|
7
|
+
end
|
8
|
+
|
9
|
+
def parse_media(keys)
|
10
|
+
media = keys.map { |k| k.get_string_between_markers('@media_start', '@media_end') }
|
11
|
+
media.first || 'all'
|
12
|
+
end
|
13
|
+
|
14
|
+
def get_selectors(keys)
|
15
|
+
keys.map { |k| k.remove_string_between_markers('@media_start', '@media_end:') }
|
4
16
|
end
|
5
17
|
end
|
6
18
|
|
@@ -13,6 +25,14 @@ class String
|
|
13
25
|
def comma_separated_words
|
14
26
|
split(',').map(&:strip)
|
15
27
|
end
|
28
|
+
|
29
|
+
def get_string_between_markers(starter, ender)
|
30
|
+
self[/#{Regexp.escape(starter)}(.*?)#{Regexp.escape(ender)}/m, 1]
|
31
|
+
end
|
32
|
+
|
33
|
+
def remove_string_between_markers(starter, ender)
|
34
|
+
gsub(/#{starter}.*#{ender}/, '')
|
35
|
+
end
|
16
36
|
end
|
17
37
|
|
18
38
|
module Checker
|
@@ -68,5 +88,6 @@ module Checker
|
|
68
88
|
def self.comma_separated_values_match?(inspection_value, actual_value)
|
69
89
|
inspection_value.comma_separated_words == actual_value.comma_separated_words
|
70
90
|
end
|
91
|
+
|
71
92
|
end
|
72
93
|
end
|
data/lib/html_runner.rb
CHANGED
@@ -9,7 +9,7 @@ I18n.load_translations_path File.join(__dir__, 'locales', '*.yml')
|
|
9
9
|
|
10
10
|
Mumukit.runner_name = 'html'
|
11
11
|
Mumukit.configure do |config|
|
12
|
-
config.docker_image = 'mumuki/mumuki-html-worker:
|
12
|
+
config.docker_image = 'mumuki/mumuki-html-worker:2.0'
|
13
13
|
config.content_type = 'html'
|
14
14
|
config.process_expectations_on_empty_content = true
|
15
15
|
config.run_test_hook_on_empty_test = true
|
@@ -26,3 +26,4 @@ require_relative './assets_server'
|
|
26
26
|
require_relative './version'
|
27
27
|
|
28
28
|
Mulang::Inspection.register_extension! Mumukit::Inspection::Css
|
29
|
+
Mulang::Inspection.register_extension! Mumukit::Inspection::Html
|
data/lib/test_dom_hook.rb
CHANGED
@@ -88,11 +88,19 @@ html
|
|
88
88
|
def build_iframe(content)
|
89
89
|
dom = hexp(content).to_dom
|
90
90
|
<<html
|
91
|
-
<div class="mu-browser"#{page_title dom}#{page_favicon dom} data-srcdoc="#{content
|
91
|
+
<div class="mu-browser"#{page_title dom}#{page_favicon dom} data-srcdoc="#{transform_content(content)}">
|
92
92
|
</div>
|
93
93
|
html
|
94
94
|
end
|
95
95
|
|
96
|
+
def transform_content(content)
|
97
|
+
replace_anchors(content).escape_html
|
98
|
+
end
|
99
|
+
|
100
|
+
def replace_anchors(content)
|
101
|
+
content.gsub(/href="#(\w*)"/, 'href="about:srcdoc#\1"')
|
102
|
+
end
|
103
|
+
|
96
104
|
def compile_content(request)
|
97
105
|
request.extra.presence || request.content
|
98
106
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mumuki-html-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.15.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: 2021-04-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mumukit
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '2.
|
19
|
+
version: '2.38'
|
20
20
|
type: :runtime
|
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: '2.
|
26
|
+
version: '2.38'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: mumukit-inspection
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '6.0'
|
34
34
|
type: :runtime
|
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: '6.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: hexp
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -198,8 +198,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
198
|
- !ruby/object:Gem::Version
|
199
199
|
version: '0'
|
200
200
|
requirements: []
|
201
|
-
|
202
|
-
rubygems_version: 2.7.7
|
201
|
+
rubygems_version: 3.0.3
|
203
202
|
signing_key:
|
204
203
|
specification_version: 4
|
205
204
|
summary: HTML Runner for Mumuki
|