Class: QueueClassicPlus::InheritableAttribute::Clone

Inherits:
Object
  • Object
show all
Defined in:
lib/queue_classic_plus/inheritable_attr.rb

Class Method Summary collapse

Class Method Details

.call(value, uncloneable = uncloneable()) ⇒ Object

The second argument allows injecting more types.



25
26
27
28
# 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

.uncloneableObject



30
31
32
33
34
# 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