representable 0.0.1.alpha1 → 0.0.1
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.
- data/README.rdoc +58 -153
- data/lib/representable.rb +18 -42
- data/lib/representable/bindings/json_bindings.rb +69 -0
- data/lib/representable/bindings/xml_bindings.rb +152 -0
- data/lib/representable/definition.rb +1 -12
- data/lib/representable/json.rb +66 -0
- data/lib/representable/version.rb +1 -1
- data/lib/representable/xml.rb +32 -38
- data/representable.gemspec +3 -2
- data/test/bindings_test.rb +110 -0
- data/test/json_test.rb +130 -0
- data/test/{roxml_test.rb → representable_test.rb} +28 -9
- data/test/test_helper.rb +2 -0
- data/test/xml_test.rb +192 -0
- metadata +32 -105
- data/History.txt +0 -354
- data/TODO +0 -37
- data/VERSION +0 -1
- data/examples/amazon.rb +0 -35
- data/examples/current_weather.rb +0 -27
- data/examples/dashed_elements.rb +0 -20
- data/examples/library.rb +0 -40
- data/examples/posts.rb +0 -27
- data/examples/rails.rb +0 -70
- data/examples/twitter.rb +0 -37
- data/examples/xml/active_record.xml +0 -70
- data/examples/xml/amazon.xml +0 -133
- data/examples/xml/current_weather.xml +0 -89
- data/examples/xml/dashed_elements.xml +0 -52
- data/examples/xml/posts.xml +0 -23
- data/examples/xml/twitter.xml +0 -422
- data/lib/representable/references.rb +0 -153
- data/spec/definition_spec.rb +0 -495
- data/spec/examples/active_record_spec.rb +0 -41
- data/spec/examples/amazon_spec.rb +0 -54
- data/spec/examples/current_weather_spec.rb +0 -37
- data/spec/examples/dashed_elements_spec.rb +0 -20
- data/spec/examples/library_spec.rb +0 -46
- data/spec/examples/post_spec.rb +0 -24
- data/spec/examples/twitter_spec.rb +0 -32
- data/spec/roxml_integration_test.rb +0 -289
- data/spec/roxml_spec.rb +0 -372
- data/spec/shared_specs.rb +0 -15
- data/spec/spec_helper.rb +0 -5
- data/spec/support/libxml.rb +0 -3
- data/spec/support/nokogiri.rb +0 -3
- data/spec/xml/array_spec.rb +0 -36
- data/spec/xml/attributes_spec.rb +0 -71
- data/spec/xml/encoding_spec.rb +0 -53
- data/spec/xml/namespace_spec.rb +0 -270
- data/spec/xml/namespaces_spec.rb +0 -67
- data/spec/xml/object_spec.rb +0 -82
- data/spec/xml/parser_spec.rb +0 -21
- data/spec/xml/text_spec.rb +0 -71
- data/test/fixtures/book_malformed.xml +0 -5
- data/test/fixtures/book_pair.xml +0 -8
- data/test/fixtures/book_text_with_attribute.xml +0 -5
- data/test/fixtures/book_valid.xml +0 -5
- data/test/fixtures/book_with_authors.xml +0 -7
- data/test/fixtures/book_with_contributions.xml +0 -9
- data/test/fixtures/book_with_contributors.xml +0 -7
- data/test/fixtures/book_with_contributors_attrs.xml +0 -7
- data/test/fixtures/book_with_default_namespace.xml +0 -9
- data/test/fixtures/book_with_depth.xml +0 -6
- data/test/fixtures/book_with_octal_pages.xml +0 -4
- data/test/fixtures/book_with_publisher.xml +0 -7
- data/test/fixtures/book_with_wrapped_attr.xml +0 -3
- data/test/fixtures/dictionary_of_attr_name_clashes.xml +0 -8
- data/test/fixtures/dictionary_of_attrs.xml +0 -6
- data/test/fixtures/dictionary_of_guarded_names.xml +0 -6
- data/test/fixtures/dictionary_of_mixeds.xml +0 -4
- data/test/fixtures/dictionary_of_name_clashes.xml +0 -10
- data/test/fixtures/dictionary_of_names.xml +0 -4
- data/test/fixtures/dictionary_of_texts.xml +0 -10
- data/test/fixtures/library.xml +0 -30
- data/test/fixtures/library_uppercase.xml +0 -30
- data/test/fixtures/muffins.xml +0 -3
- data/test/fixtures/nameless_ageless_youth.xml +0 -2
- data/test/fixtures/node_with_attr_name_conflicts.xml +0 -1
- data/test/fixtures/node_with_name_conflicts.xml +0 -4
- data/test/fixtures/numerology.xml +0 -4
- data/test/fixtures/person.xml +0 -1
- data/test/fixtures/person_with_guarded_mothers.xml +0 -13
- data/test/fixtures/person_with_mothers.xml +0 -10
- data/test/mocks/dictionaries.rb +0 -57
- data/test/mocks/mocks.rb +0 -279
- data/test/support/fixtures.rb +0 -11
- data/test/unit/definition_test.rb +0 -235
- data/test/unit/deprecations_test.rb +0 -24
- data/test/unit/to_xml_test.rb +0 -81
- data/test/unit/xml_attribute_test.rb +0 -39
- data/test/unit/xml_block_test.rb +0 -81
- data/test/unit/xml_bool_test.rb +0 -122
- data/test/unit/xml_convention_test.rb +0 -150
- data/test/unit/xml_hash_test.rb +0 -115
- data/test/unit/xml_initialize_test.rb +0 -49
- data/test/unit/xml_name_test.rb +0 -141
- data/test/unit/xml_namespace_test.rb +0 -31
- data/test/unit/xml_object_test.rb +0 -206
- data/test/unit/xml_required_test.rb +0 -94
- data/test/unit/xml_text_test.rb +0 -71
- data/website/index.html +0 -98
data/History.txt
DELETED
@@ -1,354 +0,0 @@
|
|
1
|
-
== 3.1.6 (September 9, 2010)
|
2
|
-
|
3
|
-
* bug fix
|
4
|
-
|
5
|
-
* load active_support in a way that is compatible with 2.x and 3.x
|
6
|
-
(fixes gh issue #27)
|
7
|
-
* change the way we monkey patch Nokogiri to leave the original
|
8
|
-
behaviour of the search() method unchanged (fixes gh issue #16)
|
9
|
-
* Unofficial release by James Healy, empact has stepped back from maintaining
|
10
|
-
roxml
|
11
|
-
|
12
|
-
== 3.1.5 (December 18, 2009)
|
13
|
-
|
14
|
-
* bug fix
|
15
|
-
|
16
|
-
* don't use tasks/ because those rake files are picked up by those vendoring roxml
|
17
|
-
|
18
|
-
== 3.1.4 (December 18, 2009)
|
19
|
-
|
20
|
-
* bug fix
|
21
|
-
|
22
|
-
* require the necessary version of active support (#tap wasn't introduced until 2.3)
|
23
|
-
|
24
|
-
== 3.1.3 (October 30, 2009)
|
25
|
-
|
26
|
-
* minor enhancements
|
27
|
-
|
28
|
-
* Add support for local-name() reference reading via :namespace => '*'
|
29
|
-
(ala http://techrageo.us/2008/11/01/wildcard-namespaces-in-xpath/)
|
30
|
-
|
31
|
-
* bug fixes
|
32
|
-
|
33
|
-
* attributes collected :as => [] were previously output improperly,
|
34
|
-
as a single attribute on a single node
|
35
|
-
* don't output crazy, context-less namespaces and local-name xpaths
|
36
|
-
when trying to output namespaced attributes
|
37
|
-
|
38
|
-
== 3.1.2 (October 18, 2009)
|
39
|
-
|
40
|
-
* minor enhancements
|
41
|
-
|
42
|
-
* Retain whitespace in element contents, but still default on blank (rather than entirely empty) elements
|
43
|
-
|
44
|
-
* bug fixes
|
45
|
-
|
46
|
-
* Include namespaces in xml output
|
47
|
-
* Fix that auto-wrapped collections weren't output with their wrappers
|
48
|
-
(which requires introducing the roxml_references accessor on the instance)
|
49
|
-
|
50
|
-
== 3.1.1 (October 17, 2009)
|
51
|
-
|
52
|
-
* bug fix
|
53
|
-
|
54
|
-
* Fix bad load paths
|
55
|
-
|
56
|
-
== 3.1 (October 16, 2009)
|
57
|
-
|
58
|
-
* major enhancements
|
59
|
-
|
60
|
-
* Add support for registering XML namespace prefixes via the xml_namespaces method
|
61
|
-
|
62
|
-
* bug fix
|
63
|
-
|
64
|
-
* References to arrays of attributes were only returning the first. No more.
|
65
|
-
|
66
|
-
== 3.0 (October 14, 2009)
|
67
|
-
|
68
|
-
* major enhancements
|
69
|
-
|
70
|
-
* Add Nokogiri support
|
71
|
-
* Remove previously deprecated functionality
|
72
|
-
* Remove REXML support
|
73
|
-
* Error on any unrecognized options
|
74
|
-
* Normalize hash declaration syntax:
|
75
|
-
* for :key => '@string', string is taken to be the :from argument
|
76
|
-
* for :key => {:from => '@string', :as => Type}, the arguments are just the same as a regular declaration
|
77
|
-
|
78
|
-
* minor enhancements
|
79
|
-
|
80
|
-
* Include 't' and 'f' in the list of possible boolean values, since rails uses them
|
81
|
-
* Remove :attrs hash syntax. Not particularly helpful & somewhat obfuscatory. Use :key, :value instead.
|
82
|
-
* Default attrs ending in '_at' to DateTime. This can be overriden via :as
|
83
|
-
* Default attrs ending in '_on' to Date. This can be overriden via :as
|
84
|
-
* Don't require rubygems within the library
|
85
|
-
* Don't mess with the load path
|
86
|
-
|
87
|
-
== 2.5.4 (October 4, 2009)
|
88
|
-
|
89
|
-
* bug fix
|
90
|
-
|
91
|
-
* Rely on REXML's #add_child and LibXML's <<, rather than #child_add which had been removed from REXML and deprecated from LibXML
|
92
|
-
|
93
|
-
== 2.5.3 (March 22, 2009)
|
94
|
-
|
95
|
-
* minor enhancement
|
96
|
-
|
97
|
-
* Work around apparently unintentional breaking change in libxml-ruby 1.1.3
|
98
|
-
|
99
|
-
== 2.5.2 (March 12, 2009)
|
100
|
-
|
101
|
-
* minor enhancements
|
102
|
-
|
103
|
-
* Remove dependency on an Object#try which conflicted with ActiveSupport 2.3's version
|
104
|
-
* Document the :to_xml option for attr references
|
105
|
-
* Require active_support directly, as it's less brittle and plays nicer with other libraries
|
106
|
-
|
107
|
-
== 2.5.1 (March 2, 2009)
|
108
|
-
|
109
|
-
* minor enhancements
|
110
|
-
|
111
|
-
* Add Document#save to REXML support, complete with XMLDecl output
|
112
|
-
|
113
|
-
* bug fixes
|
114
|
-
|
115
|
-
* rexml support has been fixed
|
116
|
-
* the first example in the readme was broken and has been fixed
|
117
|
-
|
118
|
-
== 2.5.0 (February 24, 2009)
|
119
|
-
|
120
|
-
* major enhancements
|
121
|
-
|
122
|
-
* support for mapping ActiveRecord classes. See examples/rails.rb.
|
123
|
-
* .from_xml will now use the setter for the declared variable, if one is available,
|
124
|
-
rather than directly setting the instance variable
|
125
|
-
* All declaration type arguments are now supported via the :as parameter, e.g. :as => [MyType]. Other uses are deprecated.
|
126
|
-
* 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.
|
127
|
-
* All other options are presented separately, e.g. :cdata => true rather than :as => :cdata. Other uses are deprecated.
|
128
|
-
|
129
|
-
* minor enhancements
|
130
|
-
|
131
|
-
* .xml_attr declaration declares neither a reader nor a writer. With it you're left to your own devices.
|
132
|
-
* You can use literal [] for the [:text] object type declaration,
|
133
|
-
though they should be used in the :as parameter: :as => []
|
134
|
-
* You can use [] with your :as declarations. e.g. :as => [Float] is
|
135
|
-
equivalent to the old :as => [Float, :array]
|
136
|
-
* Show the actual call point of a deprecation, rather than some internal path
|
137
|
-
* Add support for BigDecimal and Fixnum as block shorthands [James Healy]
|
138
|
-
* Update libxml support to 0.9.6, and add it as a dependency, to ensure correct versioning, and
|
139
|
-
as it's an order of magnitude faster than rexml
|
140
|
-
|
141
|
-
* breaking changes
|
142
|
-
|
143
|
-
* :else option only applies to instances created via .from_xml
|
144
|
-
* On .from_xml, #initialize is now called with the *initialization_args before extracting attributes from the xml.
|
145
|
-
* #xml_initialize has been replaced with the #after_parse callback, which takes no arguments.
|
146
|
-
* .xml_accessor will overwrite the setter for this variable if it has already been defined. Use .xml_reader or .xml_attr,
|
147
|
-
or define your writer later, if this is not the behavior you want.
|
148
|
-
|
149
|
-
* deprecations
|
150
|
-
|
151
|
-
* Use :cdata => true rather than :as => :cdata
|
152
|
-
* Use literal [] around your regular object type, rather than :as => :array
|
153
|
-
* Use :from => :content rather than the :content object declaration type
|
154
|
-
* Specifying an unknown symbol or Class for :as will raise in 3.0
|
155
|
-
* Specifying :as with anything other than a type argument e.g. :bool, Float, [Date],
|
156
|
-
will not be supported in 3.0
|
157
|
-
* Use :from => :attr or :from => '@attribute_name' rather than the :attr
|
158
|
-
object declaration type
|
159
|
-
* Passing any type declaration outside the :as parameter is deprecated
|
160
|
-
* In 3.0, attributes ending in _on and _at will default to :as => Date and DateTime, respectively,
|
161
|
-
rather than :text
|
162
|
-
* Deprecated hash :attrs declaration syntax in favor of {:key => '@attr1', :value => '@attr2'}
|
163
|
-
* Deprecated hash {Type => 'name'} declaration syntax in favor of {:as => Type, :from => 'name}
|
164
|
-
* Deprecated String#to_utf and #to_latin.
|
165
|
-
|
166
|
-
* bug fixes
|
167
|
-
|
168
|
-
* xml_accessor now properly handles punctuation, such that the writer appears without '?' for boolean attributes
|
169
|
-
* text node contents are no longer truncated when '&' are present in the contents
|
170
|
-
* When using :as => Integer or Float, don't raise on missing element [James Healy]
|
171
|
-
|
172
|
-
== 2.4.3 (February 1, 2009)
|
173
|
-
|
174
|
-
* 1 bug fix
|
175
|
-
|
176
|
-
* Fix roxml to work in ruby 1.8.6, which has been broken since the removal of
|
177
|
-
extensions in version 2.4.1. Thanks Pat! [Pat Nakajima]
|
178
|
-
|
179
|
-
== 2.4.2 (January 31, 2009)
|
180
|
-
|
181
|
-
* 1 major enhancement
|
182
|
-
|
183
|
-
* xml_namespace for declaring Class-level, inheritable default namespaces.
|
184
|
-
|
185
|
-
* 4 minor enhancements
|
186
|
-
|
187
|
-
* add :as => Time, DateTime, and Date support
|
188
|
-
* support Pathname, IO and URI objects as #from_xml arguments
|
189
|
-
* :as => :bool now supports all capitalizations of 'true', 'false', 'yes', 'no', as well as '1' and '0'
|
190
|
-
* For basic types (:as => Integer, Float, Date, &c.), interpret empty strings just
|
191
|
-
as missing elements (by returning nil), rather than raising. Raise behavior can be
|
192
|
-
accessed by supplying your own block or using the :required option.
|
193
|
-
|
194
|
-
* 3 bug fixes
|
195
|
-
|
196
|
-
* Arrays of attrs or elements :as => :bool weren't previously supported. An oversight.
|
197
|
-
* Don't apply xml_convention if name is explicitly set
|
198
|
-
* Protect xpath operators : and / from modification via String#camelcase & such
|
199
|
-
|
200
|
-
== 2.4.1 (January 28, 2009)
|
201
|
-
|
202
|
-
* 3 minor enhancements
|
203
|
-
|
204
|
-
* remove dependency on 'extensions' gem, as we weren't using it much and it
|
205
|
-
was causing problems for some
|
206
|
-
* deprecate the 'xml' declaration in favor of the more explicit 'xml_reference'
|
207
|
-
declaration. Reorder params to make for cleaner 3.0 transition.
|
208
|
-
* deprecate '#tag_name' in favor of 'self.class.tag_name', as it's a class-specific value
|
209
|
-
|
210
|
-
== 2.4.0 (January 15, 2009)
|
211
|
-
|
212
|
-
* 1 major enhancement
|
213
|
-
|
214
|
-
* Add xml_convention to enable easy defaulting to common naming formats, such as camel-case and
|
215
|
-
underscored [Ben Woosley]
|
216
|
-
|
217
|
-
* 6 minor enhancements
|
218
|
-
|
219
|
-
* Add :frozen option for freezing values on parse [Ben Woosley]
|
220
|
-
* Attempt to minimize node creation by better matching wrappers [Ben Woosley]
|
221
|
-
* Preserve hash values where a single key maps to multiple values, return them as an array rather
|
222
|
-
any single one of them at random (as in group_by rather than index_by) [Ben Woosley]
|
223
|
-
* Deprecate #xml_name? as it's only used for triggering the xml_name warning [Ben Woosley]
|
224
|
-
* REXML parser ignores whitespace, which doesn't matter to us anyway [Ben Woosley]
|
225
|
-
* xml_name is inherited by default [Ben Woosley]
|
226
|
-
|
227
|
-
* 2 bug fixes
|
228
|
-
|
229
|
-
* Don't detect objects which define their own empty? as being absent for the purposes
|
230
|
-
of :default and :required [Ben Woosley]
|
231
|
-
* Sub-objects pick up their parent's attributes, even if they're added after
|
232
|
-
the child's use [Ben Woosley]
|
233
|
-
|
234
|
-
== 2.3.2 (December 11, 2008)
|
235
|
-
|
236
|
-
* Fix that both false and nil values were excluded from to_xml output, when only nil values should be [Ben Woosley]
|
237
|
-
|
238
|
-
== 2.3.1 (December 9, 2008)
|
239
|
-
|
240
|
-
* Add missing dependencies to extensions/enumerable and Symbol.to_proc,
|
241
|
-
which are as-yet inexplicably pre-included on my system... [Ben Woosley, Per Melin]
|
242
|
-
|
243
|
-
== 2.3 (December 7, 2008)
|
244
|
-
|
245
|
-
* Fix a bug in the application of blocks to array types [Ben Woosley]
|
246
|
-
|
247
|
-
* Objects now inherit xml attributes from their parents, as they should [Ben Woosley, Per Melin]
|
248
|
-
|
249
|
-
* Add #xml_initialize, which is called at the end of #from_xml, after the xml attributes
|
250
|
-
are set. Deprecate the half-baked xml_construct in it's favor. [Ben Woosley]
|
251
|
-
|
252
|
-
* Fix a bug in the handling of empty Hash types [Ben Woosley]
|
253
|
-
|
254
|
-
* Implement automatic bool-ification when the accessor name ends with ?. [Ben Woosley]
|
255
|
-
|
256
|
-
* Add missing dependency ActiveSupport [Ben Woosley]
|
257
|
-
|
258
|
-
* Remove support for installing as a rails plugin [Ben Woosley]
|
259
|
-
|
260
|
-
* Fix a bug where xml_construct was using the refs' names rather than their accessor names for comparison [Ben Woosley]
|
261
|
-
|
262
|
-
* Significantly reduce our footprint by selectively including smaller parts of ActiveSupport and Extensions.
|
263
|
-
This avoids problems such as the conflict between ActiveSupport's #to_json and the JSON gem's #to_json.
|
264
|
-
Thanks to Per Melin for reporting this problem. [Ben Woosley]
|
265
|
-
|
266
|
-
* Rationalize sub-element xml naming by enforcing the following precedence for the containing xml of an object:
|
267
|
-
:from of parent, xml_name of child, parent's accessor name. The previous fallback did not include xml_name.
|
268
|
-
This new behavior is more consistent, explicit, predictable, and DRY, but it is a breaking change, so a warning
|
269
|
-
is printed to alert others of this behavior change. ROXML::SILENCE_XML_NAME_WARNING may be used to deactivate this
|
270
|
-
warning. [Ben Woosley, James W. Thompson, Delynn Berry]
|
271
|
-
|
272
|
-
== 2.2 (November 2, 2008)
|
273
|
-
|
274
|
-
* fix gem dependencies [James Healy]
|
275
|
-
|
276
|
-
* Add block shorthands for Float and Integer, which precede the block argume if present [Ben Woosley]
|
277
|
-
|
278
|
-
* Add :required option to throw on absence [Ben Woosley]
|
279
|
-
|
280
|
-
* Deprecate the non-specific #parse in favor of #from_xml [Ben Woosley]
|
281
|
-
|
282
|
-
* Fix a bug whereby the default value was carrying over information from one object to another [James Healy, Ben Woosley]
|
283
|
-
|
284
|
-
* Fix support for :in on :attr elements [Ben Woosley]
|
285
|
-
|
286
|
-
* Deprecate Array#to_h in favor of Array#to_hash [Ben Woosley]
|
287
|
-
|
288
|
-
* Deprecate Object#to_latin and Object#to_utf in favor of the same methods on String [Ben Woosley]
|
289
|
-
|
290
|
-
== 2.1 (October 3, 2008)
|
291
|
-
|
292
|
-
* rake test now uses the default parser selection [Ben Woosley]
|
293
|
-
|
294
|
-
* Added rcov code coverage for tests [Anders Engström]
|
295
|
-
|
296
|
-
* Accommodate that libxml requires you to name the default namespace when available [Ben Woosley]
|
297
|
-
|
298
|
-
* Enable optional selection of a parser through the early definition of ROXML::XML_PARSER
|
299
|
-
[Ben Woosley]
|
300
|
-
|
301
|
-
* Enable fallback to the REXML parser if LibXML is unavailable [Ben Woosley]
|
302
|
-
|
303
|
-
== 2.0 (September 20, 2008)
|
304
|
-
|
305
|
-
* :text_content becomes simply :content, and is joined by :name [Ben Woosley]
|
306
|
-
|
307
|
-
* Allow hash mapping from node names and contents: [Ben Woosley]
|
308
|
-
|
309
|
-
xml_reader :name, {:key => :name,
|
310
|
-
:value => :content}, :in => 'container'
|
311
|
-
|
312
|
-
* Allow supplying a default via the :else option [Ben Woosley]
|
313
|
-
|
314
|
-
* Allow hash mapping of text and attr elements: [Ben Woosley]
|
315
|
-
|
316
|
-
xml_reader :name, {:key => {:text => 'key_name'},
|
317
|
-
:value => {:attr => 'attr_name'}}, :in => 'container'
|
318
|
-
|
319
|
-
* Allow 'xml_reader :name, [Type]' as an alternative to 'xml_reader :name, Type, :as => :array'
|
320
|
-
[Ben Woosley]
|
321
|
-
|
322
|
-
* Allow attaching a block for manipulating a value on fetch: [Ben Woosley]
|
323
|
-
|
324
|
-
xml_accessor :count, :attr => 'my_int' do |val|
|
325
|
-
Integer(val)
|
326
|
-
end
|
327
|
-
|
328
|
-
* Collapse xml_attr, xml_text and xml_object into a single api: xml, patterned after the standard
|
329
|
-
attr, and offer xml_reader and xml_accessor as well. Remove the :readonly arg in the process
|
330
|
-
[Ben Woosley]
|
331
|
-
|
332
|
-
* Attach string extensions (#to_latin, #to_utf) to Object rather than String, so we don't have to
|
333
|
-
call #to_s first every time [Ben Woosley]
|
334
|
-
|
335
|
-
* Allow a ROXML object to call its constructor on initialization with the xml_construct function
|
336
|
-
[Ben Woosley]
|
337
|
-
|
338
|
-
* Use symbols (e.g. :text_content) rather than TAG_CONSTANTS (e.g. TEXT_CONTENT) for readability
|
339
|
-
[Ben Woosley]
|
340
|
-
|
341
|
-
* Use named arguments (e.g. :as, :in) rather than positional for clarity,
|
342
|
-
position-independence, and invisible exclusion [Ben Woosley]
|
343
|
-
|
344
|
-
* Split out rails_plugin_package_task_gem [Ben Woosley]
|
345
|
-
|
346
|
-
* Increase testing significantly, particularly on new functionality & to_xml [Ben Woosley]
|
347
|
-
|
348
|
-
== 1.2 (October 10, 2007)
|
349
|
-
|
350
|
-
* Fix a bug such that the TEXT_CONTENT tag is no longer also READ_ONLY [Russ Olsen]
|
351
|
-
|
352
|
-
== 1.1 (September 24, 2006)
|
353
|
-
|
354
|
-
* Initial design & development [Zak Mandhro & Anders Engstrom]
|
data/TODO
DELETED
@@ -1,37 +0,0 @@
|
|
1
|
-
Planned:
|
2
|
-
|
3
|
-
v 3.2
|
4
|
-
|
5
|
-
* Support outputting namespaced attrs
|
6
|
-
|
7
|
-
* Consider class_inheritable_attribute rather than superclass.try stuff.
|
8
|
-
|
9
|
-
* Do some benchmarking
|
10
|
-
|
11
|
-
* Back with http://xml-object.rubyforge.org/doc/ to minimize need for specifications?
|
12
|
-
|
13
|
-
* Commandeer #parse to use opposite #from_xml, but in an unrooted, collection-friendly fashion,
|
14
|
-
ala HappyMapper's parse
|
15
|
-
|
16
|
-
v 3.x
|
17
|
-
|
18
|
-
* :self => true for sending method_missing to this attribute?
|
19
|
-
|
20
|
-
* :attributes extensions ala HappyMapper?
|
21
|
-
|
22
|
-
* Add xml_attrs helper to share :in declarations between several attributes. E.g.:
|
23
|
-
|
24
|
-
xml_reader :count, :in => 'Attributes', :as => Integer
|
25
|
-
xml_reader :something_else, :in => 'Attributes', :as => Date
|
26
|
-
|
27
|
-
becomes:
|
28
|
-
|
29
|
-
xml_attrs :in => 'Attributes' do |xml|
|
30
|
-
xml.reader :count, :as => Integer
|
31
|
-
xml.reader :something_else, :as => Date
|
32
|
-
end
|
33
|
-
|
34
|
-
* Ensure (perhaps optionally) that references are unambiguous. That is error/warn
|
35
|
-
a singular specification has multiple possible node references
|
36
|
-
|
37
|
-
* Use lazy evaluation to minimize parsing time for large files
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
3.1.6
|
data/examples/amazon.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require_relative './../spec/spec_helper'
|
3
|
-
|
4
|
-
# The document `pita.xml` contains both a default namespace and the 'georss'
|
5
|
-
# namespace (for the 'point' xml_reader).
|
6
|
-
module PITA
|
7
|
-
class Base
|
8
|
-
include ROXML
|
9
|
-
xml_convention :camelcase
|
10
|
-
end
|
11
|
-
|
12
|
-
class Item < Base
|
13
|
-
xml_reader :asin, :from => 'ASIN'
|
14
|
-
xml_reader :detail_page_url, :from => 'DetailPageURL'
|
15
|
-
xml_reader :manufacturer, :in => 'ItemAttributes'
|
16
|
-
# this is the only xml_reader that exists in a different namespace, so it
|
17
|
-
# must be explicitly specified
|
18
|
-
xml_reader :point, :namespace => 'georss'
|
19
|
-
end
|
20
|
-
|
21
|
-
class ItemSearchResponse < Base
|
22
|
-
xml_reader :total_results, :as => Integer, :in => 'Items'
|
23
|
-
xml_reader :total_pages, :as => Integer, :in => 'Items'
|
24
|
-
xml_reader :items, :as => [Item]
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
unless defined?(Spec)
|
29
|
-
response = PITA::ItemSearchResponse.from_xml(xml_for('amazon'))
|
30
|
-
p response.total_results
|
31
|
-
p response.total_pages
|
32
|
-
response.items.each do |i|
|
33
|
-
puts i.asin, i.detail_page_url, i.manufacturer, i.point, ''
|
34
|
-
end
|
35
|
-
end
|
data/examples/current_weather.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require_relative './../spec/spec_helper'
|
3
|
-
|
4
|
-
class Base
|
5
|
-
include ROXML
|
6
|
-
xml_convention :dasherize
|
7
|
-
xml_namespace 'aws'
|
8
|
-
end
|
9
|
-
|
10
|
-
class WeatherObservation < Base
|
11
|
-
xml_name 'ob'
|
12
|
-
xml_reader :temperature, :as => Float, :from => 'aws:temp'
|
13
|
-
xml_reader :feels_like, :as => Integer
|
14
|
-
xml_reader :current_condition #, :attributes => {:icon => String} # pending
|
15
|
-
end
|
16
|
-
|
17
|
-
class Weather < Base
|
18
|
-
xml_reader :observation, :as => WeatherObservation, :required => true
|
19
|
-
end
|
20
|
-
|
21
|
-
unless defined?(Spec)
|
22
|
-
current_weather = Weather.from_xml(xml_for('current_weather')).observation
|
23
|
-
puts "temperature: #{current_weather.temperature}"
|
24
|
-
puts "feels_like: #{current_weather.feels_like}"
|
25
|
-
puts "current_condition: #{current_weather.current_condition}"
|
26
|
-
# puts "current_condition.icon: #{current_weather.current_condition.icon}" # pending
|
27
|
-
end
|