remember_me 0.1.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 8fca18aa7dc1bc82dd73c6fb24943867b697ca14
4
- data.tar.gz: b0a4a3be2b8dfb9fa9bc9bfd1ed196506a8ab567
2
+ SHA256:
3
+ metadata.gz: 6b78d5787e7eed47a203def17983257127abd1055fe2930126e807cda75fc6ad
4
+ data.tar.gz: c9d46eb89c6b4507d75ce37844308bc995a8b10e4972a2bfe2f69322fdbea58a
5
5
  SHA512:
6
- metadata.gz: de1ce4d69ab106aa9c7460d694f0c58f53f35ec738c4b0ed0fd839b30ba867a5dcf3e38b801fc48789b656f73f56e3ef1ae18cd86e521738a25ba92a00c24ca9
7
- data.tar.gz: 608837fad787ffa9fbcd3f91ab0c5af8c581037ccd30d0c4c5cc7903809d76fbe6acc7cc4e007ba83c05c55b68dbcf6a5407108b3753ecf3029d361ccb0bab18
6
+ metadata.gz: 865e44aeee2082aa575d2c4e7ec19ba680b0c2e8aa62a06c92ede64372c61980b7c8e11305c4f166a787e20f42853c0d601e4ce9be6e533b3fe297513647e8be
7
+ data.tar.gz: 5cf76b4ccce556bdee783173397dee7bcedc2a7cc44aff27d55402eff60f1d03f959e358021d4faf7bba5d2f1736735342f34a3f9ffff7fc4aff469f352eb325
@@ -1,8 +1,7 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 1.9.3
5
- - 2.0.0
4
+ - 2.5.0
6
5
 
7
6
  before_install:
8
7
  - gem update bundler
@@ -49,6 +49,10 @@ module RememberMe
49
49
  else
50
50
  resource
51
51
  end
52
+ rescue
53
+ # see: https://github.com/linyows/remember_me/pull/1
54
+ # `Moped` NameError occured when upgrade mongoid v4 to v5
55
+ nil
52
56
  end
53
57
  end
54
58
  end
@@ -1,3 +1,3 @@
1
1
  module RememberMe
2
- VERSION = '0.1.1'
2
+ VERSION = '1.0.0'
3
3
  end
@@ -22,48 +22,67 @@ class ApplicationController < ActionController::Base
22
22
  end
23
23
  end
24
24
 
25
- class SessionsController < ApplicationController
26
- def create
27
- current_user = User.new
28
- remember_me(current_user) if remember_me?
29
- redirect_to '/'
30
- end
31
-
32
- def destroy
33
- forget_me(current_user)
34
- self.current_user = nil
35
- redirect_to '/signin'
36
- end
37
- end
25
+ describe ApplicationController, type: :controller do
26
+ controller do
27
+ def index
28
+ redirect_to '/' and return if user_signed_in?
29
+ end
38
30
 
39
- class HomesController < ApplicationController
40
- before_filter :authenticate_user!
31
+ def create
32
+ current_user = User.new
33
+ remember_me(current_user) if remember_me?
34
+ redirect_to '/'
35
+ end
41
36
 
42
- def index
43
- render nothing: true
37
+ def destroy
38
+ forget_me(current_user)
39
+ self.current_user = nil
40
+ redirect_to '/signin'
41
+ end
44
42
  end
45
- end
46
43
 
47
- describe SessionsController do
48
44
  let(:remember_me) { true }
49
- let(:attrs) { { remember_me: remember_me } }
45
+ let(:user) { User.new }
46
+
47
+ describe 'GET #index' do
48
+ context 'remember' do
49
+ before do
50
+ expect(User).to receive(:where).and_return([user])
51
+ expect(user).to receive(:remember_expired?).and_return(false)
52
+ expect(controller).to receive_message_chain(:cookies, :signed, :[]).and_return([user.id, Digest::SHA1.hexdigest(user.id)])
53
+ get :index
54
+ end
55
+
56
+ it { expect(response).to redirect_to('/') }
57
+ end
58
+
59
+ context 'raise error' do
60
+ before do
61
+ request.env['HTTP_ACCEPT'] = 'anonymous/html'
62
+ expect(controller).to receive_message_chain(:cookies, :signed, :[]).and_raise(NameError)
63
+ get :index
64
+ end
65
+
66
+ it { expect(response).not_to redirect_to('/') }
67
+ end
68
+ end
50
69
 
