Sha256: c9375edff854d3b751f97cf43c1ff19c3cda58d953140e3285ace74f1fe413af

Contents?: true

Size: 427 Bytes

Versions: 152

Compression:

Stored size: 427 Bytes

Contents

module Sortable
  extend ActiveSupport::Concern

  # define relationships.
  included do
    # Yes, everyone hates default scopes, but they for sure make sense here.
    # See the thread at https://twitter.com/andrewculver/status/1405900896664313867?s=20 for more context.
    default_scope -> { order(:sort_order) }

    before_create do
      self.sort_order ||= (collection.maximum(:sort_order) || -1) + 1
    end
  end
end

Version data entries

152 entries across 152 versions & 1 rubygems

Version Path
bullet_train-sortable-1.17.1 app/models/concerns/sortable.rb
bullet_train-sortable-1.17.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.16.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.15.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.14.2 app/models/concerns/sortable.rb
bullet_train-sortable-1.14.1 app/models/concerns/sortable.rb
bullet_train-sortable-1.14.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.13.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.12.3 app/models/concerns/sortable.rb
bullet_train-sortable-1.12.2 app/models/concerns/sortable.rb
bullet_train-sortable-1.12.1 app/models/concerns/sortable.rb
bullet_train-sortable-1.12.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.11.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.10.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.9.0 app/models/concerns/sortable.rb
bullet_train-sortable-1.8.5 app/models/concerns/sortable.rb
bullet_train-sortable-1.8.4 app/models/concerns/sortable.rb
bullet_train-sortable-1.8.3 app/models/concerns/sortable.rb
bullet_train-sortable-1.8.2 app/models/concerns/sortable.rb
bullet_train-sortable-1.8.1 app/models/concerns/sortable.rb