Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

irons

Package Overview
Dependencies
Maintainers
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

irons

  • 2.4.0
  • Rubygems
  • Socket score

Version published
Maintainers
3
Created
Source

Irons

Build Status Gem Version Code Climate Coverage Status

Really simple XML parsing ripped from Crack which ripped it from Merb.
Irons was created to bypass the stale development of Crack, improve its XML parser
and fix certain issues.

parser = Irons.new
parser.parse("<tag>This is the contents</tag>")
# => { 'tag' => 'This is the contents' }

Irons supports pluggable parsers and ships with both REXML and Nokogiri implementations.
It defaults to Nokogiri since v2.0.0, but you can change it to use REXML via:

Irons.new(:parser => :rexml)  # or :nokogiri

Make sure Nokogiri is in your LOAD_PATH when parsing XML, because Irons tries to load it
when it's needed.

Typecasting

Besides regular typecasting, Irons features somewhat "advanced" typecasting:

  • "true" and "false" String values are converted to TrueClass and FalseClass.
  • String values matching xs:time, xs:date and xs:dateTime are converted to Time, Date and DateTime objects.

You can disable this feature via:

Irons.new(:advanced_typecasting => false)

Namespaces

Irons can strip the namespaces from your XML tags. This feature might raise
problems and is therefore disabled by default. Enable it via:

Irons.new(:strip_namespaces => true)

XML tags -> Hash keys

Irons lets you specify a custom formula to convert XML tags to Hash keys.
Let me give you an example:

parser = Irons.new(:convert_tags_to => lambda { |tag| tag.snakecase.to_sym })

xml = '<userResponse><accountStatus>active</accountStatus></userResponse>'
parser.parse(xml)  # => { :user_response => { :account_status => "active" }

Dashes and underscores

Irons will automatically convert dashes in tag names to underscores. For example:

parser = Irons.new
parser.parse('<any-tag>foo bar</any-tag>')  # => { "any_tag" => "foo bar" }

You can control this behavior with the :convert_dashes_to_underscores option:

parser = Irons.new(:convert_dashes_to_underscores => false)
parser.parse('<any-tag>foo bar</any-tag>') # => { "any-tag" => "foo bar" }

FAQs

Package last updated on 01 Apr 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc