devise-better_routes 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -56,6 +56,25 @@ Then you can create two controllers as follows:
56
56
  end
57
57
 
58
58
 
59
+ ## Option
60
+
61
+ If you don't like "current_user", you can specify the name.
62
+
63
+ # config/routes.rb
64
+ devise_for :users, path_names: {current_user: 'me'}
65
+
66
+ Do you like this one?
67
+
68
+ users POST /users(.:format) users#create
69
+ new_user GET /users/new(.:format) users#new
70
+ cancel_me GET /me/cancel(.:format) me#cancel
71
+ edit_me GET /me/edit(.:format) me#edit
72
+ me PATCH /me(.:format) me#update
73
+ PUT /me(.:format) me#update
74
+ DELETE /me(.:format) me#destroy
75
+
76
+
77
+
59
78
  ## Installation
60
79
 
61
80
  Add this line to your application's Gemfile:
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ['tkawa@4bit.net']
11
11
  spec.description = %q{Better routes patch for Devise}
12
12
  spec.summary = %q{Better routes patch for Devise}
13
- spec.homepage = ''
13
+ spec.homepage = 'https://github.com/tkawa/devise-better_routes'
14
14
  spec.license = 'MIT'
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
@@ -9,15 +9,16 @@ module Devise
9
9
  def self.override_registration_helpers!(registration_routes = nil)
10
10
  helper_mappings = {
11
11
  new_registration: 'new_#{scope}',
12
- edit_registration: 'edit_current_#{scope}',
13
- cancel_registration: 'cancel_current_#{scope}'
12
+ edit_registration: 'edit_#{current_resource_name}',
13
+ cancel_registration: 'cancel_#{current_resource_name}'
14
14
  }
15
15
  [:path, :url].each do |path_or_url|
16
16
  class_eval <<-URL_HELPERS, __FILE__, __LINE__ + 1
17
17
  def registration_#{path_or_url}(resource_or_scope, *args)
18
18
  scope = Devise::Mapping.find_scope!(resource_or_scope)
19
- if respond_to?(:controller_name) && controller_name == "current_\#{scope.to_s.pluralize}"
20
- send("current_\#{scope}_#{path_or_url}", *args)
19
+ current_resource_name = _devise_path_name(scope, "current_\#{scope}")
20
+ if respond_to?(:controller_name) && controller_name == current_resource_name.pluralize
21
+ send("\#{current_resource_name}_#{path_or_url}", *args)
21
22
  else
22
23
  send("\#{scope.to_s.pluralize}_#{path_or_url}", *args)
23
24
  end
@@ -28,6 +29,7 @@ module Devise
28
29
  class_eval <<-URL_HELPERS, __FILE__, __LINE__ + 1
29
30
  def #{method}(resource_or_scope, *args)
30
31
  scope = Devise::Mapping.find_scope!(resource_or_scope)
32
+ current_resource_name = _devise_path_name(scope, "current_\#{scope}")
31
33
  send("#{new_name}_#{path_or_url}", *args)
32
34
  end
33
35
  URL_HELPERS
@@ -39,6 +41,11 @@ module Devise
39
41
  def self.run_generate_hooks!
40
42
  self.override_registration_helpers!(Devise::URL_HELPERS[:registration])
41
43
  end
44
+
45
+ def _devise_path_name(scope, name)
46
+ Devise.mappings[scope].path_names[name.to_sym]
47
+ end
48
+ private :_devise_path_name
42
49
  end
43
50
  end
44
51
 
@@ -1,5 +1,5 @@
1
1
  module Devise
2
2
  module BetterRoutes
3
- VERSION = "0.0.1"
3
+ VERSION = "0.0.2"
4
4
  end
5
5
  end
@@ -36,18 +36,18 @@ describe Devise::BetterRoutes do
36
36
  it 'routes to rails_programmers#new' do
37
37
  expect(get('/rails_programmers/new')).to route_to('rails_programmers#new')
38
38
  end
39
- it 'routes to current_rails_programmers#cancel' do
40
- expect(get('/current_rails_programmer/cancel')).to route_to('current_rails_programmers#cancel')
39
+ it 'routes to me#cancel' do
40
+ expect(get('/me/cancel')).to route_to('me#cancel')
41
41
  end
42
- it 'routes to current_rails_programmers#edit' do
43
- expect(get('/current_rails_programmer/edit')).to route_to('current_rails_programmers#edit')
42
+ it 'routes to me#edit' do
43
+ expect(get('/me/edit')).to route_to('me#edit')
44
44
  end
45
- it 'routes to current_rails_programmers#update' do
46
- expect(put('/current_rails_programmer')).to route_to('current_rails_programmers#update')
47
- #expect(patch('/current_rails_programmer')).to route_to('current_rails_programmers#update')
45
+ it 'routes to me#update' do
46
+ expect(put('/me')).to route_to('me#update')
47
+ #expect(patch('/me')).to route_to('me#update')
48
48
  end
49
- it 'routes to current_rails_programmers#destroy' do
50
- expect(delete('/current_rails_programmer')).to route_to('current_rails_programmers#destroy')
49
+ it 'routes to me#destroy' do
50
+ expect(delete('/me')).to route_to('me#destroy')
51
51
  end
52
52
  end
53
53
  end
