Skip to content

Instantly share code, notes, and snippets.

@mdkent
Created November 6, 2009 07:18
Show Gist options
  • Save mdkent/227792 to your computer and use it in GitHub Desktop.
Save mdkent/227792 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'deep_merge'
# one level
x = {
:first_level => {
:one => 1
}
}
y = {
:first_level => {
:two => 2
}
}
p x.deep_merge!(y)
# two
x = {
:first_level => {
:second_level => {
:one => 1
}
}
}
y = {
:first_level => {
:second_level => {
:two => 2
}
}
}
p x.deep_merge!(y)
# conflicts, y wins
x = {
:test => {
:one => {
1 => 1,
2 => 1,
3 => 1
}
}
}
y = {
:test => {
:one => {
1 => 2,
3 => 4,
5 => 6
}
}
}
p x.deep_merge!(y)
{:first_level=>{:one=>1, :two=>2}}
{:first_level=>{:second_level=>{:one=>1, :two=>2}}}
{:test=>{:one=>{5=>6, 1=>2, 2=>1, 3=>4}}}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment