Skip to content
Uniqable - generates unique and random token before each ActiveRecord::Model instance is created.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.circleci
bin
lib
spec
.gitignore
.rspec
.rubocop.yml
.ruby-gems
.ruby-gemset
.ruby-version
.travis.yml
Gemfile
Gemfile.lock
LICENSE.txt
README.md
Rakefile
uniqable.gemspec

README.md

Uniqable

CircleCI

Ruby on Rails gem for generating a unique, random token in an ActiveRecord model.

Installation

Add this line to your application's Gemfile:

gem 'uniqable'

And then execute:

$ bundle

Or install it yourself as:

$ gem install uniqable

Usage

First include Uniqable concern to your model and then describe columns which you want to propose with uniq token.

  class User < ActiveRecord::Base
    include Uniqable
    
    uniqable :uid, :another_column, :or_another_uid_column
  end

It generates unique and random token before each Model instance is created.

if you want you can use :to_param option to generate automatically #to_param method

  uniqable :uid, :slug, to_param: :uid

anyway you have one more method .find_uniqable which one you can use to find your model record

  MyModel.find_uniqable params[:uid]
  # or
  MyModel.find_uniqable! params[:uid] # this will raise exception ActiveRecord::RecordNotFound if record is absent
  # or you can use numerical ID same time and Uniqable will detect it and tries to find by primary key (as regular id)
  MyModel.find_uniqable params[:id]
  # or
  MyModel.find_uniqable! params[:id]

and another one is .uniqable_fields

  MyModel.uniqable_fields

You can also create your own token callback method and set the field:

  class MyModel
    ...
    def uniqable_uid(field)
      self[field] = 100_000 + rand(999_999)
    end
  end

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/mpakus/uniqable.

License

The gem is available as open source under the terms of the MIT License.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.