@@ -83,25 +83,25 @@ describe Devise::BetterRoutes do
83
83
  describe 'rails_programmers' do
84
84
  specify { expect(rails_programmers_path).to eq '/rails_programmers' }
85
85
  specify { expect(new_rails_programmer_path).to eq '/rails_programmers/new' }
86
- specify { expect(cancel_current_rails_programmer_path).to eq '/current_rails_programmer/cancel' }
87
- specify { expect(edit_current_rails_programmer_path).to eq '/current_rails_programmer/edit' }
88
- specify { expect(current_rails_programmer_path).to eq '/current_rails_programmer' }
86
+ specify { expect(cancel_me_path).to eq '/me/cancel' }
87
+ specify { expect(edit_me_path).to eq '/me/edit' }
88
+ specify { expect(me_path).to eq '/me' }
89
89
  it 'registration_path is delegated to rails_programmers_path' do
90
90
  expect(registration_path(:rails_programmer)).to eq rails_programmers_path
91
91
  end
92
- it 'registration_path is delegated to current_rails_programmer_path on current_rails_programmers' do
93
- instance_eval { def controller_name; 'current_rails_programmers' end }
94
- expect(registration_path(:rails_programmer)).to eq current_rails_programmer_path
92
+ it 'registration_path is delegated to me_path on me' do
93
+ instance_eval { def controller_name; 'me' end }
94
+ expect(registration_path(:rails_programmer)).to eq me_path
95
95
  instance_eval { undef controller_name }
96
96
  end
97
97
  it 'new_registration_path is delegated to new_rails_programmer_path' do
98
98
  expect(new_registration_path(:rails_programmer)).to eq new_rails_programmer_path
99
99
  end
100
- it 'cancel_registration_path is delegated to cancel_current_rails_programmer_path' do
101
- expect(cancel_registration_path(:rails_programmer)).to eq cancel_current_rails_programmer_path
100
+ it 'cancel_registration_path is delegated to cancel_me_path' do
101
+ expect(cancel_registration_path(:rails_programmer)).to eq cancel_me_path
102
102
  end
103
- it 'edit_registration_path is delegated to edit_current_rails_programmer_path' do
104
- expect(edit_registration_path(:rails_programmer)).to eq edit_current_rails_programmer_path
103
+ it 'edit_registration_path is delegated to edit_me_path' do
104
+ expect(edit_registration_path(:rails_programmer)).to eq edit_me_path
105
105
  end
106
106
  end
107
107
  end
@@ -0,0 +1,2 @@
1
+ class MeController < Devise::RegistrationsController
2
+ end
@@ -1,4 +1,4 @@
1
1
  RailsApp::Application.routes.draw do
2
2
  devise_for :users
3
- devise_for :rails_programmers
3
+ devise_for :rails_programmers, path_names: {current_rails_programmer: 'me'}
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: devise-better_routes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-23 00:00:00.000000000 Z
12
+ date: 2013-06-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: devise
@@ -147,8 +147,8 @@ files:
147
147
  - spec/rails_app/app/assets/stylesheets/application.css
148
148
  - spec/rails_app/app/controllers/application_controller.rb
149
149
  - spec/rails_app/app/controllers/concerns/.keep
150
- - spec/rails_app/app/controllers/current_rails_programmers_controller.rb
151
150
  - spec/rails_app/app/controllers/current_users_controller.rb
151
+ - spec/rails_app/app/controllers/me_controller.rb
152
152
  - spec/rails_app/app/controllers/rails_programmers_controller.rb
153
153
  - spec/rails_app/app/controllers/users_controller.rb
154
154
  - spec/rails_app/app/helpers/application_helper.rb
@@ -184,7 +184,7 @@ files:
184
184
  - spec/rails_app/public/500.html
185
185
  - spec/rails_app/public/favicon.ico
186
186
  - spec/spec_helper.rb
187
- homepage: ''
187
+ homepage: https://github.com/tkawa/devise-better_routes
188
188
  licenses:
189
189
  - MIT
190
190
  post_install_message:
@@ -199,7 +199,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
199
199
  version: '0'
200
200
  segments:
201
201
  - 0
202
- hash: -1753925327031690861
202
+ hash: 4262153083475956853
203
203
  required_rubygems_version: !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
@@ -208,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
208
208
  version: '0'
209
209
  segments:
210
210
  - 0
211
- hash: -1753925327031690861
211
+ hash: 4262153083475956853
212
212
  requirements: []
213
213
  rubyforge_project:
214
214
  rubygems_version: 1.8.24
@@ -223,8 +223,8 @@ test_files:
223
223
  - spec/rails_app/app/assets/stylesheets/application.css
224
224
  - spec/rails_app/app/controllers/application_controller.rb
225
225
  - spec/rails_app/app/controllers/concerns/.keep
226
- - spec/rails_app/app/controllers/current_rails_programmers_controller.rb
227
226
  - spec/rails_app/app/controllers/current_users_controller.rb
227
+ - spec/rails_app/app/controllers/me_controller.rb
228
228
  - spec/rails_app/app/controllers/rails_programmers_controller.rb
229
229
  - spec/rails_app/app/controllers/users_controller.rb
230
230
  - spec/rails_app/app/helpers/application_helper.rb
@@ -1,2 +0,0 @@
1
- class CurrentRailsProgrammersController < Devise::RegistrationsController
2
- end