Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: master
Fetching contributors…

Cannot retrieve contributors at this time

365 lines (231 sloc) 13.906 kb
== 3.3.1 (February 10, 2012)
* bug fix
* Fix reading of VERSION file - Jari Bakken (jarib)
== 3.3.0 (February 9, 2012)
* major enhancement
* Don't extend/modify the XML parser
== 3.1.6 (September 9, 2010)
* bug fix
* load active_support in a way that is compatible with 2.x and 3.x
(fixes gh issue #27)
* change the way we monkey patch Nokogiri to leave the original
behaviour of the search() method unchanged (fixes gh issue #16)
== 3.1.5 (December 18, 2009)
* bug fix
* don't use tasks/ because those rake files are picked up by those vendoring roxml
== 3.1.4 (December 18, 2009)
* bug fix
* require the necessary version of active support (#tap wasn't introduced until 2.3)
== 3.1.3 (October 30, 2009)
* minor enhancements
* Add support for local-name() reference reading via :namespace => '*'
(ala http://techrageo.us/2008/11/01/wildcard-namespaces-in-xpath/)
* bug fixes
* attributes collected :as => [] were previously output improperly,
as a single attribute on a single node
* don't output crazy, context-less namespaces and local-name xpaths
when trying to output namespaced attributes
== 3.1.2 (October 18, 2009)
* minor enhancements
* Retain whitespace in element contents, but still default on blank (rather than entirely empty) elements
* bug fixes
* Include namespaces in xml output
* Fix that auto-wrapped collections weren't output with their wrappers
(which requires introducing the roxml_references accessor on the instance)
== 3.1.1 (October 17, 2009)
* bug fix
* Fix bad load paths
== 3.1 (October 16, 2009)
* major enhancements
* Add support for registering XML namespace prefixes via the xml_namespaces method
* bug fix
* References to arrays of attributes were only returning the first. No more.
== 3.0 (October 14, 2009)
* major enhancements
* Add Nokogiri support
* Remove previously deprecated functionality
* Remove REXML support
* Error on any unrecognized options
* Normalize hash declaration syntax:
* for :key => '@string', string is taken to be the :from argument
* for :key => {:from => '@string', :as => Type}, the arguments are just the same as a regular declaration
* minor enhancements
* Include 't' and 'f' in the list of possible boolean values, since rails uses them
* Remove :attrs hash syntax. Not particularly helpful & somewhat obfuscatory. Use :key, :value instead.
* Default attrs ending in '_at' to DateTime. This can be overriden via :as
* Default attrs ending in '_on' to Date. This can be overriden via :as
* Don't require rubygems within the library
* Don't mess with the load path
== 2.5.4 (October 4, 2009)
* bug fix
* Rely on REXML's #add_child and LibXML's <<, rather than #child_add which had been removed from REXML and deprecated from LibXML
== 2.5.3 (March 22, 2009)
* minor enhancement
* Work around apparently unintentional breaking change in libxml-ruby 1.1.3
== 2.5.2 (March 12, 2009)
* minor enhancements
* Remove dependency on an Object#try which conflicted with ActiveSupport 2.3's version
* Document the :to_xml option for attr references
* Require active_support directly, as it's less brittle and plays nicer with other libraries
== 2.5.1 (March 2, 2009)
* minor enhancements
* Add Document#save to REXML support, complete with XMLDecl output
* bug fixes
* rexml support has been fixed
* the first example in the readme was broken and has been fixed
== 2.5.0 (February 24, 2009)
* major enhancements
* support for mapping ActiveRecord classes. See examples/rails.rb.
* .from_xml will now use the setter for the declared variable, if one is available,
rather than directly setting the instance variable
* All declaration type arguments are now supported via the :as parameter, e.g. :as => [MyType]. Other uses are deprecated.
* All xml source path arguments are now supported via the :from and :in parameters, e.g. :from => :attr or :from => '@MyAttr'. Other uses are deprecated.
* All other options are presented separately, e.g. :cdata => true rather than :as => :cdata. Other uses are deprecated.
* minor enhancements
* .xml_attr declaration declares neither a reader nor a writer. With it you're left to your own devices.
* You can use literal [] for the [:text] object type declaration,
though they should be used in the :as parameter: :as => []
* You can use [] with your :as declarations. e.g. :as => [Float] is
equivalent to the old :as => [Float, :array]
* Show the actual call point of a deprecation, rather than some internal path
* Add support for BigDecimal and Fixnum as block shorthands [James Healy]
* Update libxml support to 0.9.6, and add it as a dependency, to ensure correct versioning, and
as it's an order of magnitude faster than rexml
* breaking changes
* :else option only applies to instances created via .from_xml
* On .from_xml, #initialize is now called with the *initialization_args before extracting attributes from the xml.
* #xml_initialize has been replaced with the #after_parse callback, which takes no arguments.
* .xml_accessor will overwrite the setter for this variable if it has already been defined. Use .xml_reader or .xml_attr,
or define your writer later, if this is not the behavior you want.
* deprecations
* Use :cdata => true rather than :as => :cdata
* Use literal [] around your regular object type, rather than :as => :array
* Use :from => :content rather than the :content object declaration type
* Specifying an unknown symbol or Class for :as will raise in 3.0
* Specifying :as with anything other than a type argument e.g. :bool, Float, [Date],
will not be supported in 3.0
* Use :from => :attr or :from => '@attribute_name' rather than the :attr
object declaration type
* Passing any type declaration outside the :as parameter is deprecated
* In 3.0, attributes ending in _on and _at will default to :as => Date and DateTime, respectively,
rather than :text
* Deprecated hash :attrs declaration syntax in favor of {:key => '@attr1', :value => '@attr2'}
* Deprecated hash {Type => 'name'} declaration syntax in favor of {:as => Type, :from => 'name}
* Deprecated String#to_utf and #to_latin.
* bug fixes
* xml_accessor now properly handles punctuation, such that the writer appears without '?' for boolean attributes
* text node contents are no longer truncated when '&' are present in the contents
* When using :as => Integer or Float, don't raise on missing element [James Healy]
== 2.4.3 (February 1, 2009)
* 1 bug fix
* Fix roxml to work in ruby 1.8.6, which has been broken since the removal of
extensions in version 2.4.1. Thanks Pat! [Pat Nakajima]
== 2.4.2 (January 31, 2009)
* 1 major enhancement
* xml_namespace for declaring Class-level, inheritable default namespaces.
* 4 minor enhancements
* add :as => Time, DateTime, and Date support
* support Pathname, IO and URI objects as #from_xml arguments
* :as => :bool now supports all capitalizations of 'true', 'false', 'yes', 'no', as well as '1' and '0'
* For basic types (:as => Integer, Float, Date, &c.), interpret empty strings just
as missing elements (by returning nil), rather than raising. Raise behavior can be
accessed by supplying your own block or using the :required option.
* 3 bug fixes
* Arrays of attrs or elements :as => :bool weren't previously supported. An oversight.
* Don't apply xml_convention if name is explicitly set
* Protect xpath operators : and / from modification via String#camelcase & such
== 2.4.1 (January 28, 2009)
* 3 minor enhancements
* remove dependency on 'extensions' gem, as we weren't using it much and it
was causing problems for some
* deprecate the 'xml' declaration in favor of the more explicit 'xml_reference'
declaration. Reorder params to make for cleaner 3.0 transition.
* deprecate '#tag_name' in favor of 'self.class.tag_name', as it's a class-specific value
== 2.4.0 (January 15, 2009)
* 1 major enhancement
* Add xml_convention to enable easy defaulting to common naming formats, such as camel-case and
underscored [Ben Woosley]
* 6 minor enhancements
* Add :frozen option for freezing values on parse [Ben Woosley]
* Attempt to minimize node creation by better matching wrappers [Ben Woosley]
* Preserve hash values where a single key maps to multiple values, return them as an array rather
any single one of them at random (as in group_by rather than index_by) [Ben Woosley]
* Deprecate #xml_name? as it's only used for triggering the xml_name warning [Ben Woosley]
* REXML parser ignores whitespace, which doesn't matter to us anyway [Ben Woosley]
* xml_name is inherited by default [Ben Woosley]
* 2 bug fixes
* Don't detect objects which define their own empty? as being absent for the purposes
of :default and :required [Ben Woosley]
* Sub-objects pick up their parent's attributes, even if they're added after
the child's use [Ben Woosley]
== 2.3.2 (December 11, 2008)
* Fix that both false and nil values were excluded from to_xml output, when only nil values should be [Ben Woosley]
== 2.3.1 (December 9, 2008)
* Add missing dependencies to extensions/enumerable and Symbol.to_proc,
which are as-yet inexplicably pre-included on my system... [Ben Woosley, Per Melin]
== 2.3 (December 7, 2008)
* Fix a bug in the application of blocks to array types [Ben Woosley]
* Objects now inherit xml attributes from their parents, as they should [Ben Woosley, Per Melin]
* Add #xml_initialize, which is called at the end of #from_xml, after the xml attributes
are set. Deprecate the half-baked xml_construct in it's favor. [Ben Woosley]
* Fix a bug in the handling of empty Hash types [Ben Woosley]
* Implement automatic bool-ification when the accessor name ends with ?. [Ben Woosley]
* Add missing dependency ActiveSupport [Ben Woosley]
* Remove support for installing as a rails plugin [Ben Woosley]
* Fix a bug where xml_construct was using the refs' names rather than their accessor names for comparison [Ben Woosley]
* Significantly reduce our footprint by selectively including smaller parts of ActiveSupport and Extensions.
This avoids problems such as the conflict between ActiveSupport's #to_json and the JSON gem's #to_json.
Thanks to Per Melin for reporting this problem. [Ben Woosley]
* Rationalize sub-element xml naming by enforcing the following precedence for the containing xml of an object:
:from of parent, xml_name of child, parent's accessor name. The previous fallback did not include xml_name.
This new behavior is more consistent, explicit, predictable, and DRY, but it is a breaking change, so a warning
is printed to alert others of this behavior change. ROXML::SILENCE_XML_NAME_WARNING may be used to deactivate this
warning. [Ben Woosley, James W. Thompson, Delynn Berry]
== 2.2 (November 2, 2008)
* fix gem dependencies [James Healy]
* Add block shorthands for Float and Integer, which precede the block argume if present [Ben Woosley]
* Add :required option to throw on absence [Ben Woosley]
* Deprecate the non-specific #parse in favor of #from_xml [Ben Woosley]
* Fix a bug whereby the default value was carrying over information from one object to another [James Healy, Ben Woosley]
* Fix support for :in on :attr elements [Ben Woosley]
* Deprecate Array#to_h in favor of Array#to_hash [Ben Woosley]
* Deprecate Object#to_latin and Object#to_utf in favor of the same methods on String [Ben Woosley]
== 2.1 (October 3, 2008)
* rake test now uses the default parser selection [Ben Woosley]
* Added rcov code coverage for tests [Anders Engström]
* Accommodate that libxml requires you to name the default namespace when available [Ben Woosley]
* Enable optional selection of a parser through the early definition of ROXML::XML_PARSER
[Ben Woosley]
* Enable fallback to the REXML parser if LibXML is unavailable [Ben Woosley]
== 2.0 (September 20, 2008)
* :text_content becomes simply :content, and is joined by :name [Ben Woosley]
* Allow hash mapping from node names and contents: [Ben Woosley]
xml_reader :name, {:key => :name,
:value => :content}, :in => 'container'
* Allow supplying a default via the :else option [Ben Woosley]
* Allow hash mapping of text and attr elements: [Ben Woosley]
xml_reader :name, {:key => {:text => 'key_name'},
:value => {:attr => 'attr_name'}}, :in => 'container'
* Allow 'xml_reader :name, [Type]' as an alternative to 'xml_reader :name, Type, :as => :array'
[Ben Woosley]
* Allow attaching a block for manipulating a value on fetch: [Ben Woosley]
xml_accessor :count, :attr => 'my_int' do |val|
Integer(val)
end
* Collapse xml_attr, xml_text and xml_object into a single api: xml, patterned after the standard
attr, and offer xml_reader and xml_accessor as well. Remove the :readonly arg in the process
[Ben Woosley]
* Attach string extensions (#to_latin, #to_utf) to Object rather than String, so we don't have to
call #to_s first every time [Ben Woosley]
* Allow a ROXML object to call its constructor on initialization with the xml_construct function
[Ben Woosley]
* Use symbols (e.g. :text_content) rather than TAG_CONSTANTS (e.g. TEXT_CONTENT) for readability
[Ben Woosley]
* Use named arguments (e.g. :as, :in) rather than positional for clarity,
position-independence, and invisible exclusion [Ben Woosley]
* Split out rails_plugin_package_task_gem [Ben Woosley]
* Increase testing significantly, particularly on new functionality & to_xml [Ben Woosley]
== 1.2 (October 10, 2007)
* Fix a bug such that the TEXT_CONTENT tag is no longer also READ_ONLY [Russ Olsen]
== 1.1 (September 24, 2006)
* Initial design & development [Zak Mandhro & Anders Engstrom]
Jump to Line
Something went wrong with that request. Please try again.