class RailsAsyncMigrations::Migration::Unlock
Attributes
method_name[R]
resource_class[R]
Public Class Methods
new(resource_class, method_name)
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 6 def initialize(resource_class, method_name) @resource_class = resource_class @method_name = method_name end
Public Instance Methods
perform()
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 11 def perform restore_original_method end
Private Instance Methods
clone_method_name()
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 29 def clone_method_name "async_#{method_name}" end
method_clone()
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 33 def method_clone temporary_instance.method(clone_method_name).clone end
restore_original_method()
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 17 def restore_original_method if valid? Lock.new(resource_class, method_name).suspend_lock do resource_class.define_method(method_name, &method_clone) end end end
temporary_instance()
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 37 def temporary_instance @temporary_instance ||= resource_class.new end
valid?()
click to toggle source
# File lib/rails_async_migrations/migration/unlock.rb, line 25 def valid? temporary_instance.respond_to? clone_method_name end