Module: ActsAsSourceable::ActiveRelationMethods

Defined in:
lib/acts_as_sourceable/acts_as_sourceable.rb

Instance Method Summary collapse

Instance Method Details

#add_sources(*sources) ⇒ Object Also known as: add_source



71
72
73
# File 'lib/acts_as_sourceable/acts_as_sourceable.rb', line 71

def add_sources(*sources)
  scoping { @klass.find_each{|record| record.add_sources(*sources) } }
end

#remove_sources(*sources) ⇒ Object Also known as: remove_source



66
67
68
# File 'lib/acts_as_sourceable/acts_as_sourceable.rb', line 66

def remove_sources(*sources)
  scoping { @klass.find_each{|record| record.remove_sources(*sources) } }
end

#unsourceObject



76
77
78
79
80
# File 'lib/acts_as_sourceable/acts_as_sourceable.rb', line 76

def unsource
  # OPTIMIZATION: it's faster to only set the cache column to false if it is true instead of setting all to false indiscriminately
  scoping { @klass.where(@klass.acts_as_sourceable_options[:cache_column] => true).update_all("#{acts_as_sourceable_options[:cache_column]} = false") } if @klass.acts_as_sourceable_options[:cache_column]
  scoping { ActsAsSourceable::RegistryEntry.where("sourceable_type = ? AND sourceable_id IN (#{@klass.select("#{@klass.table_name}.id").to_sql})", @klass.name).delete_all }
end