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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 99a0d86e6c6dc0b69d2d83a359986c92875c4139e8df27897ffb44ad05d6d2fa
4
- data.tar.gz: 8c83b1a623518634131e6786b69128588ced9b1e0093f94d9ac6a972d1b1f3b5
3
+ metadata.gz: a83ac7e15a1048a46ffe3f813ebbd7b6b148b6bcb38740c77c0a8a51192211c1
4
+ data.tar.gz: 2f0e6b79c7d2b2c845f7133c802e4c73761dda99b03048da244e068946540f14
5
5
  SHA512:
6
- metadata.gz: d8488e134dbe6ff0c370c94bee15b423c0efe7f1b29d789d3f333777469a9c36e9fca192380c48d8962ce3a2cfb6b0f116f20198cec98558ea5a5ede51153283
7
- data.tar.gz: 4cb0de2c9ad929bafd4218f1d46cd888a0180b0102d70526e896d905eb807ad42d3e369b25b3d5759fe636c61fff32de7b42472e688f0ed031d0554ede3f9883
6
+ metadata.gz: 2115de373c13a3b52e7c8b1cb8da6c5336047c0c2e6dc87e6b6e02d968070e73f5b4de39f1386783dd573b66120244062053c7dffd1feb5da7ca09c17e2a9ce5
7
+ data.tar.gz: 3ebae27ad8bba15883250e5e119cc10aa6c92d970f59b1edba25ea43bd4f9b89eaeecfe1f8b07956b275a6f43e98eb12c3070a12e7809f7e304aa832ec0be8d1
@@ -165,7 +165,7 @@ VALUE rb_error_message(VALUE self)
165
165
  {
166
166
  KatanaError *c_err;
167
167
  Data_Get_Struct(self, KatanaError, c_err);
168
- return rb_str_new2(c_err->message);
168
+ return UTF8_STR_NEW(c_err->message);
169
169
  }
170
170
 
171
171
  /*
@@ -16,6 +16,8 @@
16
16
  #include "src/katana.h"
17
17
  #include "src/selector.h"
18
18
 
19
+ #define UTF8_STR_NEW(val) rb_enc_associate_index(rb_str_new2(val), rb_enc_find_index("UTF-8"))
20
+
19
21
  /* Array */
20
22
 
21
23
  VALUE rb_array_length(VALUE array);
@@ -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 rb_str_new2(c_decl->property);
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 = rb_str_new2(c_val->string);
289
+ val = UTF8_STR_NEW(c_val->string);
290
290
  break;
291
291
  case KATANA_VALUE_STRING:
292
- val = rb_str_new2(c_val->string);
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 = rb_str_new2(c_val->string);
307
+ val = UTF8_STR_NEW(c_val->string);
308
308
  break;
309
309
  case KATANA_VALUE_URI:
310
- val = rb_str_new2(c_val->string);
310
+ val = UTF8_STR_NEW(c_val->string);
311
311
  break;
312
312
  case KATANA_VALUE_UNICODE_RANGE:
313
- val = rb_str_new2(c_val->string);
313
+ val = UTF8_STR_NEW(c_val->string);
314
314
  break;
315
315
  case KATANA_VALUE_DIMENSION:
316
- val = rb_str_new2(c_val->string);
316
+ val = UTF8_STR_NEW(c_val->string);
317
317
  break;
318
318
  case KATANA_VALUE_UNKNOWN:
319
- val = rb_str_new2(c_val->string);
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 rb_str_new2(c_val->name);
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);
@@ -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 rb_str_new2(c_rule->prefix);
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 rb_str_new2(c_rule->uri);
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 rb_str_new2(c_name->local);
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 rb_str_new2(c_name->prefix);
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 rb_str_new2(c_name->uri);
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 rb_str_new2(c_sel->argument);
504
+ return UTF8_STR_NEW(c_sel->argument);
508
505
  else
509
506
  return Qnil;
510
507
  }
@@ -6,7 +6,7 @@ module Habaki
6
6
 
7
7
  # @param [String] encoding
8
8
  def initialize(encoding = nil)
9
- @encoding
9
+ @encoding = encoding
10
10
  end
11
11
 
12
12
  # @param [Formatter::Base] format
@@ -46,7 +46,8 @@ module Habaki
46
46
  when 4
47
47
  values = declaration.values
48
48
  else
49
- raise ArgumentError, "Cannot parse #{declaration.values}"
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
@@ -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 &block
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 => e
114
+ rescue FormalSyntaxError #=> e
115
115
  #STDERR.puts("#{k}: #{e}")
116
116
  end
117
117
  end
data/lib/habaki/rules.rb CHANGED
@@ -179,7 +179,7 @@ module Habaki
179
179
  end
180
180
 
181
181
  def each_rule(&block)
182
- each &block
182
+ each(&block)
183
183
  end
184
184
 
185
185
  # @param [Formatter::Base] format
@@ -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.3
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-03-14 00:00:00.000000000 Z
11
+ date: 2022-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri