module InitCopy::Copyable

The instance variable name is long and obnoxious to reduce conflicts.

@author Jonathan Bradley Whited @since 0.1.0

Public Class Methods

new(*) click to toggle source

@since 0.1.1

Calls superclass method
# File lib/init_copy.rb, line 82
def initialize(*)
  super
  @init_copy_method_name = DEFAULT_COPY_NAME
end

Public Instance Methods

clone(*) click to toggle source
Calls superclass method
# File lib/init_copy.rb, line 97
def clone(*)
  @init_copy_method_name = :clone
  super
end
dup(*) click to toggle source
Calls superclass method
# File lib/init_copy.rb, line 102
def dup(*)
  @init_copy_method_name = :dup
  super
end
initialize_clone(*) click to toggle source
Calls superclass method
# File lib/init_copy.rb, line 87
def initialize_clone(*)
  @init_copy_method_name = :clone
  super
end
initialize_dup(*) click to toggle source
Calls superclass method
# File lib/init_copy.rb, line 92
def initialize_dup(*)
  @init_copy_method_name = :dup
  super
end

Private Instance Methods

copy(var) click to toggle source
# File lib/init_copy.rb, line 109
def copy(var)
  return var.__send__(@init_copy_method_name)
end
safe_copy(var) click to toggle source
# File lib/init_copy.rb, line 113
def safe_copy(var)
  @init_copy_method_name = DEFAULT_COPY_NAME if @init_copy_method_name.nil?

  return var.respond_to?(@init_copy_method_name) ?
    var.__send__(@init_copy_method_name) : var
end