jt-rails-tokenizable 1.0.2 → 1.0.3

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: d0eef98f324c8d4847fe31e46aaf7f6b9506df6a
4
- data.tar.gz: 0f6bab123361ff47b53bb2bb5df11b0dd70a0d09
3
+ metadata.gz: add6e119a5bd90c64ce469c24e98637392db364d
4
+ data.tar.gz: 89fcebd029abb8c431a6fb3d436f8613045026da
5
5
  SHA512:
6
- metadata.gz: c7ff3069f7d45d0680200253d9149e0fa1ac4f3eb4ce236b1350e8ff100c5b0b189748f71b984e9e76fcd4bddca5b1b4ca1fd2c151c323981272bf7b22d0dede
7
- data.tar.gz: 0747fde412cc75333e3049dfd9c1086d3c11d9ff66ca89c030cb5caab25ae40badc872ce5767ef673230b1ed95336653a149410b7cf1cba366e2ad942e7f59c2
6
+ metadata.gz: c0b54c8646203c025ad086468028605e64414d6e3e222fd4c3fe8e9891e67af037b0f20b474d48222a1f1fbacf81047d84aaf7308cbd8126932fbdea69a48128
7
+ data.tar.gz: 26dc0ed2965d79a25bc991baef54b881c5b84d4537ae8e1335700bc9fed9973665f57975cf908506b9069bb0c735a2ce3109a688b2e8858dcbd899b5dda32ad4
data/README.md CHANGED
@@ -16,12 +16,8 @@ Include the gem in your Gemfile:
16
16
 
17
17
  ### Basic usage
18
18
 
19
- Include `JT::Rails::Tokenizable` in your model:
20
-
21
19
  ```ruby
22
20
  class User < ActiveRecord::Base
23
- include JT::Rails::Tokenizable
24
-
25
21
  tokenize :my_token_field
26
22
  tokenize :another_token_field, size: 20, validations: false
27
23
  ...
@@ -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.2'
6
+ s.version = '1.0.3'
7
7
  s.files = `git ls-files`.split("\n")
8
8
  s.require_paths = ['lib']
9
9
  s.authors = ['Jonathan TRIBOUHARET']
@@ -1,44 +1,18 @@
1
+ require 'tokenize'
2
+
1
3
  module JT
2
4
  module Rails
3
5
  end
4
6
  end
5
7
 
6
8
  module JT::Rails::Tokenizable
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
- before_validation :generate_tokens, on: :create
11
-
12
- mattr_accessor :jt_rails_token_fields do
13
- {}
14
- end
15
- end
16
-
17
- module ClassMethods
18
9
 
19
- def tokenize(field, options = {})
20
- jt_rails_token_fields[field.to_sym] = options
21
-
22
- if options.fetch(:valiations, true)
23
- validates field, presence: true, uniqueness: true
10
+ class Railtie < Rails::Railtie
11
+ initializer 'jt_rails_tokenizable.insert_into_active_record' do |app|
12
+ ActiveSupport.on_load :active_record do
13
+ ActiveRecord::Base.send(:include, JT::Rails::Tokenizable::Tokenize)
24
14
  end
25
15
  end
26
16
 
27
17
  end
28
-
29
- def generate_tokens
30
- for field in jt_rails_token_fields.keys
31
- generate_new_token(field)
32
- end
33
- end
34
-
35
- def generate_new_token(field)
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)
40
- break random_token unless self.class.exists?(field => random_token)
41
- end
42
- end
43
-
44
18
  end
data/lib/tokenize.rb ADDED
@@ -0,0 +1,39 @@
1
+ module JT::Rails::Tokenizable::Tokenize
2
+ extend ActiveSupport::Concern
3
+
4
+ included do
5
+ before_validation :generate_tokens, on: :create
6
+
7
+ mattr_accessor :jt_rails_token_fields do
8
+ {}
9
+ end
10
+ end
11
+
12
+ module ClassMethods
13
+
14
+ def tokenize(field, options = {})
15
+ jt_rails_token_fields[field.to_sym] = options
16
+
17
+ if options.fetch(:valiations, true)
18
+ validates field, presence: true, uniqueness: true
19
+ end
20
+ end
21
+
22
+ end
23
+
24
+ def generate_tokens
25
+ for field in jt_rails_token_fields.keys
26
+ generate_new_token(field)
27
+ end
28
+ end
29
+
30
+ def generate_new_token(field)
31
+ size = jt_rails_token_fields[field.to_sym].fetch(:size, 128)
32
+
33
+ self[field.to_sym] = loop do
34
+ random_token = SecureRandom.hex(size)
35
+ break random_token unless self.class.exists?(field => random_token)
36
+ end
37
+ end
38
+
39
+ 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.2
4
+ version: 1.0.3
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-10 00:00:00.000000000 Z
11
+ date: 2015-07-15 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
@@ -22,6 +22,7 @@ files:
22
22
  - README.md
23
23
  - jt-rails-tokenizable.gemspec
24
24
  - lib/jt-rails-tokenizable.rb
25
+ - lib/tokenize.rb
25
26
  homepage: https://github.com/jonathantribouharet/jt-rails-tokenizable
26
27
  licenses:
27
28
  - MIT