1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

r1479@bean: ser | 2008-01-19 14:26:31 -0500

r1483@bean:  ser | 2008-01-19 14:47:23 -0500
 Sam's fixes:
 * Don't blow up on empty documents
 * Add a test case for sorted attributes
 * Making the output predictable simplifies unit tests, and doesn't cost
   much given that most xml element have few attributes
 * Ruby 1.9 revision 14922 is more strict
 * Complete Ticket #134
 * Fix for ticket #121
 * Fix for ticket #124
 * Fix for ticket #128
 * Fix ticket #133
 * Ticket #131 (Support Ruby 1.9)
 * Fix for ticket #127
 * Fix for ticket #123
 * Add missing data needed by test case
 
  r1481@bean (orig r1303):  ser | 2008-01-19 17:22:32 -0500
  Tagged for release
  r1482@bean (orig r1304):  ser | 2008-01-19 17:27:10 -0500
  Version bump
 


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15141 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ser 2008-01-20 04:31:57 +00:00
parent 00190701e0
commit 66aeb2f708
8 changed files with 163 additions and 51 deletions

View file

@ -17,6 +17,8 @@ module REXML
attr_writer :normalized
PATTERN = /\s*(#{NAME_STR})\s*=\s*(["'])(.*?)\2/um
NEEDS_A_SECOND_CHECK = /(<|&((#{Entity::NAME});|(#0*((?:\d+)|(?:x[a-fA-F0-9]+)));)?)/um
# Constructor.
# FIXME: The parser doesn't catch illegal characters in attributes
#
@ -110,15 +112,16 @@ module REXML
end
end
# Returns the attribute value, with entities replaced
def to_s
return @normalized if @normalized
doctype = nil
def doctype
if @element
doc = @element.document
doctype = doc.doctype if doc
end
end
# Returns the attribute value, with entities replaced
def to_s
return @normalized if @normalized
@normalized = Text::normalize( @unnormalized, doctype )
@unnormalized = nil
@ -129,11 +132,6 @@ module REXML
# have been expanded to their values
def value
return @unnormalized if @unnormalized
doctype = nil
if @element
doc = @element.document
doctype = doc.doctype if doc
end
@unnormalized = Text::unnormalize( @normalized, doctype )
@normalized = nil
@unnormalized
@ -150,6 +148,11 @@ module REXML
# Returns this attribute
def element=( element )
@element = element
if @normalized
Text.check( @normalized, NEEDS_A_SECOND_CHECK, doctype )
end
self
end