oga 0.3.0-java → 0.3.1-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/lib/liboga.jar +0 -0
- data/lib/oga.rb +1 -0
- data/lib/oga/entity_decoder.rb +21 -0
- data/lib/oga/version.rb +1 -1
- data/lib/oga/xml/attribute.rb +31 -6
- data/lib/oga/xml/text.rb +22 -9
- metadata +31 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ac227c01680fb6b04932a7715c113e2fc09b1c62
|
4
|
+
data.tar.gz: 412ab533e651333c671442239e7165ba3bbec2e7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7daa67d63f5148e7894bd03df2f6a85562a5f9a08eee09388ce41f5a510896e65f7fe5c6a582d46b6efac8399050ed752bd5a33b6494a4fd11ffa1a4b598b523
|
7
|
+
data.tar.gz: 12a94c68692f33941c0d040ea576537e0eb3e6dcc3326c7f7f4ad6664282688fc2b454e2b3b3bc27864a8f60d36d9424032c25f6ee24e95ab6d988426aaf91d3
|
data/lib/liboga.jar
CHANGED
Binary file
|
data/lib/oga.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
module Oga
|
2
|
+
module EntityDecoder
|
3
|
+
##
|
4
|
+
# @see [decode]
|
5
|
+
#
|
6
|
+
def self.try_decode(input, html = false)
|
7
|
+
return input ? decode(input, html) : nil
|
8
|
+
end
|
9
|
+
|
10
|
+
##
|
11
|
+
# @param [String] input
|
12
|
+
# @param [TrueClass|FalseClass] html
|
13
|
+
# @return [String]
|
14
|
+
#
|
15
|
+
def self.decode(input, html = false)
|
16
|
+
decoder = html ? HTML::Entities : XML::Entities
|
17
|
+
|
18
|
+
return decoder.decode(input)
|
19
|
+
end
|
20
|
+
end # EntityDecoder
|
21
|
+
end # Oga
|
data/lib/oga/version.rb
CHANGED
data/lib/oga/xml/attribute.rb
CHANGED
@@ -10,16 +10,12 @@ module Oga
|
|
10
10
|
# @!attribute [rw] namespace_name
|
11
11
|
# @return [String]
|
12
12
|
#
|
13
|
-
# @!attribute [rw] value
|
14
|
-
# The value of the attribute.
|
15
|
-
# @return [String]
|
16
|
-
#
|
17
13
|
# @!attribute [r] element
|
18
14
|
# The element this attribute belongs to.
|
19
15
|
# @return [Oga::XML::Element]
|
20
16
|
#
|
21
17
|
class Attribute
|
22
|
-
attr_accessor :name, :namespace_name, :element
|
18
|
+
attr_accessor :name, :namespace_name, :element
|
23
19
|
|
24
20
|
##
|
25
21
|
# The default namespace available to all attributes. This namespace can
|
@@ -67,8 +63,28 @@ module Oga
|
|
67
63
|
end
|
68
64
|
|
69
65
|
##
|
70
|
-
#
|
66
|
+
# @param [String] value
|
71
67
|
#
|
68
|
+
def value=(value)
|
69
|
+
@value = value
|
70
|
+
@decoded = false
|
71
|
+
end
|
72
|
+
|
73
|
+
##
|
74
|
+
# Returns the value of the attribute or nil if no explicit value was set.
|
75
|
+
#
|
76
|
+
# @return [String|NilClass]
|
77
|
+
#
|
78
|
+
def value
|
79
|
+
if !@decoded and @value
|
80
|
+
@value = EntityDecoder.try_decode(@value, html?)
|
81
|
+
@decoded = true
|
82
|
+
end
|
83
|
+
|
84
|
+
return @value
|
85
|
+
end
|
86
|
+
|
87
|
+
##
|
72
88
|
# @return [String]
|
73
89
|
#
|
74
90
|
def text
|
@@ -108,6 +124,15 @@ module Oga
|
|
108
124
|
|
109
125
|
return "Attribute(#{segments.join(' ')})"
|
110
126
|
end
|
127
|
+
|
128
|
+
private
|
129
|
+
|
130
|
+
##
|
131
|
+
# @return [TrueClass|FalseClass]
|
132
|
+
#
|
133
|
+
def html?
|
134
|
+
return !!@element && @element.html?
|
135
|
+
end
|
111
136
|
end # Attribute
|
112
137
|
end # XML
|
113
138
|
end # Oga
|
data/lib/oga/xml/text.rb
CHANGED
@@ -26,9 +26,8 @@ module Oga
|
|
26
26
|
# @return [String]
|
27
27
|
#
|
28
28
|
def text
|
29
|
-
|
30
|
-
|
31
|
-
@text = decoder.decode(@text)
|
29
|
+
if decode_entities?
|
30
|
+
@text = EntityDecoder.try_decode(@text, html?)
|
32
31
|
@decoded = true
|
33
32
|
end
|
34
33
|
|
@@ -39,15 +38,29 @@ module Oga
|
|
39
38
|
# @see [Oga::XML::CharacterNode#to_xml]
|
40
39
|
#
|
41
40
|
def to_xml
|
42
|
-
|
43
|
-
|
44
|
-
if node.is_a?(Element) and html? \
|
45
|
-
and Lexer::LITERAL_HTML_ELEMENTS.include?(node.name)
|
46
|
-
return super
|
47
|
-
end
|
41
|
+
return super if inside_literal_html?
|
48
42
|
|
49
43
|
return Entities.encode(super)
|
50
44
|
end
|
45
|
+
|
46
|
+
private
|
47
|
+
|
48
|
+
##
|
49
|
+
# @return [TrueClass|FalseClass]
|
50
|
+
#
|
51
|
+
def decode_entities?
|
52
|
+
return !@decoded && !inside_literal_html?
|
53
|
+
end
|
54
|
+
|
55
|
+
##
|
56
|
+
# @return [TrueClass|FalseClass]
|
57
|
+
#
|
58
|
+
def inside_literal_html?
|
59
|
+
node = parent
|
60
|
+
|
61
|
+
return node.is_a?(Element) && html? &&
|
62
|
+
Lexer::LITERAL_HTML_ELEMENTS.include?(node.name)
|
63
|
+
end
|
51
64
|
end # Text
|
52
65
|
end # XML
|
53
66
|
end # Oga
|
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: 0.3.
|
4
|
+
version: 0.3.1
|
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-04-
|
11
|
+
date: 2015-04-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: ast
|
@@ -142,56 +142,57 @@ executables: []
|
|
142
142
|
extensions: []
|
143
143
|
extra_rdoc_files: []
|
144
144
|
files:
|
145
|
-
- doc/xml_namespaces.md
|
146
145
|
- doc/manually_creating_documents.md
|
146
|
+
- doc/DCO.md
|
147
|
+
- doc/xml_namespaces.md
|
147
148
|
- doc/css_selectors.md
|
148
149
|
- doc/migrating_from_nokogiri.md
|
149
|
-
- doc/DCO.md
|
150
150
|
- doc/css/common.css
|
151
151
|
- lib/oga.rb
|
152
|
+
- lib/oga/oga.rb
|
152
153
|
- lib/oga/version.rb
|
153
154
|
- lib/oga/lru.rb
|
154
|
-
- lib/oga/
|
155
|
+
- lib/oga/entity_decoder.rb
|
155
156
|
- lib/oga/css/lexer.rb
|
156
157
|
- lib/oga/css/parser.rb
|
157
|
-
- lib/oga/
|
158
|
+
- lib/oga/html/sax_parser.rb
|
159
|
+
- lib/oga/html/parser.rb
|
160
|
+
- lib/oga/html/entities.rb
|
158
161
|
- lib/oga/xml/lexer.rb
|
162
|
+
- lib/oga/xml/namespace.rb
|
163
|
+
- lib/oga/xml/processing_instruction.rb
|
164
|
+
- lib/oga/xml/character_node.rb
|
165
|
+
- lib/oga/xml/sax_parser.rb
|
166
|
+
- lib/oga/xml/doctype.rb
|
167
|
+
- lib/oga/xml/document.rb
|
168
|
+
- lib/oga/xml/comment.rb
|
169
|
+
- lib/oga/xml/default_namespace.rb
|
170
|
+
- lib/oga/xml/text.rb
|
159
171
|
- lib/oga/xml/querying.rb
|
172
|
+
- lib/oga/xml/attribute.rb
|
173
|
+
- lib/oga/xml/pull_parser.rb
|
160
174
|
- lib/oga/xml/parser.rb
|
161
|
-
- lib/oga/xml/
|
162
|
-
- lib/oga/xml/
|
175
|
+
- lib/oga/xml/entities.rb
|
176
|
+
- lib/oga/xml/html_void_elements.rb
|
163
177
|
- lib/oga/xml/node.rb
|
164
|
-
- lib/oga/xml/document.rb
|
165
|
-
- lib/oga/xml/pull_parser.rb
|
166
178
|
- lib/oga/xml/node_set.rb
|
167
|
-
- lib/oga/xml/sax_parser.rb
|
168
|
-
- lib/oga/xml/cdata.rb
|
169
179
|
- lib/oga/xml/element.rb
|
170
|
-
- lib/oga/xml/character_node.rb
|
171
|
-
- lib/oga/xml/doctype.rb
|
172
|
-
- lib/oga/xml/html_void_elements.rb
|
173
|
-
- lib/oga/xml/entities.rb
|
174
|
-
- lib/oga/xml/default_namespace.rb
|
175
|
-
- lib/oga/xml/attribute.rb
|
176
180
|
- lib/oga/xml/xml_declaration.rb
|
177
|
-
- lib/oga/xml/
|
178
|
-
- lib/oga/xml/
|
179
|
-
- lib/oga/html/parser.rb
|
180
|
-
- lib/oga/html/sax_parser.rb
|
181
|
-
- lib/oga/html/entities.rb
|
181
|
+
- lib/oga/xml/cdata.rb
|
182
|
+
- lib/oga/xml/traversal.rb
|
182
183
|
- lib/oga/xpath/lexer.rb
|
183
|
-
- lib/oga/xpath/parser.rb
|
184
184
|
- lib/oga/xpath/evaluator.rb
|
185
|
-
-
|
186
|
-
- ext/
|
187
|
-
- ext/java/org/liboga/xml/Lexer.java
|
188
|
-
- ext/java/org/liboga/xml/Lexer.rl
|
189
|
-
- ext/c/extconf.rb
|
185
|
+
- lib/oga/xpath/parser.rb
|
186
|
+
- ext/c/lexer.c
|
190
187
|
- ext/c/lexer.rl
|
191
188
|
- ext/c/lexer.h
|
192
189
|
- ext/c/liboga.c
|
193
|
-
- ext/c/
|
190
|
+
- ext/c/extconf.rb
|
194
191
|
- ext/c/liboga.h
|
192
|
+
- ext/ragel/base_lexer.rl
|
193
|
+
- ext/java/Liboga.java
|
194
|
+
- ext/java/org/liboga/xml/Lexer.java
|
195
|
+
- ext/java/org/liboga/xml/Lexer.rl
|
195
196
|
- README.md
|
196
197
|
- LICENSE
|
197
198
|
- oga.gemspec
|