Class: Hash
- Inherits:
-
Object
- Object
- Hash
- Defined in:
- lib/sin_deep_merge.rb
Instance Method Summary collapse
Instance Method Details
#deep_merge(other) ⇒ Object
97 98 99 100 101 102 103 |
# File 'ext/sin_deep_merge/sin_deep_merge.c', line 97
static VALUE hash_deep_merge(VALUE self, VALUE other) {
if (!plain_hash_p(self)) return deep_merge_fallback(self, other, "deep_merge");
other = rb_convert_type(other, T_HASH, "Hash", "to_hash");
return deep_merge_hashes(deep_merge_hash_dup(self), other, rb_block_given_p());
}
|
#deep_merge!(other) ⇒ Object
87 88 89 90 91 92 93 94 95 |
# File 'ext/sin_deep_merge/sin_deep_merge.c', line 87
static VALUE hash_deep_merge_bang(VALUE self, VALUE other) {
/* Hand over before converting other: a subclass may treat a Hash and a to_hash convertible differently, as merge! is free to. */
if (!plain_hash_p(self)) return deep_merge_fallback(self, other, "deep_merge!");
rb_check_frozen(self);
other = rb_convert_type(other, T_HASH, "Hash", "to_hash");
return deep_merge_hashes(self, other, rb_block_given_p());
}
|