lib/roxml/xml/references.rb in roxml-2.4.3 vs lib/roxml/xml/references.rb in roxml-2.5.0

- old
+ new

@@ -34,26 +34,23 @@ else name end end - def default - @default ||= @opts.default || (@opts.array? ? Array.new : nil) - @default.duplicable? ? @default.dup : @default - end - def value_in(xml) + xml = XML::Node.from(xml) value = fetch_value(xml) + value = default if value.nil? + freeze(apply_blocks(value)) end private attr_reader :opts def conventionize(what) if !what.blank? && @instance.try(:class).try(:roxml_naming_convention).respond_to?(:call) - require 'uri' URI.unescape(@instance.class.roxml_naming_convention.call(URI.escape(what, /\/|::/))) else what end end @@ -69,11 +66,11 @@ raise ex, "#{accessor}: #{ex.message}" end end def freeze(val) - if opts.freeze? + if opts.frozen? val.each(&:freeze) if val.is_a?(Enumerable) val.freeze else val end @@ -90,11 +87,11 @@ def wrap(xml) return xml if !wrapper || xml.name == wrapper if child = xml.children.find {|c| c.name == wrapper } return child end - xml.child_add(XML::Node.new_element(wrapper)) + xml.child_add(XML::Node.new(wrapper)) end def nodes_in(xml) vals = xml.search(xpath) @@ -121,11 +118,11 @@ class XMLAttributeRef < XMLRef # :nodoc: private # Updates the attribute in the given XML block to # the value provided. def write_xml(xml, value) - xml.attributes[name] = value.to_s.to_utf + xml.attributes[name] = value.to_s.to_utf_without_deprecation end def fetch_value(xml) nodes_in(xml) do |nodes| nodes.first.value @@ -154,14 +151,14 @@ add(xml, value) elsif name? xml.name = value elsif array? value.each do |v| - add(xml.child_add(XML::Node.new_element(name)), v) + add(xml.child_add(XML::Node.new(name)), v) end else - add(xml.child_add(XML::Node.new_element(name)), value) + add(xml.child_add(XML::Node.new(name)), value) end end def fetch_value(xml) if content? || name? @@ -180,24 +177,24 @@ end else nodes_in(xml) do |nodes| if array? nodes.collect do |e| - e.content.strip.to_latin + e.content.strip.to_latin_without_deprecation end else nodes.first.content end end end end def add(dest, value) if cdata? - dest.child_add(XML::Node.new_cdata(value.to_s.to_utf)) + dest.child_add(XML::Node.new_cdata(value.to_s.to_utf_without_deprecation)) else - dest.content = value.to_s.to_utf + dest.content = CGI.escapeHTML(value.to_s.to_utf_without_deprecation) end end end class XMLHashRef < XMLTextRef # :nodoc: @@ -212,11 +209,11 @@ private # Updates the composed XML object in the given XML block to # the value provided. def write_xml(xml, value) value.each_pair do |k, v| - node = xml.child_add(XML::Node.new_element(hash.wrapper)) + node = xml.child_add(XML::Node.new(hash.wrapper)) @key.update_xml(node, k) @value.update_xml(node, v) end end @@ -236,11 +233,11 @@ end vals.to_hash if vals end def freeze(vals) - if opts.freeze? + if opts.frozen? vals.each_pair{|k, v| k.freeze; v.freeze } vals.freeze else vals end @@ -259,10 +256,10 @@ xml.child_add(v.to_xml(name)) end elsif value.is_a?(ROXML) xml.child_add(value.to_xml(name)) else - node = XML::Node.new_element(name) + node = XML::Node.new(name) node.content = value.to_xml xml.child_add(node) end end \ No newline at end of file