token_action 0.0.1

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.
Files changed (65) hide show
  1. data/LICENSE +20 -0
  2. data/README.md +143 -0
  3. data/Rakefile +16 -0
  4. data/app/controllers/token_action/application_controller.rb +4 -0
  5. data/app/controllers/token_action/tokens_controller.rb +73 -0
  6. data/config/locales/en.yml +10 -0
  7. data/config/routes.rb +3 -0
  8. data/lib/generators/active_record/templates/migration.rb +15 -0
  9. data/lib/generators/active_record/token_action_generator.rb +25 -0
  10. data/lib/generators/mongoid/token_action_generator.rb +7 -0
  11. data/lib/generators/templates/README +10 -0
  12. data/lib/generators/templates/token_action.rb +25 -0
  13. data/lib/generators/token_action_generator.rb +35 -0
  14. data/lib/token_action/engine.rb +5 -0
  15. data/lib/token_action/mixins/model.rb +24 -0
  16. data/lib/token_action/mixins/token_generator.rb +19 -0
  17. data/lib/token_action/orm/active_record.rb +10 -0
  18. data/lib/token_action/orm/mongoid.rb +34 -0
  19. data/lib/token_action/version.rb +3 -0
  20. data/lib/token_action.rb +71 -0
  21. data/spec/controllers/token_action/tokens_controller_spec.rb +172 -0
  22. data/spec/dummy/Rakefile +7 -0
  23. data/spec/dummy/app/active_record/cat.rb +18 -0
  24. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  25. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  26. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  27. data/spec/dummy/app/controllers/hello_controller.rb +25 -0
  28. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  29. data/spec/dummy/app/mongoid/cat.rb +22 -0
  30. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  31. data/spec/dummy/config/application.rb +71 -0
  32. data/spec/dummy/config/boot.rb +15 -0
  33. data/spec/dummy/config/database.yml +18 -0
  34. data/spec/dummy/config/environment.rb +5 -0
  35. data/spec/dummy/config/environments/development.rb +37 -0
  36. data/spec/dummy/config/environments/production.rb +67 -0
  37. data/spec/dummy/config/environments/test.rb +41 -0
  38. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  39. data/spec/dummy/config/initializers/session_store.rb +8 -0
  40. data/spec/dummy/config/initializers/token_action.rb +5 -0
  41. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  42. data/spec/dummy/config/locales/en.yml +5 -0
  43. data/spec/dummy/config/locales/token_action.en.yml +26 -0
  44. data/spec/dummy/config/mongoid.yml +68 -0
  45. data/spec/dummy/config/routes.rb +9 -0
  46. data/spec/dummy/config.ru +4 -0
  47. data/spec/dummy/db/development.sqlite3 +0 -0
  48. data/spec/dummy/db/migrate/20130104151630_create_token_action_tokens.rb +15 -0
  49. data/spec/dummy/db/migrate/20130104201018_create_cats.rb +7 -0
  50. data/spec/dummy/log/development.log +16 -0
  51. data/spec/dummy/log/test.log +4739 -0
  52. data/spec/dummy/public/404.html +26 -0
  53. data/spec/dummy/public/422.html +26 -0
  54. data/spec/dummy/public/500.html +25 -0
  55. data/spec/dummy/public/favicon.ico +0 -0
  56. data/spec/dummy/script/rails +6 -0
  57. data/spec/factories.rb +6 -0
  58. data/spec/routing/token_action/tokens_routing_spec.rb +33 -0
  59. data/spec/spec_helper.rb +94 -0
  60. data/spec/token_action/mixins/model_spec.rb +13 -0
  61. data/spec/token_action/mixins/token_generator_spec.rb +11 -0
  62. data/spec/token_action/orm/active_record_spec.rb +6 -0
  63. data/spec/token_action/orm/mongoid_spec.rb +6 -0
  64. data/spec/token_action_spec.rb +67 -0
  65. metadata +394 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
