diff options
author | elijah <elijah@riseup.net> | 2015-05-05 14:57:27 -0700 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2015-05-05 14:57:27 -0700 |
commit | 80f28c3862da72172a55d3e0218faad5cdd46b4b (patch) | |
tree | 5a025b39425154c34f388ef65317154f9743ed7f /lib/leap_cli/core_ext/deep_dup.rb | |
parent | 4b8d17980d2948c5c406ec6c2106123266c4a10b (diff) |
properly bind 'global.services' and 'global.tags' in the right environment in the macros.
Diffstat (limited to 'lib/leap_cli/core_ext/deep_dup.rb')
-rw-r--r-- | lib/leap_cli/core_ext/deep_dup.rb | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/lib/leap_cli/core_ext/deep_dup.rb b/lib/leap_cli/core_ext/deep_dup.rb new file mode 100644 index 0000000..b9cf0d3 --- /dev/null +++ b/lib/leap_cli/core_ext/deep_dup.rb @@ -0,0 +1,53 @@ +unless Hash.method_defined?(:deep_dup) + + class Array + def deep_dup + map { |it| it.deep_dup } + end + end + + class Hash + def deep_dup + each_with_object(dup) do |(key, value), hash| + hash[key.deep_dup] = value.deep_dup + end + end + end + + class String + def deep_dup + self.dup + end + end + + class Integer + def deep_dup + self + end + end + + class Float + def deep_dup + self + end + end + + class TrueClass + def deep_dup + self + end + end + + class FalseClass + def deep_dup + self + end + end + + class NilClass + def deep_dup + self + end + end + +end
\ No newline at end of file |