habaki 0.5.9 → 0.5.10

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: 4369c0894ef6356caa3fbd8121b49f1bb767e7e7cad4b4401f578d7ba2ca8cba
4
- data.tar.gz: 854420541b988775b68aafed3834359bd9c71881d5b47fc18e4e72683e7470e9
3
+ metadata.gz: 5b752847b2b1e6ed4c15611eb4708b178e5ee694349c817b05c732881d98ac10
4
+ data.tar.gz: 1e528a6e2154bb1d19baea93e8a34fc2e796441374859142a109b652f54132ea
5
5
  SHA512:
6
- metadata.gz: 1a3f29bd8d7253b88eaf8e1afc48887c69945a73911180e12537590d6430fbb866d87b2e0d081b9700f32e290cd58841d489adf5369da711c2cb2e2eb0810261
7
- data.tar.gz: 53f3ac7bdce3aa488db1d21f17c04f78881bae5fb45d5342bae44020044ec7d8459278d7b10dd8bdd0b592761b07f951dbcb6fd4f93eb3c229113b71846cbedf
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
- class_or_id = nil
46
- class_or_id = ".#{p_class_name}" if p_class_name
47
- class_or_id = "##{id_name}" if id_name
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
@@ -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.9
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: 2022-10-11 00:00:00.000000000 Z
11
+ date: 2023-03-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri