has_token_id 0.1.0 → 0.2.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.
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.1.0'
13
+ gem 'has_token_id', '~> 0.2.0'
14
14
  ```
15
15
 
16
16
  Now run `bundle install` and you're good to go!
@@ -43,7 +43,14 @@ module HasTokenId
43
43
 
44
44
  # Find by token
45
45
  def find_by_token(token)
46
- send(has_token_id_options[:case_sensitive] ? :find_by_case_sensitive_token : :find_by_case_insensitive_token, token)
46
+ send(has_token_id_options[:case_sensitive] ? :find_by_case_sensitive_token : :find_by_case_insensitive_token, token) rescue nil
47
+ end
48
+
49
+ # Find by token and raise error if no record is found
50
+ def find_by_token!(token)
51
+ record = find_by_token(token)
52
+ raise ActiveRecord::RecordNotFound, "Could not find #{self.name} with token #{token.inspect}" if record.nil?
53
+ record
47
54
  end
48
55
 
49
56
  # Find by token if the first param looks like a token, otherwise use super
@@ -1,3 +1,3 @@
1
1
  module HasTokenId
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -89,14 +89,20 @@ class ConcernTest < MiniTest::Should::TestCase
89
89
 
90
90
  should "find by token" do
91
91
  assert_equal @item, Item.find(@item.token)
92
+ assert_equal @item, Item.find_by_token(@item.token)
93
+ assert_equal @item, Item.find_by_token!(@item.token)
92
94
  end
93
95
 
94
96
  should "find by token even if it's all uppercase" do
95
97
  assert_equal @item, Item.find(@item.token.upcase)
98
+ assert_equal @item, Item.find_by_token(@item.token.upcase)
99
+ assert_equal @item, Item.find_by_token!(@item.token.upcase)
96
100
  end
97
101
 
98
102
  should "find by token even if it's all lowercase" do
99
103
  assert_equal @item, Item.find(@item.token.downcase)
104
+ assert_equal @item, Item.find_by_token(@item.token.downcase)
105
+ assert_equal @item, Item.find_by_token!(@item.token.downcase)
100
106
  end
101
107
 
102
108
  end
@@ -109,17 +115,27 @@ class ConcernTest < MiniTest::Should::TestCase
109
115
 
110
116
  should "find by token" do
111
117
  assert_equal @item, Item.find(@item.token)
118
+ assert_equal @item, Item.find_by_token(@item.token)
119
+ assert_equal @item, Item.find_by_token!(@item.token)
112
120
  end
113
121
 
114
122
  should "not find by token if it's all uppercase" do
115
123
  assert_raises ActiveRecord::RecordNotFound do
116
124
  Item.find(@item.token.upcase)
117
125
  end
126
+ assert_equal nil, Item.find_by_token(@item.token.upcase)
127
+ assert_raises ActiveRecord::RecordNotFound do
128
+ Item.find_by_token!(@item.token.upcase)
129
+ end
118
130
  end
119
131
 
120
- should "find by token even if it's all lowercase" do
132
+ should "not find by token if it's all lowercase" do
133
+ assert_raises ActiveRecord::RecordNotFound do
134
+ Item.find(@item.token.downcase)
135
+ end
136
+ assert_equal nil, Item.find_by_token(@item.token.downcase)
121
137
  assert_raises ActiveRecord::RecordNotFound do
122
- assert Item.find(@item.token.downcase)
138
+ assert Item.find_by_token!(@item.token.downcase)
123
139
  end
124
140
  end
125
141
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: has_token_id
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2012-01-27 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &70098471332260 !ruby/object:Gem::Requirement
16
+ requirement: &70283871501780 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 3.0.0
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70098471332260
24
+ version_requirements: *70283871501780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &70098471329600 !ruby/object:Gem::Requirement
27
+ requirement: &70283871501060 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *70098471329600
35
+ version_requirements: *70283871501060
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rails
38
- requirement: &70098471329120 !ruby/object:Gem::Requirement
38
+ requirement: &70283871500300 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 3.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70098471329120
46
+ version_requirements: *70283871500300
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: dummier
49
- requirement: &70098471328580 !ruby/object:Gem::Requirement
49
+ requirement: &70283871499760 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.3.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70098471328580
57
+ version_requirements: *70283871499760
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: minitest
60
- requirement: &70098471327820 !ruby/object:Gem::Requirement
60
+ requirement: &70283871499140 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.0.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *70098471327820
68
+ version_requirements: *70283871499140
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: minitest_should
71
- requirement: &70098471327140 !ruby/object:Gem::Requirement
71
+ requirement: &70283871497700 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 0.3.1
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *70098471327140
79
+ version_requirements: *70283871497700
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: sqlite3
82
- requirement: &70098471326400 !ruby/object:Gem::Requirement
82
+ requirement: &70283871496720 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,7 +87,7 @@ dependencies:
87
87
  version: 1.3.5
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *70098471326400
90
+ version_requirements: *70283871496720
91
91
  description: Identifies your active records with a random token. For more information,
92
92
  please see the documentation.
93
93
  email:
@@ -128,7 +128,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
128
128
  version: '0'
129
129
  segments:
130
130
  - 0
131
- hash: -556802150054861821
131
+ hash: 2547320390415965778
132
132
  required_rubygems_version: !ruby/object:Gem::Requirement
133
133
  none: false
134
134
  requirements:
@@ -137,7 +137,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
137
137
  version: '0'
138
138
  segments:
139
139
  - 0
140
- hash: -556802150054861821
140
+ hash: 2547320390415965778
141
141
  requirements: []
142
142
  rubyforge_project:
143
143
  rubygems_version: 1.8.10