mumuki-html-runner 1.11.0 → 1.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e35f114b8ec10c72e478dcb8a814090706be7ff8c3ffb3ed648193118223d8d6
4
- data.tar.gz: e6bcd1e0db9070ee10b3fd8fe41f3cb09155be5726b3bdf0a8103e4d51324065
3
+ metadata.gz: 678f6053a88c9f839f8084bb6ff88bb18526aca5fd735f7b31868e153036e56e
4
+ data.tar.gz: d3f71851745a9990765bd9ef4627516b5c787e551cb99503197ecc12af5431f1
5
5
  SHA512:
6
- metadata.gz: ef0a937e9fec7a96ca91f97b67541399df565ccfdfc26a2e5b70e539248fdb12fda5ff9e96e289cda82a6b5def07038c943ab49950fe639ac2eabd95a971d9d5
7
- data.tar.gz: 21248fa2b361433520be8eb63efa8888f096531153572399a89e7c4f8483c1eaac9db6e19e896018fdec097597c85637d3d52f98d546aa879bdd6fe6d5dba480
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
- to_h['all'].dig(*keys.map(&:to_s)) rescue {}
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:1.4'
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.escape_html}">
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
@@ -1,3 +1,3 @@
1
1
  module HtmlVersionHook
2
- VERSION = '1.11.0'
2
+ VERSION = '1.15.0'
3
3
  end
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.11.0
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: 2019-10-08 00:00:00.000000000 Z
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.33'
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.33'
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: '5.0'
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: '5.0'
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
- rubyforge_project:
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