class RailsAsyncMigrations::Mutators::TriggerCallback
Attributes
instance[R]
method_name[R]
Public Class Methods
new(instance, method_name)
click to toggle source
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 6 def initialize(instance, method_name) @instance = instance @method_name = method_name end
Public Instance Methods
perform()
click to toggle source
this method can be called multiple times (we should see what manages this actually) if you use up down and change it'll be called 3 times for example
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 13 def perform unless active_record.allowed_direction? Tracer.new.verbose "Direction `#{direction}` not allowed." return end enqueue_asynchronous unless already_enqueued? check_queue end
Private Instance Methods
active_record()
click to toggle source
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 44 def active_record @active_record ||= Connection::ActiveRecord.new(direction) end
already_enqueued?()
click to toggle source
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 33 def already_enqueued? AsyncSchemaMigration.find_by( version: active_record.current_version, direction: active_record.current_direction ) end
check_queue()
click to toggle source
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 40 def check_queue Workers.new(:check_queue).perform end
direction()
click to toggle source
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 48 def direction if instance.reverting? :down else :up end end
enqueue_asynchronous()
click to toggle source
# File lib/rails_async_migrations/mutators/trigger_callback.rb, line 25 def enqueue_asynchronous AsyncSchemaMigration.create!( version: active_record.current_version, direction: active_record.current_direction, state: 'created' ) end