Skip to content

rails/actionpack-xml_parser

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

actionpack-xml_parser

A XML parameters parser for Action Pack (removed from core in Rails 4.0)

Installation

Include this gem into your Gemfile:

gem 'actionpack-xml_parser'

Parameters parsing rules

The parameters parsing is handled by ActiveSupport::XMLConverter so there may be specific features and subtle differences depending on the chosen XML backend.

Hashes

Basically, each node represents a key. With the following XML:

<person><name>David</name></person>

The resulting parameters will be:

{"person" => {"name" => "David"}}

File attachment

You can specify the type attribute of a node to attach files:

<person>
  <avatar type="file" name="me.jpg" content_type="image/jpg"><!-- File content --></avatar>
</person>

The resulting parameters will include a StringIO object with the given content, name and content type set accordingly:

{"person" => {"avatar" => #<StringIO:...>}}

Arrays

There are several ways to pass an array. You can either specify multiple nodes with the same name:

<person>
  <address city="Chicago"/>
  <address city="Ottawa"/>
</person>

The resulting parameters will be:

{"person" => {"address" => [{"city" => "Chicago"}, {"city" => "Ottawa"}]}}

You can also specify the type attribute of a node and nest child nodes inside:

<person>
  <addresses type="array">
    <address city="Melbourne"/>
    <address city="Paris"/>
  </addresses>
</person>

will result in:

{"person" => {"addresses" => [{"city" => "Melbourne"}, {"city" => "Paris"}]}}

About

XML parameters parser for Action Pack (removed from core in Rails 4.0)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages