oga 1.3.1-java → 2.0.0-java
Sign up to get free protection for your applications and to get access to all the features.
- 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
|