oga 1.3.1-java → 2.0.0-java
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/doc/migrating_from_nokogiri.md +8 -2
- data/ext/c/lexer.c +437 -302
- data/ext/java/org/liboga/xml/Lexer.java +275 -201
- data/ext/ragel/base_lexer.rl +66 -13
- data/lib/liboga.jar +0 -0
- data/lib/oga/version.rb +1 -1
- data/lib/oga/xml/element.rb +5 -1
- data/lib/oga/xpath/conversion.rb +1 -1
- metadata +2 -3
data/ext/ragel/base_lexer.rl
CHANGED
@@ -53,6 +53,9 @@
|
|
53
53
|
ident_char = unicode | [a-zA-Z0-9\-_\.];
|
54
54
|
identifier = ident_char+;
|
55
55
|
|
56
|
+
html_ident_char = unicode | [a-zA-Z0-9\-_\.:];
|
57
|
+
html_identifier = html_ident_char+;
|
58
|
+
|
56
59
|
whitespace_or_newline = whitespace | newline;
|
57
60
|
|
58
61
|
action count_newlines {
|
@@ -390,12 +393,23 @@
|
|
390
393
|
# Machine used for lexing the name/namespace of an element.
|
391
394
|
element_name := |*
|
392
395
|
identifier ':' => {
|
393
|
-
|
396
|
+
if ( !html_p )
|
397
|
+
{
|
398
|
+
callback(id_on_element_ns, data, encoding, ts, te - 1);
|
399
|
+
}
|
394
400
|
};
|
395
401
|
|
396
402
|
identifier => {
|
397
403
|
callback(id_on_element_name, data, encoding, ts, te);
|
398
|
-
|
404
|
+
|
405
|
+
if ( html_p )
|
406
|
+
{
|
407
|
+
fnext html_element_head;
|
408
|
+
}
|
409
|
+
else
|
410
|
+
{
|
411
|
+
fnext element_head;
|
412
|
+
}
|
399
413
|
};
|
400
414
|
*|;
|
401
415
|
|
@@ -508,8 +522,33 @@
|
|
508
522
|
any => hold_and_return;
|
509
523
|
*|;
|
510
524
|
|
511
|
-
|
512
|
-
|
525
|
+
action start_attribute_pre {
|
526
|
+
fcall attribute_pre;
|
527
|
+
}
|
528
|
+
|
529
|
+
action close_open_element {
|
530
|
+
callback_simple(id_on_element_open_end);
|
531
|
+
|
532
|
+
if ( html_script_p() )
|
533
|
+
{
|
534
|
+
fnext html_script;
|
535
|
+
}
|
536
|
+
else if ( html_style_p() )
|
537
|
+
{
|
538
|
+
fnext html_style;
|
539
|
+
}
|
540
|
+
else
|
541
|
+
{
|
542
|
+
fnext main;
|
543
|
+
}
|
544
|
+
}
|
545
|
+
|
546
|
+
action close_self_closing_element {
|
547
|
+
callback_simple(id_on_element_end);
|
548
|
+
fnext main;
|
549
|
+
}
|
550
|
+
|
551
|
+
# Machine used for processing the contents of an XML element's starting tag.
|
513
552
|
element_head := |*
|
514
553
|
newline => advance_newline;
|
515
554
|
|
@@ -522,12 +561,30 @@
|
|
522
561
|
callback(id_on_attribute, data, encoding, ts, te);
|
523
562
|
};
|
524
563
|
|
525
|
-
|
526
|
-
|
527
|
-
|
564
|
+
'=' => start_attribute_pre;
|
565
|
+
|
566
|
+
'>' => {
|
567
|
+
callback_simple(id_on_element_open_end);
|
568
|
+
|
569
|
+
fnext main;
|
528
570
|
};
|
529
571
|
|
530
|
-
|
572
|
+
'/>' => close_self_closing_element;
|
573
|
+
|
574
|
+
any;
|
575
|
+
*|;
|
576
|
+
|
577
|
+
# Machine used for processing the contents of an HTML element's starting
|
578
|
+
# tag.
|
579
|
+
html_element_head := |*
|
580
|
+
newline => advance_newline;
|
581
|
+
|
582
|
+
html_identifier => {
|
583
|
+
callback(id_on_attribute, data, encoding, ts, te);
|
584
|
+
};
|
585
|
+
|
586
|
+
'=' => start_attribute_pre;
|
587
|
+
|
531
588
|
'>' => {
|
532
589
|
callback_simple(id_on_element_open_end);
|
533
590
|
|
@@ -545,11 +602,7 @@
|
|
545
602
|
}
|
546
603
|
};
|
547
604
|
|
548
|
-
|
549
|
-
'/>' => {
|
550
|
-
callback_simple(id_on_element_end);
|
551
|
-
fnext main;
|
552
|
-
};
|
605
|
+
'/>' => close_self_closing_element;
|
553
606
|
|
554
607
|
any;
|
555
608
|
*|;
|
data/lib/liboga.jar
CHANGED
Binary file
|
data/lib/oga/version.rb
CHANGED
data/lib/oga/xml/element.rb
CHANGED
@@ -64,7 +64,11 @@ module Oga
|
|
64
64
|
#
|
65
65
|
# @return [Oga::XML::Attribute]
|
66
66
|
def attribute(name)
|
67
|
-
|
67
|
+
if html?
|
68
|
+
ns = nil
|
69
|
+
else
|
70
|
+
name, ns = split_name(name)
|
71
|
+
end
|
68
72
|
|
69
73
|
attributes.each do |attr|
|
70
74
|
return attr if attribute_matches?(attr, ns, name)
|
data/lib/oga/xpath/conversion.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: oga
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: java
|
6
6
|
authors:
|
7
7
|
- Yorick Peterse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
@@ -229,4 +229,3 @@ signing_key:
|
|
229
229
|
specification_version: 4
|
230
230
|
summary: Oga is an XML/HTML parser written in Ruby.
|
231
231
|
test_files: []
|
232
|
-
has_rdoc: yard
|