jt-rails-tokenizable 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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