habaki 0.5.3 → 0.5.6
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.c +1 -1
- data/ext/katana/rb_katana.h +2 -0
- data/ext/katana/rb_katana_declaration.c +9 -15
- data/ext/katana/rb_katana_rule.c +2 -2
- data/ext/katana/rb_katana_selector.c +5 -8
- data/lib/habaki/charset_rule.rb +1 -1
- data/lib/habaki/declarations.rb +2 -1
- data/lib/habaki/formal_syntax.rb +2 -2
- data/lib/habaki/rules.rb +1 -1
- data/lib/habaki/sub_selectors.rb +6 -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: a83ac7e15a1048a46ffe3f813ebbd7b6b148b6bcb38740c77c0a8a51192211c1
|
4
|
+
data.tar.gz: 2f0e6b79c7d2b2c845f7133c802e4c73761dda99b03048da244e068946540f14
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2115de373c13a3b52e7c8b1cb8da6c5336047c0c2e6dc87e6b6e02d968070e73f5b4de39f1386783dd573b66120244062053c7dffd1feb5da7ca09c17e2a9ce5
|
7
|
+
data.tar.gz: 3ebae27ad8bba15883250e5e119cc10aa6c92d970f59b1edba25ea43bd4f9b89eaeecfe1f8b07956b275a6f43e98eb12c3070a12e7809f7e304aa832ec0be8d1
|
data/ext/katana/rb_katana.c
CHANGED
data/ext/katana/rb_katana.h
CHANGED
@@ -13,7 +13,7 @@ VALUE rb_declaration_prop(VALUE self)
|
|
13
13
|
KatanaDeclaration *c_decl;
|
14
14
|
Data_Get_Struct(self, KatanaDeclaration, c_decl);
|
15
15
|
if (c_decl->property)
|
16
|
-
return
|
16
|
+
return UTF8_STR_NEW(c_decl->property);
|
17
17
|
else
|
18
18
|
Qnil;
|
19
19
|
}
|
@@ -286,10 +286,10 @@ VALUE rb_value_value(VALUE self)
|
|
286
286
|
val = rb_float_new(c_val->fValue);
|
287
287
|
break;
|
288
288
|
case KATANA_VALUE_IDENT:
|
289
|
-
val =
|
289
|
+
val = UTF8_STR_NEW(c_val->string);
|
290
290
|
break;
|
291
291
|
case KATANA_VALUE_STRING:
|
292
|
-
val =
|
292
|
+
val = UTF8_STR_NEW(c_val->string);
|
293
293
|
break;
|
294
294
|
case KATANA_VALUE_PARSER_FUNCTION:
|
295
295
|
{
|
@@ -304,19 +304,19 @@ VALUE rb_value_value(VALUE self)
|
|
304
304
|
// return katana_stringify_value_list(parser, value->list);
|
305
305
|
break;
|
306
306
|
case KATANA_VALUE_PARSER_HEXCOLOR:
|
307
|
-
val =
|
307
|
+
val = UTF8_STR_NEW(c_val->string);
|
308
308
|
break;
|
309
309
|
case KATANA_VALUE_URI:
|
310
|
-
val =
|
310
|
+
val = UTF8_STR_NEW(c_val->string);
|
311
311
|
break;
|
312
312
|
case KATANA_VALUE_UNICODE_RANGE:
|
313
|
-
val =
|
313
|
+
val = UTF8_STR_NEW(c_val->string);
|
314
314
|
break;
|
315
315
|
case KATANA_VALUE_DIMENSION:
|
316
|
-
val =
|
316
|
+
val = UTF8_STR_NEW(c_val->string);
|
317
317
|
break;
|
318
318
|
case KATANA_VALUE_UNKNOWN:
|
319
|
-
val =
|
319
|
+
val = UTF8_STR_NEW(c_val->string);
|
320
320
|
break;
|
321
321
|
default:
|
322
322
|
fprintf(stderr, "KATANA: unsupported value unit %d (%s)\n", c_val->unit, c_val->string);
|
@@ -336,7 +336,7 @@ VALUE rb_value_function_name(VALUE self)
|
|
336
336
|
KatanaValueFunction *c_val;
|
337
337
|
Data_Get_Struct(self, KatanaValueFunction, c_val);
|
338
338
|
if (c_val->name)
|
339
|
-
return
|
339
|
+
return UTF8_STR_NEW(c_val->name);
|
340
340
|
else
|
341
341
|
return Qnil;
|
342
342
|
}
|
@@ -371,12 +371,6 @@ void init_katana_declaration()
|
|
371
371
|
|
372
372
|
rb_define_method(rb_Declaration, "position", rb_declaration_position, 0);
|
373
373
|
|
374
|
-
// Declaration
|
375
|
-
rb_Declaration = rb_define_class_under(rb_Katana, "Declaration", rb_cObject);
|
376
|
-
rb_define_method(rb_Declaration, "property", rb_declaration_prop, 0);
|
377
|
-
rb_define_method(rb_Declaration, "important", rb_declaration_important, 0);
|
378
|
-
rb_define_method(rb_Declaration, "values", rb_declaration_values, 0);
|
379
|
-
|
380
374
|
// Value
|
381
375
|
rb_Value = rb_define_class_under(rb_Katana, "Value", rb_cObject);
|
382
376
|
rb_define_method(rb_Value, "value", rb_value_value, 0);
|
data/ext/katana/rb_katana_rule.c
CHANGED
@@ -104,7 +104,7 @@ VALUE rb_namespace_rule_prefix(VALUE self)
|
|
104
104
|
KatanaNamespaceRule *c_rule;
|
105
105
|
Data_Get_Struct(self, KatanaNamespaceRule, c_rule);
|
106
106
|
if (c_rule->prefix)
|
107
|
-
return
|
107
|
+
return UTF8_STR_NEW(c_rule->prefix);
|
108
108
|
else
|
109
109
|
return Qnil;
|
110
110
|
}
|
@@ -117,7 +117,7 @@ VALUE rb_namespace_rule_uri(VALUE self)
|
|
117
117
|
KatanaNamespaceRule *c_rule;
|
118
118
|
Data_Get_Struct(self, KatanaNamespaceRule, c_rule);
|
119
119
|
if (c_rule->prefix)
|
120
|
-
return
|
120
|
+
return UTF8_STR_NEW(c_rule->uri);
|
121
121
|
else
|
122
122
|
return Qnil;
|
123
123
|
}
|
@@ -13,7 +13,7 @@ VALUE rb_name_local(VALUE self)
|
|
13
13
|
KatanaQualifiedName *c_name;
|
14
14
|
Data_Get_Struct(self, KatanaQualifiedName, c_name);
|
15
15
|
if (c_name->local)
|
16
|
-
return
|
16
|
+
return UTF8_STR_NEW(c_name->local);
|
17
17
|
else
|
18
18
|
return Qnil;
|
19
19
|
}
|
@@ -26,7 +26,7 @@ VALUE rb_name_prefix(VALUE self)
|
|
26
26
|
KatanaQualifiedName *c_name;
|
27
27
|
Data_Get_Struct(self, KatanaQualifiedName, c_name);
|
28
28
|
if (c_name->prefix)
|
29
|
-
return
|
29
|
+
return UTF8_STR_NEW(c_name->prefix);
|
30
30
|
else
|
31
31
|
return Qnil;
|
32
32
|
}
|
@@ -39,7 +39,7 @@ VALUE rb_name_uri(VALUE self)
|
|
39
39
|
KatanaQualifiedName *c_name;
|
40
40
|
Data_Get_Struct(self, KatanaQualifiedName, c_name);
|
41
41
|
if (c_name->uri)
|
42
|
-
return
|
42
|
+
return UTF8_STR_NEW(c_name->uri);
|
43
43
|
else
|
44
44
|
return Qnil;
|
45
45
|
}
|
@@ -475,10 +475,7 @@ VALUE rb_selector_data_value(VALUE self)
|
|
475
475
|
KatanaSelectorRareData *c_sel;
|
476
476
|
Data_Get_Struct(self, KatanaSelectorRareData, c_sel);
|
477
477
|
if (c_sel->value)
|
478
|
-
|
479
|
-
// force UTF-8
|
480
|
-
return rb_enc_associate_index(rb_str_new2(c_sel->value), rb_enc_find_index("UTF-8"));
|
481
|
-
}
|
478
|
+
return UTF8_STR_NEW(c_sel->value);
|
482
479
|
else
|
483
480
|
return Qnil;
|
484
481
|
}
|
@@ -504,7 +501,7 @@ VALUE rb_selector_data_argument(VALUE self)
|
|
504
501
|
KatanaSelectorRareData *c_sel;
|
505
502
|
Data_Get_Struct(self, KatanaSelectorRareData, c_sel);
|
506
503
|
if (c_sel->argument)
|
507
|
-
return
|
504
|
+
return UTF8_STR_NEW(c_sel->argument);
|
508
505
|
else
|
509
506
|
return Qnil;
|
510
507
|
}
|
data/lib/habaki/charset_rule.rb
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/formal_syntax.rb
CHANGED
@@ -28,7 +28,7 @@ module Habaki
|
|
28
28
|
def traverse(&block)
|
29
29
|
block.call self
|
30
30
|
@children.each do |child|
|
31
|
-
child.traverse
|
31
|
+
child.traverse(&block)
|
32
32
|
end
|
33
33
|
end
|
34
34
|
|
@@ -111,7 +111,7 @@ module Habaki
|
|
111
111
|
data.each do |k, v|
|
112
112
|
begin
|
113
113
|
@properties[k] = Tree.parse(v)
|
114
|
-
rescue FormalSyntaxError
|
114
|
+
rescue FormalSyntaxError #=> e
|
115
115
|
#STDERR.puts("#{k}: #{e}")
|
116
116
|
end
|
117
117
|
end
|
data/lib/habaki/rules.rb
CHANGED
data/lib/habaki/sub_selectors.rb
CHANGED
@@ -4,6 +4,12 @@ module Habaki
|
|
4
4
|
# @return [Symbol]
|
5
5
|
attr_accessor :relation
|
6
6
|
|
7
|
+
def initialize(*args)
|
8
|
+
super(*args)
|
9
|
+
|
10
|
+
@relation = nil
|
11
|
+
end
|
12
|
+
|
7
13
|
# does every sub selectors match {Visitor::Element} ?
|
8
14
|
# @param [Visitor::Element] element
|
9
15
|
# @param [Specificity, nil] specificity
|
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.6
|
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-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|