habaki 0.5.7 → 0.5.8

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: 0fd0e2139182ac5010a3b35babbcae6c6d72f44ed202073409f18fb176697f6b
4
- data.tar.gz: 8f4c8f57cc5e63a989485a82523c424902179b4717d3df89fd86934afda4ae6f
3
+ metadata.gz: 53fe14ebdd6dd692db34dc3a59a3dbe2fc9761d085cd1bcd756080e06483e4c0
4
+ data.tar.gz: 6481a5a4591a6e6ebbea3eb6e241eac1baa48ca9812541d8cef184e10f2800a4
5
5
  SHA512:
6
- metadata.gz: 5432b604be85936b38b166b240b29c1779ffd6ae4ebd3a29376df4b543bca6b66bc9dfa98b0afeb1ceabeed64c612538bf4db23ceb4bf6dbf9046727d3a5574b
7
- data.tar.gz: 7e6487154a87046b8ce1c9cd2e38f7da4dcc909faf8e1930e0264bb1c7606f9de10baefde686ca347061ed2798ad5177bb741cb262d7098b2d56071a913ea62c
6
+ metadata.gz: ce923e584db6917510237761e67f3bdc9ac3153f220ace405a2a9ab2eb7940321239e844d9f7ded97290961780e79aa005cbd7c3962bf68c6f294651d514b73e
7
+ data.tar.gz: d3befa18c61f461d0f568a859e93d465248990938d9ecf7bd13109887debeb1b3a753a7fe8ee5ad5cdc9ea9dba3062f1d6dd3ab01b2c7181c9b3f906b8f3111e
data/lib/habaki/rules.rb CHANGED
@@ -34,20 +34,25 @@ module Habaki
34
34
  end
35
35
 
36
36
  def lookup_rules(args, tag_name, class_name, id_name, &block)
37
- class_or_id = nil
38
- class_or_id = ".#{class_name}" if class_name
39
- class_or_id = "##{id_name}" if id_name
40
-
41
37
  @hash_tree[args].dig(tag_name, nil)&.each do |rule|
42
38
  block.call rule
43
39
  end
44
40
 
45
- @hash_tree[args].dig("*", class_or_id)&.each do |rule|
46
- block.call rule
47
- end
41
+ classes_names = [nil]
42
+ classes_names = class_name.split(" ") if class_name
48
43
 
49
- @hash_tree[args].dig(tag_name, class_or_id)&.each do |rule|
50
- block.call rule
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
48
+
49
+ @hash_tree[args].dig("*", class_or_id)&.each do |rule|
50
+ block.call rule
51
+ end
52
+
53
+ @hash_tree[args].dig(tag_name, class_or_id)&.each do |rule|
54
+ block.call rule
55
+ end
51
56
  end
52
57
  end
53
58
 
@@ -44,7 +44,8 @@ module Habaki
44
44
  when :tag
45
45
  tag_match?(element.tag_name, specificity)
46
46
  when :class
47
- class_match?(element.class_name, specificity)
47
+ classes_names = element.class_name ? element.class_name.split(" ") : [nil]
48
+ classes_names.map{|p_class_name| class_match?(p_class_name, specificity)}.any?
48
49
  when :id
49
50
  id_match?(element.id_name, specificity)
50
51
  when :pseudo_class
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.7
4
+ version: 0.5.8
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-07-07 00:00:00.000000000 Z
11
+ date: 2022-08-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri