module ActiveRecordCloning

Public Class Methods

included(base) click to toggle source
# File lib/rails_core_extensions/active_record_cloning.rb, line 2
def self.included(base)
  base.extend(ClassMethods)
end

Public Instance Methods

clone_excluding(excludes=[]) click to toggle source
# File lib/rails_core_extensions/active_record_cloning.rb, line 61
def clone_excluding(excludes=[])
  method = ActiveRecord::Base.instance_methods(false).include?(:clone) ? :clone : :dup
  cloned = send(method)
  excludes ||= []
  excludes = [excludes] unless excludes.is_a?(Enumerable)
  self.class.exclude_attributes(cloned, excludes)
  cloned
end