Sha256: 562565de92173592e04c202ab7e5f0c87a548b4cffcbffa354c97f97dcdbdcf0

Contents?: true

Size: 1.68 KB

Versions: 1

Compression:

Stored size: 1.68 KB

Contents

pretty_id
=======

[![Travis][0]](https://travis-ci.org/dobtco/pretty_id)
[![Code Climate][1]](https://codeclimate.com/github/dobtco/pretty_id)
[![Coveralls][2]](https://coveralls.io/r/dobtco/pretty_id)
[![RubyGem][3]](http://rubygems.org/gems/pretty_id)

Add random, unique "pretty" ids to your ActiveRecord models.

## Usage

#### 1. Install the gem
```ruby
gem 'pretty_id'
```

#### 2. Add a `pretty_id` column (and index!) to your model
```ruby
add_column :books, :pretty_id, :string
add_index :books, :pretty_id
```

#### 3. Add `has_pretty_id` to your model
```ruby
class Book < ActiveRecord::Base
  has_pretty_id
end
```

## Generation methods

#### :pretty (default)
```ruby
chars = ('a'..'z').to_a + ('A'..'Z').to_a + ('0'..'9').to_a
Array.new(options[:length]) { chars[rand(chars.length)] }.join
```

#### :urlsafe_base64
```ruby
SecureRandom.urlsafe_base64(options[:length] / 1.333)
```

## Options
```ruby
class Book < ActiveRecord::Base
  has_pretty_id method: :urlsafe_base64,          # default: :pretty
                column: :another_string_column,   # default: :pretty_id
                length: 12,                       # default: 8
                uniq: false                       # default: true
end
```

## Instance methods

#### `#regenerate_#{column_name}`
```ruby
user = User.create
user.pretty_id # => 'a0923sdf'
user.regenerate_pretty_id
user.pretty_id # => 'lf91fs9s'
```

#### `#regenerate_#{column_name}!`
Same as above, but also calls `save` on the record


[0]: https://img.shields.io/travis/dobtco/pretty_id.svg
[1]: https://img.shields.io/codeclimate/github/dobtco/pretty_id.svg
[2]: https://img.shields.io/coveralls/dobtco/pretty_id.svg
[3]: https://img.shields.io/gem/v/pretty_id.svg

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pretty_id-0.0.3 README.md