Module: DuplicateIt::ClassMethods

Defined in:
lib/duplicate_it.rb

Instance Method Summary collapse

Instance Method Details

#ignorable_associationsObject

Getter method for ignorable_associations



53
54
55
56
# File 'lib/duplicate_it.rb', line 53

def ignorable_associations
  @@ignorable_associations ||= []
  @@ignorable_associations.collect { |x| x.to_sym }
end

#ignorable_attributesObject

Getter method for ignorable_attributes



33
34
35
36
# File 'lib/duplicate_it.rb', line 33

def ignorable_attributes
  @@ignorable_attributes ||= ["id", "type", "created_at", "updated_at"]
  @@ignorable_attributes
end

#ignore_associations_while_duplicating(*args) ⇒ Object

Setter method for ignorable_associations



39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/duplicate_it.rb', line 39

def ignore_associations_while_duplicating(*args)
  @@ignorable_associations = []
  args.each do |argument|

    if self.reflect_on_all_associations(:has_many).collect { |has_many_reflection| has_many_reflection.name }.include?(argument.to_sym)
      @@ignorable_associations << argument.to_s
    else
      Rails.logger.debug "DuplicateIt: Invalid association '#{argument}' in use."
    end
  end
  @@ignorable_associations = @@ignorable_associations.uniq
end

#ignore_attributes_while_duplicating(*args) ⇒ Object

Setter method for ignorable_attributes



20
21
22
23
24
25
26
27
28
29
30
# File 'lib/duplicate_it.rb', line 20

def ignore_attributes_while_duplicating(*args)
  @@ignorable_attributes = []
  args.each do |argument|
    if self.attribute_names.include?(argument.to_s)
      @@ignorable_attributes << argument.to_s
    else
      Rails.logger.debug "DuplicateIt: Invalid attribute '#{argument}' in use."
    end
  end
  @@ignorable_attributes = @@ignorable_attributes.uniq
end