habaki 0.5.9 → 0.5.10
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/habaki/rules.rb +18 -6
- data/lib/habaki/sub_selector.rb +4 -0
- 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: 5b752847b2b1e6ed4c15611eb4708b178e5ee694349c817b05c732881d98ac10
|
4
|
+
data.tar.gz: 1e528a6e2154bb1d19baea93e8a34fc2e796441374859142a109b652f54132ea
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fa028e795d97f0da9d6ad16b45a2613943c278beed4009e3f7aac7ddc830c190519efdc89544f3373c5d2254c523ed7c5193a71e7d7071cc96f305968c66dcc
|
7
|
+
data.tar.gz: c50e2538f949bc17cf2716be6d3c9f603f67d89724f3d721f9286a6f07de3156a097dec9b699d98e32f905dfdeac902276aab673b4a86042204e929221466db0
|
data/lib/habaki/rules.rb
CHANGED
@@ -26,9 +26,9 @@ module Habaki
|
|
26
26
|
class_or_id = ".#{class_name}" if class_name
|
27
27
|
class_or_id = "##{id_name}" if id_name
|
28
28
|
|
29
|
-
@hash_tree[args][tag_name||"*"] ||= {}
|
30
|
-
@hash_tree[args][tag_name||"*"][class_or_id] ||= Set.new
|
31
|
-
@hash_tree[args][tag_name||"*"][class_or_id] << rule
|
29
|
+
@hash_tree[args][tag_name || "*"] ||= {}
|
30
|
+
@hash_tree[args][tag_name || "*"][class_or_id] ||= Set.new
|
31
|
+
@hash_tree[args][tag_name || "*"][class_or_id] << rule
|
32
32
|
end
|
33
33
|
end
|
34
34
|
end
|
@@ -42,9 +42,21 @@ module Habaki
|
|
42
42
|
classes_names = class_name.split(" ") if class_name
|
43
43
|
|
44
44
|
classes_names.each do |p_class_name|
|
45
|
-
|
46
|
-
|
47
|
-
|
45
|
+
if p_class_name
|
46
|
+
class_or_id = ".#{p_class_name}"
|
47
|
+
|
48
|
+
@hash_tree[args].dig("*", class_or_id)&.each do |rule|
|
49
|
+
block.call rule
|
50
|
+
end
|
51
|
+
|
52
|
+
@hash_tree[args].dig(tag_name, class_or_id)&.each do |rule|
|
53
|
+
block.call rule
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
if id_name
|
59
|
+
class_or_id = "##{id_name}"
|
48
60
|
|
49
61
|
@hash_tree[args].dig("*", class_or_id)&.each do |rule|
|
50
62
|
block.call rule
|
data/lib/habaki/sub_selector.rb
CHANGED
@@ -150,6 +150,10 @@ module Habaki
|
|
150
150
|
!@selectors.element_match?(element)
|
151
151
|
when :not_parsed, :unknown
|
152
152
|
true
|
153
|
+
when :link
|
154
|
+
# All a elements that have an href attribute must match one of :link and :visited.
|
155
|
+
# for now, always match :link
|
156
|
+
true
|
153
157
|
else
|
154
158
|
# TODO
|
155
159
|
# STDERR.puts "Habaki: unsupported pseudo #{@pseudo}"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: habaki
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Boulnois
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|