Really simple JSON and XML parsing, ripped from Merb and Rails.
Clone or download
jnunemaker Merge pull request #59 from bf4/master
remove safe_yaml. Psych.safe_load is fine for modern rubies
Latest commit 4ecf9cf Dec 7, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib remove safe_yaml Jun 6, 2016
script Correct gem name in release script Jun 5, 2013
test Fix for key mangling when using multiple dates Nov 30, 2015
.gitignore Ignore lock file. Jul 16, 2013
.travis.yml Added travis.yml Feb 14, 2015
Gemfile Matchy is not needed anymore. Jul 14, 2014
History updated changelog Feb 21, 2010
LICENSE Initial commit to crack. Mar 29, 2009 Added travis.yml Feb 14, 2015
crack.gemspec Merge pull request #59 from bf4/master Dec 7, 2018


Build Status

Really simple JSON and XML parsing, ripped from Merb and Rails. The XML parser is ripped from Merb and the JSON parser is ripped from Rails. I take no credit, just packaged them for all to enjoy and easily use.


  • ruby 1.8.7
  • ruby 1.9+ (3 failures related to time parsing, would love it if someone could figure them out)

note on patches/pull requests

  • Fork the project.
  • Make your feature addition or bug fix.
  • Add tests for it. This is important so I don't break it in a future version unintentionally.
  • script/test - this will bootstrap and run the tests
  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself in another branch so I can ignore when I pull)
  • Send me a pull request. Bonus points for topic branches.


gem 'crack' # in Gemfile
require 'crack' # for xml and json
require 'crack/json' # for just json
require 'crack/xml' # for just xml


Crack::XML.parse("<tag>This is the contents</tag>")
# => {'tag' => 'This is the contents'}

Crack::JSON.parse('{"tag":"This is the contents"}')
# => {'tag' => 'This is the contents'}


Copyright (c) 2009 John Nunemaker. See LICENSE for details.