This repository is private.
All pages are served over SSL and all pushing and pulling is done over SSH.
No one may fork, clone, or view it unless they are added as a member.
Every repository with this icon (
) is private.
Every repository with this icon (
This repository is public.
Anyone may fork, clone, or view it.
Every repository with this icon (
) is public.
Every repository with this icon (
commit f4fad85d5ced79fa86b0b5232f9325e501366669
tree 7262ea08d5dc91e1a20ece88c9da87c1f00673cb
parent f6d66aba1ed17c217f1b8283f157e37aeb7bcfdd
tree 7262ea08d5dc91e1a20ece88c9da87c1f00673cb
parent f6d66aba1ed17c217f1b8283f157e37aeb7bcfdd
with_xml /
| name | age | message | |
|---|---|---|---|
| |
MIT-LICENSE | ||
| |
README | ||
| |
Rakefile | ||
| |
init.rb | ||
| |
install.rb | ||
| |
lib/ | ||
| |
tasks/ | ||
| |
test/ | ||
| |
uninstall.rb |
README
= with_xml
A simple plugin for customizing the xml serialization of ActiveRecord objects.
== INSTALLATION
script/plugin install git://github.com/mattsears/with_xml.git
== EXAMPLE USAGE
In general, you can define the xml options in the model's class definition. In this example,
we'll set the xml options in the Article class:
ActiveRecord::Schema.define(:version => 1) do
create_table :articles do |t|
t.string :name, :heading, :body, :author
end
end
In the Article's class, we define the xml serialization options in the <b>with_xml</b> block like so:
class Article < ActiveRecord::Base
with_xml :feeds, {:alias => ["magazine", "blog", "newspaper"]} do
bind :heading, :to => ["subject", "title"]
bind :body, :to => ["content", "message", "post"]
serialize :except => [ :name ], :skip_instruct => true
end
end
With the <b>serialize</b> option, the script sets the global options for the <b>to_xml</b> calls. In the code above,
we've specified not to include the :name attribute or the xml instructions in the xml return from the <b>to_xml</b>
call.
article.to_xml
...becomes...
#<article>
# <author>...</author>
# <body>...</body>
# <heading>...</heading>
#</article>
The <b>bind</b> options allows us to set the Article attributes with an xml string that has a different schema. For
example, data for our Article class may come from external sources such as blogs, magazines or newspapers with different
xml schemas. With the <b>bind</b> options in the code above, we can import any of the following xml documents into the
Article:
article.from_xml(xml)
#<article>
# <heading>Page Six</heading>
# <body>Content for article</body>
#</article>
#<magazine>
# <title>The Washington Post</title>
# <content>This is the content</content>
#</magazine>
#<blog>
# <title>TechCrunch</title>
# <post>The Post</post>
#</blog>
#<newspaper>
# <title>The Wall Street Journal</title>
# <content>This is the content</content>
# <unknown>There is no field for this element. It will be ignored.</unknown>
# <AUTHOR>Caps will be by default</AUTHOR>
#</newspaper>
== Contact
Author:: Matt Sears
Email:: matt@mattsears.com
Home Page:: http://mattsears.com/code/with_xml/
License:: MIT Licence (http://www.opensource.org/licenses/mit-license.html)