51
70
  describe 'POST #create' do
52
71
  before do
53
- controller.stub_chain(:cookies, :signed, :[]=) { '' }
54
- post :create, attrs
72
+ expect(controller).to receive_message_chain(:cookies, :signed, :[]=).and_return('')
73
+ post :create, params: { remember_me: remember_me }
55
74
  end
56
75
 
57
- it { response.status.should eq 302 }
76
+ it { expect(response).to redirect_to('/') }
58
77
  end
59
78
 
60
79
  describe 'GET #destroy' do
61
80
  before do
62
- controller.stub(:current_user) { User.new }
63
- controller.stub_chain(:cookies, :delete) { nil }
64
- get :destroy
81
+ expect(controller).to receive(:current_user).and_return(User.new)
82
+ expect(controller).to receive_message_chain(:cookies, :delete).and_return(nil)
83
+ delete :destroy, params: {id: user.id}
65
84
  end
66
85
 
67
- it { response.status.should eq 302 }
86
+ it { expect(response.status).to eq 302 }
68
87
  end
69
88
  end
@@ -11,15 +11,17 @@ end
11
11
 
12
12
  require 'rails'
13
13
  require 'action_controller'
14
+ require 'action_view'
14
15
  require 'active_support/concern'
15
- require 'active_record'
16
16
  require 'mongoid'
17
17
  require 'remember_me'
18
18
  require 'rspec'
19
19
  require 'rspec/rails'
20
+ require 'securerandom'
20
21
 
21
22
  RSpec.configure do |config|
22
23
  config.mock_with :rspec
24
+ config.infer_base_class_for_anonymous_controllers = true
23
25
  end
24
26
 
25
27
  module Example
@@ -27,10 +29,10 @@ module Example
27
29
  end
28
30
  end
29
31
 
30
- Example::Application.routes.draw do
31
- post 'signin', to: 'sessions#create'
32
- get 'signout', to: 'sessions#destroy'
33
- end
32
+ # for secret_key_base
33
+ Example::Application.config.secret_key_base = SecureRandom.hex(64)
34
+
35
+ Example::Application.config.session_options = {}
34
36
 
35
37
  class User
36
38
  include Mongoid::Document
@@ -3,15 +3,15 @@ require 'helper'
3
3
  describe RememberMe::Model do
4
4
  before { @model = User.new }
5
5
 
6
- it { expect(@model.fields.has_key? 'remember_created_at').to be_true }
6
+ it { expect(@model.fields.has_key? 'remember_created_at').to be_truthy }
7
7
  it { expect(@model.fields['remember_created_at'].options[:type]).to eq Time }
8
8
 
9
- it { expect(@model.respond_to? :remember_me!).to be_true }
10
- it { expect(@model.respond_to? :forget_me!).to be_true }
11
- it { expect(@model.respond_to? :remember_expired?).to be_true }
12
- it { expect(@model.respond_to? :remember_expires_at).to be_true }
13
- it { expect(@model.respond_to? :rememberable_options).to be_true }
14
- it { expect(@model.respond_to? :rememberable_value).to be_true }
9
+ it { expect(@model.respond_to? :remember_me!).to be_truthy }
10
+ it { expect(@model.respond_to? :forget_me!).to be_truthy }
11
+ it { expect(@model.respond_to? :remember_expired?).to be_truthy }
12
+ it { expect(@model.respond_to? :remember_expires_at).to be_truthy }
13
+ it { expect(@model.respond_to? :rememberable_options).to be_truthy }
14
+ it { expect(@model.respond_to? :rememberable_value).to be_truthy }
15
15
 
16
16
  describe '#remember_me!' do
17
17
  before { @model.remember_me! }
@@ -33,18 +33,18 @@ describe RememberMe::Model do
33
33
  context 'when remembered' do
34
34
  context 'if expired' do
35
35
  let(:remember_created_at) { Time.now - 2.weeks }
36
- it { should be_true }
36
+ it { should be_truthy }
37
37
  end
38
38
 
39
39
  context 'if not expired' do
40
40
  let(:remember_created_at) { Time.now - 2.weeks + 1 }
