Skip to content

mpakus/uniqable

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
bin
 
 
lib
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

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.

About

Uniqable - generates unique and random token before each ActiveRecord::Model instance is created.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published