Sha256: 2efa43351329706a967b53b3c290b8dd59e90248b3d5c60d0cf2157f751e0da6

Contents?: true

Size: 992 Bytes

Versions: 9

Compression:

Stored size: 992 Bytes

Contents

# frozen_string_literal: true

module ActiveRecord::Acts::List::SequentialUpdatesMethodDefiner #:nodoc:
  def self.call(caller_class, column, sequential_updates_option)
    caller_class.class_eval do
      define_method :sequential_updates? do
        if !defined?(@sequential_updates)
          if sequential_updates_option.nil?
            table_exists =
              if active_record_version_is?('>= 5')
                caller_class.connection.data_source_exists?(caller_class.table_name)
              else
                caller_class.connection.table_exists?(caller_class.table_name)
              end
            index_exists = caller_class.connection.index_exists?(caller_class.table_name, column, unique: true)
            @sequential_updates = table_exists && index_exists
          else
            @sequential_updates = sequential_updates_option
          end
        else
          @sequential_updates
        end
      end

      private :sequential_updates?
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
acts_as_list-1.2.2 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.2.1 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.2.0 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.1.0 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.0.4 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.0.3 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.0.2 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.0.1 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb
acts_as_list-1.0.0 lib/acts_as_list/active_record/acts/sequential_updates_method_definer.rb