foyer 0.1.3 → 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.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MjdmZWViMTEyMzE0ODUzNDUxMTljMmEyYmIwZTExOTg0NjM5M2EyMA==
5
- data.tar.gz: !binary |-
6
- YjBkOWM3NjNmYTk0MmVkZWRmMzkxOGU5YThmODMxYjcyN2M2YTZiYQ==
2
+ SHA1:
3
+ metadata.gz: 682800c810ac3c955473143f0bec308908390fcf
4
+ data.tar.gz: b871b220cc2c46069cd0070f60f88a70d0d2bf30
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- ZGVkMTZmOGM5MjZjZmJjZWNiMzlhMDRhMDNlZGZlZTJlNmVjNDg5OWRlOGNi
10
- Yjg1MGFhNDBlZDdjYjE4MGFlOTMxNDlkMDdjMDY4OWVmMzA0N2MxODFmYWUy
11
- ZTVlZWJiNjM5MDFjYzVkZGZmODBjZjAxNmQzOTcyNWZjMTAxNWI=
12
- data.tar.gz: !binary |-
13
- ZGFiNmEyMTliNDBkNjRlMjllYzA2ZTVmMmE3OWJlNDRiODEwNmMwZjVmNTM1
14
- ODdhNzc3MjRlYjRkZWIzYjE1NzNmZjQ5ZTlhZmU5MWI3MDlhOWYxOWY0Y2M5
15
- OGRlMTQzODg4ZjBiNmEwYmFjMTI2YjljY2ZkNmM0MzNhN2ZmM2M=
6
+ metadata.gz: 6fcf0ca948b532f9ae84fa68f7b277691790142da2ec1170ff12785bd8a0e8f7718d0b3ae60e4b33a0b70068b1cde4890768f2f40537caafabac0b8a48f70805
7
+ data.tar.gz: 81473a970e91d87620a36a8aee2cfc6842f0921ecaf6aac905bb8686aba9b0522f83a11131e439c716fc4f4cbaeb8dc32852d3e3436e27f4120bc77dc94d0aa3
@@ -12,10 +12,17 @@ module Foyer
12
12
  mattr_accessor :user_finder
13
13
  @@user_finder = lambda { |_| raise 'Override this method' }
14
14
 
15
+ mattr_accessor :token_finder
16
+ @@token_finder = lambda { |_| raise 'Override this method' }
17
+
15
18
  module Controller
16
19
  autoload :Helpers, 'foyer/controller/helpers'
17
20
  end
18
21
 
22
+ module Grape
23
+ autoload :Helpers, 'foyer/grape/helpers'
24
+ end
25
+
19
26
  autoload :OmniauthCallbacksController, 'foyer/omniauth_callbacks_controller'
20
27
 
21
28
  autoload :TestHelpers, 'foyer/test_helpers'
@@ -13,7 +13,7 @@ module Foyer
13
13
  id: user.id,
14
14
  current_sign_in_at: Time.now,
15
15
  current_sign_in_ip: request.ip,
16
- }
16
+ }.with_indifferent_access
17
17
  end
18
18
 
19
19
  def sign_out
@@ -30,7 +30,8 @@ module Foyer
30
30
  end
31
31
 
32
32
  def user_session
33
- session[Foyer.session_key]||= {}
33
+ session[Foyer.session_key] ||= {}
34
+ session[Foyer.session_key] = session[Foyer.session_key].with_indifferent_access
34
35
  session[Foyer.session_key]
35
36
  end
36
37
 
@@ -0,0 +1,30 @@
1
+ module Foyer
2
+ module Grape
3
+ module Helpers
4
+ extend ActiveSupport::Concern
5
+
6
+ protected
7
+ def user_signed_in?
8
+ current_user.present?
9
+ end
10
+
11
+ def current_user
12
+ return nil unless headers['Authorization'] =~ /^Bearer (.*)/m
13
+ @current_user ||= Foyer.token_finder.call($1)
14
+ end
15
+
16
+ def authenticate_user!
17
+ error!('Unauthorized', 401) unless user_signed_in?
18
+ end
19
+
20
+ module ClassMethods
21
+ def set_token_finder(&blk)
22
+ if blk.arity != 1
23
+ raise ":token_finder must accept 1 argument (token)"
24
+ end
25
+ Foyer.token_finder = blk
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -1,3 +1,3 @@
1
1
  module Foyer
