mumuki-html-runner 1.14.0 → 1.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/checker/css.rb +32 -3
- data/lib/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcbdb041cc4373fe9b76efa16bed98e2f3e33a772e7dadbd40eb8ef8ae385e01
|
4
|
+
data.tar.gz: 48b4976b8acb6a024e82f2f2d39317368a38d778a7743b4f59af63060a059a3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d0f32a90864e368d36a550b0c05a96a7f1016d76ade32c2651546b4cdf7adb28d104009c89e6de844cbae2e34c4d6260026543b24fc82e638678c1d5283ded75
|
7
|
+
data.tar.gz: bd526ba79d842c06f62ea014a5cf8704fdbfffd44918de58ef1d46e2c5883984a41f87a23e18384aa15557c44ff91335c8feeddaf48647a1cc6ec330f7651a4b
|
data/lib/checker/css.rb
CHANGED
@@ -1,18 +1,46 @@
|
|
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
|
|
7
19
|
class String
|
8
20
|
# Avoids properties like rgb(5, 10, 15) to be split
|
9
21
|
def css_values
|
10
|
-
scan
|
22
|
+
scan(/[^\s]+\(\s*\g<0>\s*(?:,\s*\g<0>)*\)|[^\s]+/).map(&:normalize_rgb_css_value)
|
23
|
+
end
|
24
|
+
|
25
|
+
def normalize_rgb_css_value
|
26
|
+
if starts_with?("rgb(")
|
27
|
+
gsub(" ", "")
|
28
|
+
else
|
29
|
+
self
|
30
|
+
end
|
11
31
|
end
|
12
32
|
|
13
33
|
def comma_separated_words
|
14
34
|
split(',').map(&:strip)
|
15
35
|
end
|
36
|
+
|
37
|
+
def get_string_between_markers(starter, ender)
|
38
|
+
self[/#{Regexp.escape(starter)}(.*?)#{Regexp.escape(ender)}/m, 1]
|
39
|
+
end
|
40
|
+
|
41
|
+
def remove_string_between_markers(starter, ender)
|
42
|
+
gsub(/#{starter}.*#{ender}/, '')
|
43
|
+
end
|
16
44
|
end
|
17
45
|
|
18
46
|
module Checker
|
@@ -57,7 +85,7 @@ module Checker
|
|
57
85
|
if inspection_value =~ COMMA_SEPARATED_INSPECTION_REGEX
|
58
86
|
comma_separated_values_match? inspection_value, actual_value
|
59
87
|
else
|
60
|
-
actual_value.css_values.include? inspection_value
|
88
|
+
actual_value.css_values.include? inspection_value.normalize_rgb_css_value
|
61
89
|
end
|
62
90
|
end
|
63
91
|
|
@@ -68,5 +96,6 @@ module Checker
|
|
68
96
|
def self.comma_separated_values_match?(inspection_value, actual_value)
|
69
97
|
inspection_value.comma_separated_words == actual_value.comma_separated_words
|
70
98
|
end
|
99
|
+
|
71
100
|
end
|
72
101
|
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.16.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: 2022-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mumukit
|