data/spec/factories.rb ADDED
@@ -0,0 +1,6 @@
1
+ # https://github.com/thoughtbot/factory_girl/blob/master/GETTING_STARTED.md
2
+ FactoryGirl.define do
3
+ factory :token, :class => TokenAction::Token do
4
+ kind 'Cat'
5
+ end
6
+ end
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ describe TokenAction::TokensController do
4
+ describe 'routing' do
5
+ before :each do
6
+ @routes = TokenAction::Engine.routes
7
+ end
8
+
9
+ it 'routes to #redeem with default path' do
10
+ get('/tokens/1/redeem').should route_to('token_action/tokens#redeem', :token =>'1', :path =>'redeem')
11
+ end
12
+
13
+ it 'routes to #redeem with custom path' do
14
+ get('/tokens/1/unsubscribe').should route_to('token_action/tokens#redeem', :token =>'1', :path =>'unsubscribe')
15
+ end
16
+
17
+ it 'routes to #redeem with long path' do
18
+ get('/tokens/1/a/b/c').should route_to('token_action/tokens#redeem', :token =>'1', :path =>'a/b/c')
19
+ end
20
+
21
+ it 'routes to #redeem with trailing slash' do
22
+ get('/tokens/1/redeem/').should route_to('token_action/tokens#redeem', :token =>'1', :path =>'redeem')
23
+ end
24
+
25
+ it 'does not route with empty token' do
26
+ get('/tokens//redeem').should_not be_routable
27
+ end
28
+
29
+ it 'does not route with empty path' do
30
+ get('/tokens/1/').should_not be_routable
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,94 @@
1
+ require 'spork'
2
+
3
+ Spork.prefork do
4
+ ENV["RAILS_ENV"] ||= 'test'
5
+
6
+ # @see https://github.com/plataformatec/devise/blob/master/test/test_helper.rb
7
+ TOKEN_ACTION_ORM = (ENV['TOKEN_ACTION_ORM'] || :active_record).to_sym
8
+ puts "\n==> Running specs with #{TOKEN_ACTION_ORM}"
9
+
10
+ require 'rails/application'
11
+ # Prevent Spork from caching the routes.
12
+ Spork.trap_method(Rails::Application::RoutesReloader, :reload!)
13
+ # Prevent Spork from caching the engine's classes (see below).
14
+ Spork.trap_method(Rails::Application, :eager_load!)
15
+
16
+ require File.expand_path("../dummy/config/environment.rb", __FILE__)
17
+ require 'rspec/rails'
18
+
19
+ # Requires supporting ruby files with custom matchers and macros, etc,
20
+ # in spec/support/ and its subdirectories.
21
+ Dir[File.expand_path("../support/**/*.rb", __FILE__)].each {|f| require f}
22
+
23
+ # Prevent Spork from caching the engine's classes (see above).
24
+ Rails.application.railties.all do |railtie|
25
+ unless railtie.respond_to?(:engine_name) && railtie.engine_name == 'token_action'
26
+ railtie.eager_load!
27
+ end
28
+ end
29
+
30
+ require 'database_cleaner'
31
+ require 'factory_girl_rails'
32
+
33
+ case TOKEN_ACTION_ORM
34
+ when :active_record
35
+ require 'shoulda/matchers'
36
+ when :mongoid
37
+ require 'mongoid-rspec'
38
+
39
+ # Create non-engine indexes.
40
+ Rails.application.railties.engines.each do |engine|
41
+ unless engine.engine_name == 'popolo'
42
+ engine.paths["app/models"].expanded.each do |path|
43
+ Rails::Mongoid.create_indexes("#{path}/**/*.rb")
44
+ end
45
+ end
46
+ end
47
+ end
48
+
49
+ RSpec.configure do |config|
50
+ if TOKEN_ACTION_ORM == :mongoid
51
+ config.include Mongoid::Matchers
52
+ end
53
+
54
+ config.mock_with :rspec
55
+
56
+ # http://railscasts.com/episodes/285-spork
57
+ config.treat_symbols_as_metadata_keys_with_true_values = true
58
+ config.run_all_when_everything_filtered = true
59
+ config.filter_run :focus => true
60
+ end
61
+ end
62
+
63
+ Spork.each_run do
64
+ # It's now okay to load the engine.
65
+ Rails.application.railties.engines.each do |engine|
66
+ if engine.engine_name == 'token_action'
67
+ engine.eager_load!
68
+ end
69
+ end
70
+
71
+ case TOKEN_ACTION_ORM
72
+ when :active_record
73
+ ActiveRecord::Migrator.migrate(File.expand_path("../dummy/db/migrate/", __FILE__))
74
+ when :mongoid
75
+ # DatabaseCleaner will not truncate system.indexes between tests, but it
76
+ # should be truncated before running the full test suite.
77
+ Mongoid::Sessions.default.drop
78
+
79
+ # Create the engine's indexes.
80
+ Rails.application.railties.engines.each do |engine|
81
+ if engine.engine_name == 'token_action'
82
+ engine.paths["app/models"].expanded.each do |path|
83
+ Rails::Mongoid.create_indexes("#{path}/**/*.rb")
84
+ end
85
+ end
86
+ end
87
+
88
+ # Create dummy indexes.
89
+ Rails::Mongoid.create_indexes(File.expand_path("../dummy/app/models/**/*.rb", __FILE__))
90
+ end
91
+
92
+ # @todo I18n.backend.reload!
93
+ FactoryGirl.reload
94
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+
3
+ # @todo
4
+ describe TokenAction::Token do
5
+ it {should validate_presence_of :kind}
6
+ it {should validate_uniqueness_of :token}
7
+
8
+ describe '#create' do
9
+ it 'should set the token' do
10
+ FactoryGirl.create(:token).token.should_not be_nil
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,11 @@
1
+ require 'spec_helper'
2
+
3
+ describe TokenAction::TokenGenerator do
4
+ describe '.included' do
5
+ describe '#generate_token' do
6
+ it 'should return a random alphanumeric string' do
7
+ Cat.generate_token(:token).should match(/\A[A-Za-z0-9]{20}\z/)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ if TOKEN_ACTION_ORM == :active_record
4
+ describe TokenAction::Token do
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ require 'spec_helper'
2
+
3
+ if TOKEN_ACTION_ORM == :mongoid
4
+ describe TokenAction::Token do
5
+ end
6
+ end
@@ -0,0 +1,67 @@
1
+ require 'spec_helper'
2
+
3
+ describe TokenAction do
4
+ describe '#setup' do
5
+ before :all do
6
+ TokenAction.setup do |config|
7
+ config.success_url = '/hello/success'
8
+ config.failure_url = '/hello/failure'
9
+ end
10
+ end
11
+
12
+ it 'should set the default URLs' do
13
+ TokenAction.success_url.should == '/hello/success'
14
+ TokenAction.failure_url.should == '/hello/failure'
15
+ end
16
+ end
17
+
18
+ describe '#success_url=' do
19
+ context 'with String argument' do
20
+ before :all do
21
+ TokenAction.success_url = '/hello/success'
22
+ end
23
+
24
+ it 'should set the default success URL' do
25
+ TokenAction.success_url.should == '/hello/success'
26
+ end
27
+ end
28
+
29
+ context 'with Proc argument' do
30
+ before :all do
31
+ TokenAction.success_url = lambda { '/hello/success' }
32
+ end
33
+
34
+ it 'should set the default success URL' do
35
+ TokenAction.success_url.should == '/hello/success'
36
+ end
37
+ end
38
+ end
39
+
40
+ describe '#failure_url=' do
41
+ context 'with String argument' do
42
+ before :all do
43
+ TokenAction.failure_url = '/hello/failure'
44
+ end
45
+
46
+ it 'should set the default failure URL' do
47
+ TokenAction.failure_url.should == '/hello/failure'
48
+ end
49
+ end
50
+
51
+ context 'with Proc argument' do
52
+ before :all do
53
+ TokenAction.failure_url = lambda { '/hello/failure' }
54
+ end
55
+
56
+ it 'should set the default failure URL' do
57
+ TokenAction.failure_url.should == '/hello/failure'
58
+ end
59
+ end
60
+ end
61
+
62
+ describe '#friendly_token' do
63
+ it 'should return a random alphanumeric string' do
64
+ TokenAction.friendly_token.should match(/\A[A-Za-z0-9]{20}\z/)
65
+ end
66
+ end
67
+ end
metadata ADDED
@@ -0,0 +1,394 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: token_action
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Open North
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-01-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.1'
30
+ - !ruby/object:Gem::Dependency
31
+ name: orm_adapter
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '0.1'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.1'
46
+ - !ruby/object:Gem::Dependency
47
+ name: database_cleaner
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: '0.9'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: '0.9'
62
+ - !ruby/object:Gem::Dependency
63
+ name: guard-brakeman
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '0.5'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '0.5'
78
+ - !ruby/object:Gem::Dependency
79
+ name: guard-bundler
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ~>
84
+ - !ruby/object:Gem::Version
85
+ version: '1.0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: '1.0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: guard-rspec
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ~>
100
+ - !ruby/object:Gem::Version
101
+ version: '2.1'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: '2.1'
110
+ - !ruby/object:Gem::Dependency
111
+ name: guard-spork
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '1.2'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: '1.2'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rb-fsevent
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: '0.9'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: '0.9'
142
+ - !ruby/object:Gem::Dependency
143
+ name: rspec-rails
144
+ requirement: !ruby/object:Gem::Requirement
145
+ none: false
146
+ requirements:
147
+ - - ~>
148
+ - !ruby/object:Gem::Version
149
+ version: '2.11'
150
+ type: :development
151
+ prerelease: false
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: '2.11'
158
+ - !ruby/object:Gem::Dependency
159
+ name: shoulda-matchers
160
+ requirement: !ruby/object:Gem::Requirement
161
+ none: false
162
+ requirements:
163
+ - - ~>
164
+ - !ruby/object:Gem::Version
165
+ version: '1.4'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: '1.4'
174
+ - !ruby/object:Gem::Dependency
175
+ name: spork-rails
176
+ requirement: !ruby/object:Gem::Requirement
177
+ none: false
178
+ requirements:
179
+ - - ~>
180
+ - !ruby/object:Gem::Version
181
+ version: '3.2'
182
+ type: :development
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ~>
188
+ - !ruby/object:Gem::Version
189
+ version: '3.2'
190
+ - !ruby/object:Gem::Dependency
191
+ name: sqlite3
192
+ requirement: !ruby/object:Gem::Requirement
193
+ none: false
194
+ requirements:
195
+ - - ~>
196
+ - !ruby/object:Gem::Version
197
+ version: '1.3'
198
+ type: :development
199
+ prerelease: false
200
+ version_requirements: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ~>
204
+ - !ruby/object:Gem::Version
205
+ version: '1.3'
206
+ - !ruby/object:Gem::Dependency
207
+ name: factory_girl_rails
208
+ requirement: !ruby/object:Gem::Requirement
209
+ none: false
210
+ requirements:
211
+ - - ~>
212
+ - !ruby/object:Gem::Version
213
+ version: '4.1'
214
+ type: :development
215
+ prerelease: false
216
+ version_requirements: !ruby/object:Gem::Requirement
217
+ none: false
218
+ requirements:
219
+ - - ~>
220
+ - !ruby/object:Gem::Version
221
+ version: '4.1'
222
+ - !ruby/object:Gem::Dependency
223
+ name: mongoid
224
+ requirement: !ruby/object:Gem::Requirement
225
+ none: false
226
+ requirements:
227
+ - - ~>
228
+ - !ruby/object:Gem::Version
229
+ version: 3.0.6
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ none: false
234
+ requirements:
235
+ - - ~>
236
+ - !ruby/object:Gem::Version
237
+ version: 3.0.6
238
+ - !ruby/object:Gem::Dependency
239
+ name: mongoid-rspec
240
+ requirement: !ruby/object:Gem::Requirement
241
+ none: false
242
+ requirements:
243
+ - - ~>
244
+ - !ruby/object:Gem::Version
245
+ version: '1.5'
246
+ type: :development
247
+ prerelease: false
248
+ version_requirements: !ruby/object:Gem::Requirement
249
+ none: false
250
+ requirements:
251
+ - - ~>
252
+ - !ruby/object:Gem::Version
253
+ version: '1.5'
254
+ description:
255
+ email:
256
+ - info@opennorth.ca
257
+ executables: []
258
+ extensions: []
259
+ extra_rdoc_files: []
260
+ files:
261
+ - app/controllers/token_action/application_controller.rb
262
+ - app/controllers/token_action/tokens_controller.rb
263
+ - config/locales/en.yml
264
+ - config/routes.rb
265
+ - lib/generators/active_record/templates/migration.rb
266
+ - lib/generators/active_record/token_action_generator.rb
267
+ - lib/generators/mongoid/token_action_generator.rb
268
+ - lib/generators/templates/README
269
+ - lib/generators/templates/token_action.rb
270
+ - lib/generators/token_action_generator.rb
271
+ - lib/token_action/engine.rb
272
+ - lib/token_action/mixins/model.rb
273
+ - lib/token_action/mixins/token_generator.rb
274
+ - lib/token_action/orm/active_record.rb
275
+ - lib/token_action/orm/mongoid.rb
276
+ - lib/token_action/version.rb
277
+ - lib/token_action.rb
278
+ - LICENSE
279
+ - Rakefile
280
+ - README.md
281
+ - spec/controllers/token_action/tokens_controller_spec.rb
282
+ - spec/dummy/app/active_record/cat.rb
283
+ - spec/dummy/app/assets/javascripts/application.js
284
+ - spec/dummy/app/assets/stylesheets/application.css
285
+ - spec/dummy/app/controllers/application_controller.rb
286
+ - spec/dummy/app/controllers/hello_controller.rb
287
+ - spec/dummy/app/helpers/application_helper.rb
288
+ - spec/dummy/app/mongoid/cat.rb
289
+ - spec/dummy/app/views/layouts/application.html.erb
290
+ - spec/dummy/config/application.rb
291
+ - spec/dummy/config/boot.rb
292
+ - spec/dummy/config/database.yml
293
+ - spec/dummy/config/environment.rb
294
+ - spec/dummy/config/environments/development.rb
295
+ - spec/dummy/config/environments/production.rb
296
+ - spec/dummy/config/environments/test.rb
297
+ - spec/dummy/config/initializers/secret_token.rb
298
+ - spec/dummy/config/initializers/session_store.rb
299
+ - spec/dummy/config/initializers/token_action.rb
300
+ - spec/dummy/config/initializers/wrap_parameters.rb
301
+ - spec/dummy/config/locales/en.yml
302
+ - spec/dummy/config/locales/token_action.en.yml
303
+ - spec/dummy/config/mongoid.yml
304
+ - spec/dummy/config/routes.rb
305
+ - spec/dummy/config.ru
306
+ - spec/dummy/db/development.sqlite3
307
+ - spec/dummy/db/migrate/20130104151630_create_token_action_tokens.rb
308
+ - spec/dummy/db/migrate/20130104201018_create_cats.rb
309
+ - spec/dummy/log/development.log
310
+ - spec/dummy/log/test.log
311
+ - spec/dummy/public/404.html
312
+ - spec/dummy/public/422.html
313
+ - spec/dummy/public/500.html
314
+ - spec/dummy/public/favicon.ico
315
+ - spec/dummy/Rakefile
316
+ - spec/dummy/script/rails
317
+ - spec/factories.rb
318
+ - spec/routing/token_action/tokens_routing_spec.rb
319
+ - spec/spec_helper.rb
320
+ - spec/token_action/mixins/model_spec.rb
321
+ - spec/token_action/mixins/token_generator_spec.rb
322
+ - spec/token_action/orm/active_record_spec.rb
323
+ - spec/token_action/orm/mongoid_spec.rb
324
+ - spec/token_action_spec.rb
325
+ homepage: http://github.com/opennorth/token_action
326
+ licenses: []
327
+ post_install_message:
328
+ rdoc_options: []
329
+ require_paths:
330
+ - lib
331
+ required_ruby_version: !ruby/object:Gem::Requirement
332
+ none: false
333
+ requirements:
334
+ - - ! '>='
335
+ - !ruby/object:Gem::Version
336
+ version: '0'
337
+ required_rubygems_version: !ruby/object:Gem::Requirement
338
+ none: false
339
+ requirements:
340
+ - - ! '>='
341
+ - !ruby/object:Gem::Version
342
+ version: '0'
343
+ requirements: []
344
+ rubyforge_project:
345
+ rubygems_version: 1.8.24
346
+ signing_key:
347
+ specification_version: 3
348
+ summary: Redeem tokens to perform actions.
349
+ test_files:
350
+ - spec/controllers/token_action/tokens_controller_spec.rb
351
+ - spec/dummy/app/active_record/cat.rb
352
+ - spec/dummy/app/assets/javascripts/application.js
353
+ - spec/dummy/app/assets/stylesheets/application.css
354
+ - spec/dummy/app/controllers/application_controller.rb
355
+ - spec/dummy/app/controllers/hello_controller.rb
356
+ - spec/dummy/app/helpers/application_helper.rb
357
+ - spec/dummy/app/mongoid/cat.rb
358
+ - spec/dummy/app/views/layouts/application.html.erb
359
+ - spec/dummy/config/application.rb
360
+ - spec/dummy/config/boot.rb
361
+ - spec/dummy/config/database.yml
362
+ - spec/dummy/config/environment.rb
363
+ - spec/dummy/config/environments/development.rb
364
+ - spec/dummy/config/environments/production.rb
365
+ - spec/dummy/config/environments/test.rb
366
+ - spec/dummy/config/initializers/secret_token.rb
367
+ - spec/dummy/config/initializers/session_store.rb
368
+ - spec/dummy/config/initializers/token_action.rb
369
+ - spec/dummy/config/initializers/wrap_parameters.rb
370
+ - spec/dummy/config/locales/en.yml
371
+ - spec/dummy/config/locales/token_action.en.yml
372
+ - spec/dummy/config/mongoid.yml
373
+ - spec/dummy/config/routes.rb
374
+ - spec/dummy/config.ru
375
+ - spec/dummy/db/development.sqlite3
376
+ - spec/dummy/db/migrate/20130104151630_create_token_action_tokens.rb
377
+ - spec/dummy/db/migrate/20130104201018_create_cats.rb
378
+ - spec/dummy/log/development.log
379
+ - spec/dummy/log/test.log
380
+ - spec/dummy/public/404.html
381
+ - spec/dummy/public/422.html
382
+ - spec/dummy/public/500.html
383
+ - spec/dummy/public/favicon.ico
384
+ - spec/dummy/Rakefile
385
+ - spec/dummy/script/rails
386
+ - spec/factories.rb
387
+ - spec/routing/token_action/tokens_routing_spec.rb
388
+ - spec/spec_helper.rb
389
+ - spec/token_action/mixins/model_spec.rb
390
+ - spec/token_action/mixins/token_generator_spec.rb
391
+ - spec/token_action/orm/active_record_spec.rb
392
+ - spec/token_action/orm/mongoid_spec.rb
393
+ - spec/token_action_spec.rb
394
+ has_rdoc: