forked from Empact/roxml
/
History.txt
183 lines (113 loc) · 7.14 KB
/
History.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
== 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]