Module: ArrayToSelfConvert
- Included in:
- Screening::Data
- Defined in:
- lib/screening.rb
Instance Attribute Summary collapse
-
#deep_clone ⇒ Object
Returns the value of attribute deep_clone.
Class Method Summary collapse
Instance Attribute Details
#deep_clone ⇒ Object
Returns the value of attribute deep_clone.
24 25 26 |
# File 'lib/screening.rb', line 24 def deep_clone @deep_clone end |
Class Method Details
.included(klass) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/screening.rb', line 9 def self.included(klass) methods = ::Array.public_instance_methods(true) - ::Kernel.public_instance_methods(false) methods |= ["to_s","to_a","inspect","==","=~","==="] methods.each do |method| define_method(method) do |*args, &block| res = super(*args, &block) if res.class == Array && method != 'to_a' cloned = deep_clone ? Marshal.load(Marshal.dump(self)) : self.dup cloned.clear.concat(res) else res end end end end |