README.md in nori-1.1.5 vs README.md in nori-2.0.0
- old
+ new
@@ -1,22 +1,23 @@
-Nori [![Build Status](https://secure.travis-ci.org/rubiii/nori.png)](http://travis-ci.org/rubiii/nori)
+Nori [![Build Status](https://secure.travis-ci.org/savonrb/nori.png)](http://travis-ci.org/savonrb/nori)
====
Really simple XML parsing ripped from Crack which ripped it from Merb.
Nori was created to bypass the stale development of Crack, improve its XML parser
and fix certain issues.
``` ruby
-Nori.parse("<tag>This is the contents</tag>")
+parser = Nori.new
+parser.parse("<tag>This is the contents</tag>")
# => { 'tag' => 'This is the contents' }
```
Nori supports pluggable parsers and ships with both REXML and Nokogiri implementations.
It defaults to REXML, but you can change it to use Nokogiri via:
``` ruby
-Nori.parser = :nokogiri
+Nori.new(:parser => :nokogiri) # or :rexml
```
Make sure Nokogiri is in your LOAD_PATH when parsing XML, because Nori tries to load it
when it's needed.
@@ -31,34 +32,32 @@
to `Time`, `Date` and `DateTime` objects.
You can disable this feature via:
``` ruby
-Nori.advanced_typecasting = false
+Nori.new(:advanced_typecasting => false)
```
Namespaces
----------
Nori can strip the namespaces from your XML tags. This feature might raise
problems and is therefore disabled by default. Enable it via:
``` ruby
-Nori.strip_namespaces = true
+Nori.new(:strip_namespaces => true)
```
XML tags -> Hash keys
---------------------
Nori lets you specify a custom formula to convert XML tags to Hash keys.
Let me give you an example:
``` ruby
-Nori.configure do |config|
- config.convert_tags_to { |tag| tag.snake_case.to_sym }
-end
+parser = Nori.new(:convert_tags_to => lambda { |tag| tag.snake_case.to_sym })
xml = '<userResponse><accountStatus>active</accountStatus></userResponse>'
-Nori.parse(xml) # => { :user_response => { :account_status => "active" }
+parser.parse(xml) # => { :user_response => { :account_status => "active" }
```