Class: QuickClone::Cloner

Inherits:
Object
  • Object
show all
Defined in:
lib/quick_clone/cloner.rb

Constant Summary collapse

ATTRIBUTE_CLASSES =
%w(String Symbol).freeze
ABSOLUTE_EXCLUDE =
[
  :id,
  :created_at,
  :updated_at
].freeze
SINGULAR_ASSOCIATIONS =
[
  :has_one,
  :belongs_to
].freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_object, filter) ⇒ Cloner

Returns a new instance of Cloner.



34
35
36
37
38
39
# File 'lib/quick_clone/cloner.rb', line 34

def initialize(original_object, filter)
  @filter = filter

  @original_object = original_object
  @new_object = original_object.class.new
end

Class Method Details

.clone_from(original_object, filter) ⇒ Object



30
31
32
# File 'lib/quick_clone/cloner.rb', line 30

def self.clone_from(original_object, filter)
  new(original_object, filter).clone
end

Instance Method Details

#cloneObject



41
42
43
44
# File 'lib/quick_clone/cloner.rb', line 41

def clone
  determine_clone(@original_object, @new_object, @filter)
  @new_object
end