2
- VERSION = "0.1.3"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -0,0 +1,36 @@
1
+ require 'spec_helper'
2
+
3
+ describe Foyer::Grape::Helpers do
4
+ class IncludesFoyerGrapeHelpers
5
+ def headers
6
+ @headers ||= { 'Authorization' => 'Bearer _' }
7
+ end
8
+
9
+ include Foyer::Grape::Helpers
10
+ end
11
+
12
+ subject { IncludesFoyerGrapeHelpers.new }
13
+
14
+ describe ".set_token_finder" do
15
+ it "sets the :token_finder configuration to the provided block" do
16
+ expect {
17
+ subject.class_eval do
18
+ set_token_finder do |token|
19
+ token
20
+ end
21
+ end
22
+ }.to change(Foyer, :token_finder)
23
+ end
24
+ end
25
+
26
+ describe "#current_user" do
27
+ it "calls the token_finder method" do
28
+ @called = false
29
+ Foyer.token_finder = lambda { |_| @called = true }
30
+
31
+ subject.send :current_user
32
+
33
+ expect(@called).to eq true
34
+ end
35
+ end
36
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foyer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Nochlin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-28 00:00:00.000000000 Z
11
+ date: 2014-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -42,14 +42,14 @@ dependencies:
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - '>='
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
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
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
@@ -83,6 +83,7 @@ files:
83
83
  - lib/foyer.rb
84
84
  - lib/foyer/controller/helpers.rb
85
85
  - lib/foyer/engine.rb
86
+ - lib/foyer/grape/helpers.rb
86
87
  - lib/foyer/omniauth_callbacks_controller.rb
87
88
  - lib/foyer/rails.rb
88
89
  - lib/foyer/test_helpers.rb
@@ -123,6 +124,7 @@ files:
123
124
  - spec/dummy/public/500.html
124
125
  - spec/dummy/public/favicon.ico
125
126
  - spec/foyer/controller/helpers_spec.rb
127
+ - spec/foyer/grape/helpers_spec.rb
126
128
  - spec/foyer/omniauth_callbacks_controller_spec.rb
127
129
  - spec/integration/authenticate_via_route_constraint_spec.rb
128
130
  - spec/spec_helper.rb
@@ -136,17 +138,17 @@ require_paths:
136
138
  - lib
137
139
  required_ruby_version: !ruby/object:Gem::Requirement
138
140
  requirements:
139
- - - ! '>='
141
+ - - '>='
140
142
  - !ruby/object:Gem::Version
141
143
  version: '0'
142
144
  required_rubygems_version: !ruby/object:Gem::Requirement
143
145
  requirements:
144
- - - ! '>='
146
+ - - '>='
145
147
  - !ruby/object:Gem::Version
146
148
  version: '0'
147
149
  requirements: []
148
150
  rubyforge_project:
149
- rubygems_version: 2.2.1
151
+ rubygems_version: 2.2.2
150
152
  signing_key:
151
153
  specification_version: 4
152
154
  summary: Authentication layer for OmniAuth
@@ -187,6 +189,7 @@ test_files:
187
189
  - spec/dummy/public/500.html
188
190
  - spec/dummy/public/favicon.ico
189
191
  - spec/foyer/controller/helpers_spec.rb
192
+ - spec/foyer/grape/helpers_spec.rb
190
193
  - spec/foyer/omniauth_callbacks_controller_spec.rb
191
194
  - spec/integration/authenticate_via_route_constraint_spec.rb
192
195
  - spec/spec_helper.rb