token_action 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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: