simple_token_authentication 1.11.0 → 1.12.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 545e7e240740cd272bcb2a7be4dbd76caf150f53
4
- data.tar.gz: cd43f4c512387a046aa9d289c94fa71b407b662e
3
+ metadata.gz: b03d7c4181d9b49529232f123b1808777ae5ec90
4
+ data.tar.gz: 4353f4f11e3460fdcff2fcb347493a4f99aad30d
5
5
  SHA512:
6
- metadata.gz: bd62a1b560a22a3df914fad7277f7bed251fad0a8ae897b6606dd860b1ea6043f3a5eb509df7ed564463907a44b9c952a149f0431e3db30052f0cce8b930b579
7
- data.tar.gz: 55b2d9b3f649b0969a86d10bfad2539e0ae138243930114488af9e24cb0c757d4c2296721c735469310ec1d4334a66ecb09a49b0dc6fb6dd83ae75292c65a17a
6
+ metadata.gz: aa498468bc95566d8ca4617a224c46cff942c8a3b5aa1c017491ccf8acf2559b5658b4f1ca1b3ce0103c08078aa1cf7284f3f79f693e6c2b63753bc7f7688d38
7
+ data.tar.gz: d5daa1bd3f516d6be6fe97c78d9898f24c7ec6f22558d3c908db3690ef0e15be4c444ee990f0b14288849e0fd4ab780b5375db56844b897c24edf22ffd5841c9
data/README.md CHANGED
@@ -95,6 +95,7 @@ Finally define which controllers will handle token authentication (typ. `Applica
95
95
  # app/controllers/application_controller.rb
96
96
 
97
97
  class ApplicationController < ActionController::Base # or ActionController::API
98
+ # or ActionController::Metal
98
99
  # ...
99
100
 
100
101
  acts_as_token_authentication_handler_for User
@@ -330,7 +331,7 @@ License
330
331
  -------
331
332
 
332
333
  Simple Token Authentication
333
- Copyright (C) 2013, 2014, 2015 Gonzalo Bulnes Guilpain
334
+ Copyright (C) 2013, 2014, 2015, 2016 Gonzalo Bulnes Guilpain
334
335
 
335
336
  This program is free software: you can redistribute it and/or modify
336
337
  it under the terms of the GNU General Public License as published by
@@ -0,0 +1,14 @@
1
+ require 'action_controller'
2
+ require 'simple_token_authentication/adapter'
3
+
4
+ module SimpleTokenAuthentication
5
+ module Adapters
6
+ class RailsMetalAdapter
7
+ extend SimpleTokenAuthentication::Adapter
8
+
9
+ def self.base_class
10
+ ::ActionController::Metal
11
+ end
12
+ end
13
+ end
14
+ end
@@ -15,12 +15,13 @@ module SimpleTokenAuthentication
15
15
  @@header_names = {}
16
16
  @@identifiers = {}
17
17
  @@sign_in_token = false
18
- @@controller_adapters = ['rails', 'rails_api']
18
+ @@controller_adapters = ['rails', 'rails_api', 'rails_metal']
19
19
  @@model_adapters = ['active_record', 'mongoid']
20
20
  @@adapters_dependencies = { 'active_record' => 'ActiveRecord::Base',
21
21
  'mongoid' => 'Mongoid::Document',
22
22
  'rails' => 'ActionController::Base',
23
- 'rails_api' => 'ActionController::API' }
23
+ 'rails_api' => 'ActionController::API',
24
+ 'rails_metal' => 'ActionController::Metal' }
24
25
  @@skip_devise_trackable = true
25
26
 
26
27
  # Allow the default configuration to be overwritten from initializers
@@ -1,3 +1,3 @@
1
1
  module SimpleTokenAuthentication
2
- VERSION = "1.11.0"
2
+ VERSION = "1.12.0"
3
3
  end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+ require 'simple_token_authentication/adapters/rails_metal_adapter'
3
+
4
+ describe 'SimpleTokenAuthentication::Adapters::RailsMetalAdapter' do
5
+
6
+ before(:each) do
7
+ stub_const('ActionController', Module.new)
8
+ stub_const('ActionController::Metal', double())
9
+
10
+ @subject = SimpleTokenAuthentication::Adapters::RailsMetalAdapter
11
+ end
12
+
13
+ it_behaves_like 'an adapter'
14
+
15
+ describe '.base_class' do
16
+
17
+ it 'is ActionController::Metal', private: true do
18
+ expect(@subject.base_class).to eq ActionController::Metal
19
+ end
20
+ end
21
+ end
@@ -20,8 +20,8 @@ describe SimpleTokenAuthentication::Configuration do
20
20
 
21
21
  it_behaves_like 'a configuration option', 'controller_adapters'
22
22
 
23
- it "defauts to ['rails', 'rails_api']", private: true do
24
- expect(@subject.controller_adapters).to eq ['rails', 'rails_api']
23
+ it "defauts to ['rails', 'rails_api', 'rails_metal']", private: true do
24
+ expect(@subject.controller_adapters).to eq ['rails', 'rails_api', 'rails_metal']
25
25
  end
26
26
  end
27
27
 
@@ -43,6 +43,7 @@ describe SimpleTokenAuthentication::Configuration do
43
43
  expect(@subject.adapters_dependencies['mongoid']).to eq 'Mongoid::Document'
44
44
  expect(@subject.adapters_dependencies['rails']).to eq 'ActionController::Base'
45
45
  expect(@subject.adapters_dependencies['rails_api']).to eq 'ActionController::API'
46
+ expect(@subject.adapters_dependencies['rails_metal']).to eq 'ActionController::Metal'
46
47
  end
47
48
  end
48
49
 
@@ -178,4 +178,41 @@ describe SimpleTokenAuthentication do
178
178
  end
179
179
  end
180
180
  end
181
+
182
+ context "when ActionController::Metal is available" do
183
+
184
+ before(:each) do
185
+ stub_const('ActionController::Metal', Class.new)
186
+
187
+ # define a dummy ActionController::Metal (a.k.a 'Rails Metal') adapter
188
+ dummy_rails_adapter = double()
189
+ allow(dummy_rails_adapter).to receive(:base_class).and_return(ActionController::Metal)
190
+ stub_const('SimpleTokenAuthentication::Adapters::DummyRailsMetalAdapter', dummy_rails_adapter)
191
+ end
192
+
193
+ describe '#ensure_controllers_can_act_as_token_authentication_handlers' do
194
+
195
+ before(:each) do
196
+ class SimpleTokenAuthentication::DummyController < ActionController::Metal; end
197
+ @dummy_controller = SimpleTokenAuthentication::DummyController
198
+
199
+ expect(@dummy_controller.new).to be_instance_of SimpleTokenAuthentication::DummyController
200
+ expect(@dummy_controller.new).to be_kind_of ActionController::Metal
201
+ end
202
+
203
+ after(:each) do
204
+ SimpleTokenAuthentication.send(:remove_const, :DummyController)
205
+ end
206
+
207
+ it 'allows any kind of ActionController::Metal to acts as token authentication handler', private: true do
208
+ expect(@dummy_controller).not_to respond_to :acts_as_token_authentication_handler_for
209
+
210
+ subject.ensure_controllers_can_act_as_token_authentication_handlers [
211
+ SimpleTokenAuthentication::Adapters::DummyRailsMetalAdapter]
212
+
213
+ expect(@dummy_controller).to respond_to :acts_as_token_authentication_handler_for
214
+ end
215
+ end
216
+
217
+ end
181
218
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_token_authentication
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gonzalo Bulnes Guilpain
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-12-14 00:00:00.000000000 Z
11
+ date: 2016-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actionmailer
@@ -165,6 +165,7 @@ files:
165
165
  - lib/simple_token_authentication/adapters/mongoid_adapter.rb
166
166
  - lib/simple_token_authentication/adapters/rails_adapter.rb
167
167
  - lib/simple_token_authentication/adapters/rails_api_adapter.rb
168
+ - lib/simple_token_authentication/adapters/rails_metal_adapter.rb
168
169
  - lib/simple_token_authentication/configuration.rb
169
170
  - lib/simple_token_authentication/devise_fallback_handler.rb
170
171
  - lib/simple_token_authentication/entities_manager.rb
@@ -188,6 +189,7 @@ files:
188
189
  - spec/lib/simple_token_authentication/adapters/mongoid_adapter_spec.rb
189
190
  - spec/lib/simple_token_authentication/adapters/rails_adapter_spec.rb
190
191
  - spec/lib/simple_token_authentication/adapters/rails_api_adapter_spec.rb
192
+ - spec/lib/simple_token_authentication/adapters/rails_metal_adapter_spec.rb
191
193
  - spec/lib/simple_token_authentication/configuration_spec.rb
192
194
  - spec/lib/simple_token_authentication/devise_fallback_handler_spec.rb
193
195
  - spec/lib/simple_token_authentication/entities_manager_spec.rb
@@ -261,6 +263,7 @@ test_files:
261
263
  - spec/lib/simple_token_authentication/acts_as_token_authentication_handler_spec.rb
262
264
  - spec/lib/simple_token_authentication/adapters/rails_api_adapter_spec.rb
263
265
  - spec/lib/simple_token_authentication/adapters/rails_adapter_spec.rb
266
+ - spec/lib/simple_token_authentication/adapters/rails_metal_adapter_spec.rb
264
267
  - spec/lib/simple_token_authentication/adapters/mongoid_adapter_spec.rb
265
268
  - spec/lib/simple_token_authentication/adapters/active_record_adapter_spec.rb
266
269
  - spec/lib/simple_token_authentication/errors_spec.rb