class ActiveRecord::Base
Attributes
locking_enabled[R]
Public Class Methods
enable_locking(options = {})
click to toggle source
# File lib/activerecord/tablelocks/activerecord.rb, line 7 def enable_locking(options = {}) @locking_enabled = true @lock_targets = { :class_names => [*options[:class_names]].compact, :table_names => [*options[:table_names]].compact } end
lock_targets()
click to toggle source
# File lib/activerecord/tablelocks/activerecord.rb, line 15 def lock_targets @lock_targets ||= { :class_names => [], :table_names => [] } end
tables_to_lock()
click to toggle source
# File lib/activerecord/tablelocks/activerecord.rb, line 22 def tables_to_lock return [] unless @locking_enabled [quoted_table_name, *@lock_targets[:table_names].map{|table_name| connection.quote_table_name(table_name) }, *@lock_targets[:class_names].map{|class_name| class_name.constantize.quoted_table_name }].sort.uniq end
Public Instance Methods
add_to_transaction()
click to toggle source
Calls superclass method
# File lib/activerecord/tablelocks/activerecord.rb, line 30 def add_to_transaction if self.class.locking_enabled self.class.connection.lock_tables self.class.tables_to_lock end super end