has_token_id 0.4.3 → 0.5.0
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 +4 -4
- data/.travis.yml +0 -1
- data/README.md +14 -12
- data/has_token_id.gemspec +4 -4
- data/lib/has_token_id/concern.rb +7 -6
- data/lib/has_token_id/table_definition.rb +5 -4
- data/lib/has_token_id/version.rb +1 -1
- data/test/dummy_hooks/before_migrate.rb +1 -1
- data/test/unit/table_definition_test.rb +7 -8
- metadata +17 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4315d7366da0c89f4949bd497cca7684d9241cfb
|
4
|
+
data.tar.gz: 867530c0a3ce60f9e4e5fbb05fba4b2f3ac03958
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fb22d7f9a1c1cb0274659ed9f9d8c37a0367f9616e2f975b28dd347f7a0518f27579a395cd94794930eb6bc8be1871e36c6d0798671a71df3a517a5c8094aa96
|
7
|
+
data.tar.gz: 37b180a8ede2b1dbf6723c6ad86acac554cd56608621375896139d2904487c1c0274e20388291a44919d0a2d75cc116c75d77def0712b97ba86504d334a5e2d9
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Installation
|
|
10
10
|
Add has_token_id to your Gemfile like so:
|
11
11
|
|
12
12
|
```ruby
|
13
|
-
gem 'has_token_id', '~> 0.
|
13
|
+
gem 'has_token_id', '~> 0.5.0'
|
14
14
|
```
|
15
15
|
|
16
16
|
Now run `bundle install` and you're good to go!
|
@@ -55,7 +55,7 @@ That's basically it! Your Items will now know to use their token as their identi
|
|
55
55
|
Try it out in your `rails console`
|
56
56
|
|
57
57
|
```ruby
|
58
|
-
@item = Item.create(:
|
58
|
+
@item = Item.create(name: "Tokenz!")
|
59
59
|
#<Item id: 1, token: "Iccfa4bb1613e80097ba9495", name: "Tokenz!", created_at: "2012-01-26 20:17:13", updated_at: "2012-01-26 20:17:13">
|
60
60
|
@item.to_param
|
61
61
|
# Iccfa4bb1613e80097ba9495
|
@@ -73,11 +73,13 @@ Options
|
|
73
73
|
You can customize has_token_id by setting a few options. Here's the defaults:
|
74
74
|
|
75
75
|
```ruby
|
76
|
-
|
77
|
-
:
|
78
|
-
:
|
79
|
-
:
|
80
|
-
:
|
76
|
+
{
|
77
|
+
prefix: nil, # if nil use first letter of class name
|
78
|
+
length: 24,
|
79
|
+
short_token_length: 8,
|
80
|
+
param_name: 'token',
|
81
|
+
case_sensitive: false
|
82
|
+
}
|
81
83
|
```
|
82
84
|
|
83
85
|
|
@@ -91,8 +93,8 @@ HasTokenId.default_token_options[:prefix] = "OMG"
|
|
91
93
|
|
92
94
|
# for multiple options
|
93
95
|
HasTokenId.default_token_options.merge!(
|
94
|
-
:
|
95
|
-
:
|
96
|
+
case_sensitive: true,
|
97
|
+
length: 8
|
96
98
|
)
|
97
99
|
```
|
98
100
|
|
@@ -101,11 +103,11 @@ Options can also be set on a per-class level:
|
|
101
103
|
|
102
104
|
```ruby
|
103
105
|
class List < ActiveRecord::Base
|
104
|
-
has_token_id :
|
106
|
+
has_token_id prefix: "LI", length: 10
|
105
107
|
end
|
106
108
|
|
107
109
|
class Item < ActiveRecord::Base
|
108
|
-
has_token_id :
|
110
|
+
has_token_id prefix: "ITM"
|
109
111
|
end
|
110
112
|
```
|
111
113
|
|
@@ -154,4 +156,4 @@ bundle exec rake
|
|
154
156
|
License
|
155
157
|
------------------------------------------------------------------------------
|
156
158
|
|
157
|
-
Copyright (c) 2011 -
|
159
|
+
Copyright (c) 2011 - 2018 Spencer Steffen and Citrus, released under the New BSD License All rights reserved.
|
data/has_token_id.gemspec
CHANGED
@@ -19,12 +19,12 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
-
s.add_dependency('activerecord', '
|
23
|
-
s.add_dependency('activesupport', '
|
22
|
+
s.add_dependency('activerecord', '>= 4')
|
23
|
+
s.add_dependency('activesupport', '>= 4')
|
24
24
|
|
25
|
-
s.add_development_dependency('rails', '
|
25
|
+
s.add_development_dependency('rails', '>= 4')
|
26
26
|
s.add_development_dependency('dummier', '~> 0.3')
|
27
|
-
s.add_development_dependency('minitest', '~> 2
|
27
|
+
s.add_development_dependency('minitest', '~> 4.2')
|
28
28
|
s.add_development_dependency('minitest_should', '~> 0.3')
|
29
29
|
s.add_development_dependency('sqlite3', '~> 1.3')
|
30
30
|
|
data/lib/has_token_id/concern.rb
CHANGED
@@ -5,8 +5,8 @@ module HasTokenId
|
|
5
5
|
base.send(:extend, ClassMethods)
|
6
6
|
base.send(:include, InstanceMethods)
|
7
7
|
base.class_eval do
|
8
|
-
validates :token, :
|
9
|
-
before_validation :generate_token, :
|
8
|
+
validates :token, presence: true, uniqueness: true
|
9
|
+
before_validation :generate_token, on: :create, if: proc{|record| record.token.nil? }
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -14,10 +14,11 @@ module HasTokenId
|
|
14
14
|
|
15
15
|
# Default options as well as an overwrite point so you can assign different defaults to different models
|
16
16
|
def default_token_options
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
17
|
+
@default_token_options ||= begin
|
18
|
+
options = HasTokenId.default_token_options
|
19
|
+
options[:prefix] ||= self.name[0, 1]
|
20
|
+
options
|
21
|
+
end
|
21
22
|
end
|
22
23
|
|
23
24
|
# Generates a unique token based on the options
|
@@ -2,12 +2,13 @@ require 'active_record/connection_adapters/abstract/schema_definitions'
|
|
2
2
|
|
3
3
|
module HasTokenId
|
4
4
|
module TableDefinition
|
5
|
-
|
5
|
+
|
6
6
|
def token(*args)
|
7
|
-
options = { :
|
8
|
-
|
7
|
+
options = { length: HasTokenId.default_token_options[:length] }.merge(args.extract_options!)
|
8
|
+
puts "opeiont: #{options}"
|
9
|
+
column(:token, :string, options.merge(nil: false))
|
9
10
|
end
|
10
|
-
|
11
|
+
|
11
12
|
end
|
12
13
|
end
|
13
14
|
|
data/lib/has_token_id/version.rb
CHANGED
@@ -1,26 +1,25 @@
|
|
1
1
|
require "test_helper"
|
2
2
|
|
3
3
|
class TableDefinitionTest < MiniTest::Should::TestCase
|
4
|
-
|
4
|
+
|
5
5
|
setup do
|
6
|
-
@
|
7
|
-
@definition = ActiveRecord::ConnectionAdapters::TableDefinition.new(@migration)
|
6
|
+
@definition = ActiveRecord::ConnectionAdapters::TableDefinition.new({}, "items", false, {})
|
8
7
|
end
|
9
|
-
|
8
|
+
|
10
9
|
should "include token as a migration table definition" do
|
11
10
|
assert @definition.respond_to?(:token)
|
12
11
|
end
|
13
|
-
|
12
|
+
|
14
13
|
should "token definition should be the same as a string column named token" do
|
15
14
|
capture(:stdout) {
|
16
15
|
assert_equal @definition.column(:token, :string), @definition.token
|
17
16
|
}
|
18
17
|
end
|
19
|
-
|
18
|
+
|
20
19
|
should "token definition should include custom options" do
|
21
20
|
capture(:stdout) {
|
22
|
-
assert_equal @definition.column(:token, :string, :
|
21
|
+
assert_equal @definition.column(:token, :string, length: 8), @definition.token(length: 8)
|
23
22
|
}
|
24
23
|
end
|
25
|
-
|
24
|
+
|
26
25
|
end
|
metadata
CHANGED
@@ -1,57 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: has_token_id
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Spencer Steffen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activerecord
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: activesupport
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '4'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '4'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rails
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '4'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '4'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: dummier
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +72,14 @@ dependencies:
|
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: '2
|
75
|
+
version: '4.2'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: '2
|
82
|
+
version: '4.2'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: minitest_should
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -156,7 +156,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
156
156
|
version: '0'
|
157
157
|
requirements: []
|
158
158
|
rubyforge_project:
|
159
|
-
rubygems_version: 2.
|
159
|
+
rubygems_version: 2.6.11
|
160
160
|
signing_key:
|
161
161
|
specification_version: 4
|
162
162
|
summary: Identifies your active records with a random token.
|