free_mutant/lib/mutant/helper.rb
2012-12-07 14:36:23 +01:00

38 lines
797 B
Ruby

module Mutant
# Module for support methods
#
# They would normally be defined on the root namespace.
# But it is easier to create the Zombie when there are no
# References to the root namespace name within the library.
#
module Helper
# Return deep clone of object
#
# @param [Object] object
#
# @return [Object] object
#
# @api private
#
def self.deep_clone(object)
Marshal.load(Marshal.dump(object))
end
# Extract option from options hash
#
# @param [Hash] options
# @param [Object] key
#
# @return [Object] value
#
# @api private
#
def self.extract_option(options, key)
options.fetch(key) do
raise ArgumentError,"Missing #{key.inspect} in options"
end
end
end
end