free_mutant/lib/mutant/helper.rb

53 lines
1 KiB
Ruby
Raw Normal View History

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
# Check for ruby-1.8 mode
#
# @return [true]
# returns true if running under 1.8 mode
#
# @return [false]
# returns false otherwise
#
# @api private
#
def self.on_18?
RUBY_VERSION == '1.8.7'
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