habaki 0.5.3 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|