Sha256: e3eed59cb68c6ab6e0212a87463a484ed507ed00378e8bc0eb9bccb2088281ef

Contents?: true

Size: 548 Bytes

Versions: 3

Compression:

Stored size: 548 Bytes

Contents

module Slugs
  module ActiveRecord
    module NonTranslatable
      extend ActiveSupport::Concern
      module ClassMethods

        def find_previous_slug(slug)
          where(
            'slug LIKE ? OR slug = ?', "#{slug}-%", slug
          ).order(
            'LENGTH(slug) DESC, slug DESC'
          ).map(&:slug).select{ |r| r =~ /^#{slug}(-\d+)?$/ }.first
        end

        def find_by_slug(id)
          find_by slug: id
        end

        def exists_by_slug?(id)
          exists? slug: id
        end

      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
slugs-1.3.2 lib/slugs/active_record/non_translatable.rb
slugs-1.3.1 lib/slugs/active_record/non_translatable.rb
slugs-1.3.0 lib/slugs/active_record/non_translatable.rb