habaki 0.5.5 → 0.5.8
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/ext/katana/rb_katana_declaration.c +1 -2
- data/ext/katana/src/katana.tab.c +9 -11
- data/ext/katana/src/parser.c +1 -0
- data/ext/katana/src/tokenizer.c +1 -0
- data/lib/habaki/declarations.rb +2 -1
- data/lib/habaki/rules.rb +14 -9
- data/lib/habaki/sub_selector.rb +2 -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: 53fe14ebdd6dd692db34dc3a59a3dbe2fc9761d085cd1bcd756080e06483e4c0
|
4
|
+
data.tar.gz: 6481a5a4591a6e6ebbea3eb6e241eac1baa48ca9812541d8cef184e10f2800a4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce923e584db6917510237761e67f3bdc9ac3153f220ace405a2a9ab2eb7940321239e844d9f7ded97290961780e79aa005cbd7c3962bf68c6f294651d514b73e
|
7
|
+
data.tar.gz: d3befa18c61f461d0f568a859e93d465248990938d9ecf7bd13109887debeb1b3a753a7fe8ee5ad5cdc9ea9dba3062f1d6dd3ab01b2c7181c9b3f906b8f3111e
|
@@ -281,8 +281,7 @@ VALUE rb_value_value(VALUE self)
|
|
281
281
|
case KATANA_VALUE_VH:
|
282
282
|
case KATANA_VALUE_VMIN:
|
283
283
|
case KATANA_VALUE_VMAX:
|
284
|
-
|
285
|
-
// val = rb_str_new2(c_val->raw);
|
284
|
+
case KATANA_VALUE_FR:
|
286
285
|
val = rb_float_new(c_val->fValue);
|
287
286
|
break;
|
288
287
|
case KATANA_VALUE_IDENT:
|
data/ext/katana/src/katana.tab.c
CHANGED
@@ -742,14 +742,14 @@ static const yytype_int16 yyrline[] =
|
|
742
742
|
1548, 1549, 1555, 1556, 1558, 1559, 1560, 1561, 1562, 1563,
|
743
743
|
1569, 1570, 1571, 1575, 1579, 1580, 1581, 1582, 1583, 1584,
|
744
744
|
1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594,
|
745
|
-
1595, 1596, 1597, 1598, 1599,
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
750
|
-
|
751
|
-
|
752
|
-
|
745
|
+
1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604,
|
746
|
+
1605, 1606, 1607, 1608, 1612, 1615, 1618, 1624, 1625, 1629,
|
747
|
+
1632, 1635, 1638, 1643, 1645, 1649, 1655, 1661, 1665, 1670,
|
748
|
+
1675, 1679, 1682, 1689, 1690, 1694, 1698, 1704, 1705, 1709,
|
749
|
+
1710, 1711, 1712, 1713, 1717, 1720, 1721, 1722, 1729, 1732,
|
750
|
+
1733, 1734, 1738, 1741, 1742, 1746, 1752, 1758, 1762, 1765,
|
751
|
+
1765, 1765, 1765, 1765, 1765, 1765, 1765, 1768, 1773, 1778,
|
752
|
+
1780, 1781, 1782, 1783, 1786, 1788, 1789, 1790
|
753
753
|
};
|
754
754
|
#endif
|
755
755
|
|
@@ -3982,9 +3982,7 @@ yyreduce:
|
|
3982
3982
|
break;
|
3983
3983
|
|
3984
3984
|
case 304:
|
3985
|
-
{
|
3986
|
-
(yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_REMS);
|
3987
|
-
}
|
3985
|
+
{ (yyval.value) = katana_new_dimension_value(parser, &(yyvsp[0].number), KATANA_VALUE_REMS); }
|
3988
3986
|
break;
|
3989
3987
|
|
3990
3988
|
case 305:
|
data/ext/katana/src/parser.c
CHANGED
@@ -1516,6 +1516,7 @@ static const char* katana_stringify_value(KatanaParser* parser, KatanaValue* val
|
|
1516
1516
|
case KATANA_VALUE_VH:
|
1517
1517
|
case KATANA_VALUE_VMIN:
|
1518
1518
|
case KATANA_VALUE_VMAX:
|
1519
|
+
case KATANA_VALUE_FR:
|
1519
1520
|
snprintf(str, sizeof(str), "%s", value->raw);
|
1520
1521
|
break;
|
1521
1522
|
case KATANA_VALUE_IDENT:
|
data/ext/katana/src/tokenizer.c
CHANGED
data/lib/habaki/declarations.rb
CHANGED
@@ -46,7 +46,8 @@ module Habaki
|
|
46
46
|
when 4
|
47
47
|
values = declaration.values
|
48
48
|
else
|
49
|
-
|
49
|
+
# "Habaki error: Cannot parse #{property}: #{declaration.values} (#{declaration.values.length} values)"
|
50
|
+
next
|
50
51
|
end
|
51
52
|
|
52
53
|
replacement = [top, right, bottom, left].zip(values).to_h
|
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
|
-
|
46
|
-
|
47
|
-
end
|
41
|
+
classes_names = [nil]
|
42
|
+
classes_names = class_name.split(" ") if class_name
|
48
43
|
|
49
|
-
|
50
|
-
|
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
|
|
data/lib/habaki/sub_selector.rb
CHANGED
@@ -44,7 +44,8 @@ module Habaki
|
|
44
44
|
when :tag
|
45
45
|
tag_match?(element.tag_name, specificity)
|
46
46
|
when :class
|
47
|
-
|
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.
|
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-
|
11
|
+
date: 2022-08-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|