class QueueClassicPlus::InheritableAttribute::Clone

Public Class Methods

call(value, uncloneable=uncloneable()) click to toggle source

The second argument allows injecting more types.

# File lib/queue_classic_plus/inheritable_attr.rb, line 25
def self.call(value, uncloneable=uncloneable())
  uncloneable.each { |klass| return value if value.kind_of?(klass) }
  value.clone
end
uncloneable() click to toggle source
# File lib/queue_classic_plus/inheritable_attr.rb, line 30
def self.uncloneable
  tmp = [Symbol, TrueClass, FalseClass, NilClass]
  tmp += [Fixnum, Bignum] if RUBY_VERSION < '2.4.0'
  tmp
end