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.



20
21
22
23
24
25
# File 'lib/quick_clone/cloner.rb', line 20

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



16
17
18
# File 'lib/quick_clone/cloner.rb', line 16

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

Instance Method Details

#cloneObject



27
28
29
30
# File 'lib/quick_clone/cloner.rb', line 27

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