jt-rails-tokenizable 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b34b2d6dead2986b9fd125b8f80e9915c31d4509
4
- data.tar.gz: 05c49cd2b91dfe7f0dfc228312e3d980271f8c64
3
+ metadata.gz: d0eef98f324c8d4847fe31e46aaf7f6b9506df6a
4
+ data.tar.gz: 0f6bab123361ff47b53bb2bb5df11b0dd70a0d09
5
5
  SHA512:
6
- metadata.gz: a2998e9dcaf9ce5ef1f69206b39937b9f702bf80938d1c2fc52fb02eb69c246c8a9c4e875874d2654e20083910a6f299d0b67c689b44cf9b0067c203fb819570
7
- data.tar.gz: d8b2fa2cfa9845309616701d3b83f3f99c14e56bc6d360ed054b27ec874cef313ad2d5f28955996a09ab6dd847dd765e9b83357fa11a6a3e15bacb5d0b5b3651
6
+ metadata.gz: c7ff3069f7d45d0680200253d9149e0fa1ac4f3eb4ce236b1350e8ff100c5b0b189748f71b984e9e76fcd4bddca5b1b4ca1fd2c151c323981272bf7b22d0dede
7
+ data.tar.gz: 0747fde412cc75333e3049dfd9c1086d3c11d9ff66ca89c030cb5caab25ae40badc872ce5767ef673230b1ed95336653a149410b7cf1cba366e2ad942e7f59c2
data/README.md CHANGED
@@ -23,10 +23,13 @@ class User < ActiveRecord::Base
23
23
  include JT::Rails::Tokenizable
24
24
 
25
25
  tokenize :my_token_field
26
+ tokenize :another_token_field, size: 20, validations: false
26
27
  ...
27
28
  end
28
29
  ```
29
30
 
31
+ You change the length of the token (128 by default) and disable the presence and uniqueness validations.
32
+
30
33
  A new unique token is generated at the creation of the model. You can generate a new token with:
31
34
 
32
35
  ```ruby
@@ -3,7 +3,7 @@ Gem::Specification.new do |s|
3
3
  s.summary = "Token generation for ActiveRecord models in Ruby On Rails"
4
4
  s.description = "Generate tokens for ActiveRecord models in Ruby On Rails"
5
5
  s.homepage = 'https://github.com/jonathantribouharet/jt-rails-tokenizable'
6
- s.version = '1.0.1'
6
+ s.version = '1.0.2'
7
7
  s.files = `git ls-files`.split("\n")
8
8
  s.require_paths = ['lib']
9
9
  s.authors = ['Jonathan TRIBOUHARET']
@@ -10,29 +10,33 @@ module JT::Rails::Tokenizable
10
10
  before_validation :generate_tokens, on: :create
11
11
 
12
12
  mattr_accessor :jt_rails_token_fields do
13
- []
13
+ {}
14
14
  end
15
15
  end
16
16
 
17
17
  module ClassMethods
18
18
 
19
- def tokenize(field)
20
- jt_rails_token_fields << field
19
+ def tokenize(field, options = {})
20
+ jt_rails_token_fields[field.to_sym] = options
21
21
 
22
- validates field, presence: true, uniqueness: true
22
+ if options.fetch(:valiations, true)
23
+ validates field, presence: true, uniqueness: true
24
+ end
23
25
  end
24
26
 
25
27
  end
26
28
 
27
29
  def generate_tokens
28
- for field in jt_rails_token_fields
30
+ for field in jt_rails_token_fields.keys
29
31
  generate_new_token(field)
30
32
  end
31
33
  end
32
34
 
33
35
  def generate_new_token(field)
34
- self[field] = loop do
35
- random_token = SecureRandom.hex(128)
36
+ size = jt_rails_token_fields[field.to_sym].fetch(:size, 128)
37
+
38
+ self[field.to_sym] = loop do
39
+ random_token = SecureRandom.hex(size)
36
40
  break random_token unless self.class.exists?(field => random_token)
37
41
  end
38
42
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jt-rails-tokenizable
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan TRIBOUHARET
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-08 00:00:00.000000000 Z
11
+ date: 2015-07-10 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Generate tokens for ActiveRecord models in Ruby On Rails
14
14
  email: jonathan.tribouharet@gmail.com