41
- it { should be_false }
41
+ it { should be_falsey }
42
42
  end
43
43
  end
44
44
 
45
45
  context 'when not remembered' do
46
46
  let(:remember_created_at) { nil }
47
- it { should be_true }
47
+ it { should be_truthy }
48
48
  end
49
49
  end
50
50
 
@@ -58,7 +58,7 @@ describe RememberMe::Model do
58
58
 
59
59
  context 'when not remembered' do
60
60
  let(:remember_created_at) { nil }
61
- it { expect { @model.remember_expires_at }.to raise_error }
61
+ it { expect { @model.remember_expires_at }.to raise_error(NoMethodError) }
62
62
  end
63
63
  end
64
64
 
@@ -84,8 +84,8 @@ describe RememberMe::Model do
84
84
  let(:remember_token) { @model.rememberable_value }
85
85
  let(:expired) { false }
86
86
  before do
87
- User.stub_chain(:where, :first).and_return(@model)
88
- @model.stub(:remember_expired?).and_return(expired)
87
+ expect(User).to receive_message_chain(:where, :first).and_return(@model)
88
+ expect(@model).to receive(:remember_expired?).and_return(expired)
89
89
  end
90
90
  subject { User.serialize_from_cookie(id, remember_token) }
91
91
  it { expect(subject).to eq @model }
metadata CHANGED
@@ -1,153 +1,153 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: remember_me
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - linyows
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-01 00:00:00.000000000 Z
11
+ date: 2018-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: '1.3'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.3'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
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
56
56
  name: rspec-rails
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '>='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '>='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: '0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - '>='
73
+ - - ">="
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: coveralls
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: awesome_print
113
113
  requirement: !ruby/object:Gem::Requirement
114
114
  requirements:
115
- - - '>='
115
+ - - ">="
116
116
  - !ruby/object:Gem::Version
117
117
  version: '0'
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
- - - '>='
122
+ - - ">="
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0'
125
125
  - !ruby/object:Gem::Dependency
126
126
  name: rails
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
- - - '>='
129
+ - - ">="
130
130
  - !ruby/object:Gem::Version
131
131
  version: '3.2'
132
132
  type: :runtime
133
133
  prerelease: false
134
134
  version_requirements: !ruby/object:Gem::Requirement
135
135
  requirements:
136
- - - '>='
136
+ - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '3.2'
139
139
  - !ruby/object:Gem::Dependency
140
140
  name: mongoid
141
141
  requirement: !ruby/object:Gem::Requirement
142
142
  requirements:
143
- - - '>='
143
+ - - ">="
144
144
  - !ruby/object:Gem::Version
145
145
  version: '3'
146
146
  type: :runtime
147
147
  prerelease: false
148
148
  version_requirements: !ruby/object:Gem::Requirement
149
149
  requirements:
150
- - - '>='
150
+ - - ">="
151
151
  - !ruby/object:Gem::Version
152
152
  version: '3'
153
153
  description: Manages generating and clearing a token for remembering the user from
@@ -158,9 +158,9 @@ executables: []
158
158
  extensions: []
159
159
  extra_rdoc_files: []
160
160
  files:
161
- - .gitignore
162
- - .rspec
163
- - .travis.yml
161
+ - ".gitignore"
162
+ - ".rspec"
163
+ - ".travis.yml"
164
164
  - Gemfile
165
165
  - LICENSE.txt
166
166
  - README.md
@@ -183,17 +183,17 @@ require_paths:
183
183
  - lib
184
184
  required_ruby_version: !ruby/object:Gem::Requirement
185
185
  requirements:
186
- - - '>='
186
+ - - ">="
187
187
  - !ruby/object:Gem::Version
188
188
  version: '0'
189
189
  required_rubygems_version: !ruby/object:Gem::Requirement
190
190
  requirements:
191
- - - '>='
191
+ - - ">="
192
192
  - !ruby/object:Gem::Version
193
193
  version: '0'
194
194
  requirements: []
195
195
  rubyforge_project:
196
- rubygems_version: 2.0.0
196
+ rubygems_version: 2.7.3
197
197
  signing_key:
198
198
  specification_version: 4
199
199
  summary: RememberMe is a simple remember-me login solution on Rails.