cancan-rest-links 0.1.3 → 0.1.4
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.
- data/{README.rdoc → README.markdown} +13 -4
- data/Rakefile +2 -2
- data/VERSION +1 -1
- data/cancan-rest-links.gemspec +12 -10
- data/spec/cancan-rest-links/link_helpers_spec.rb +5 -5
- data/spec/cancan-rest-links/link_with_cream_spec.rb +124 -0
- metadata +11 -11
@@ -1,8 +1,17 @@
|
|
1
|
-
|
1
|
+
# CanCan REST links
|
2
2
|
|
3
|
-
|
3
|
+
REST link helpers for the [CanCan](http://github.com/ryanb/cancan) permission system.
|
4
4
|
|
5
|
-
|
5
|
+
Note: The link helpers require a hash called #auth_labels, which is used to look-up a label to display for the link
|
6
|
+
|
7
|
+
<pre>
|
8
|
+
label = auth_labels[:new]
|
9
|
+
...
|
10
|
+
</pre>
|
11
|
+
|
12
|
+
An example of this functionality can be found in the [Cream](http://github.com/kristianmandrup/cream) framework where this gem is used.
|
13
|
+
|
14
|
+
## Note on Patches/Pull Requests
|
6
15
|
|
7
16
|
* Fork the project.
|
8
17
|
* Make your feature addition or bug fix.
|
@@ -12,6 +21,6 @@ Description goes here.
|
|
12
21
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
13
22
|
* Send me a pull request. Bonus points for topic branches.
|
14
23
|
|
15
|
-
|
24
|
+
## Copyright
|
16
25
|
|
17
26
|
Copyright (c) 2010 Kristian Mandrup. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -7,10 +7,10 @@ begin
|
|
7
7
|
gem.email = "kmandrup@gmail.com"
|
8
8
|
gem.homepage = "http://github.com/kristianmandrup/cancan-rest-links"
|
9
9
|
gem.authors = ["Kristian Mandrup"]
|
10
|
-
gem.add_development_dependency "rspec", "
|
10
|
+
gem.add_development_dependency "rspec", ">= 2.0.0"
|
11
11
|
gem.add_development_dependency "rspec-action_view", "~> 0.3.1"
|
12
12
|
|
13
|
-
gem.add_dependency 'cancan', "~> 1.
|
13
|
+
gem.add_dependency 'cancan', "~> 1.4.0"
|
14
14
|
gem.add_dependency 'require_all', "~> 1.2.0"
|
15
15
|
gem.add_dependency 'sugar-high', "~> 0.2.10"
|
16
16
|
gem.add_dependency 'r3_plugin_toolbox', "~> 0.3.6"
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.4
|
data/cancan-rest-links.gemspec
CHANGED
@@ -5,23 +5,23 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{cancan-rest-links}
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.4"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Kristian Mandrup"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-10-18}
|
13
13
|
s.description = %q{Guard your links with permissions}
|
14
14
|
s.email = %q{kmandrup@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
|
-
"README.
|
17
|
+
"README.markdown"
|
18
18
|
]
|
19
19
|
s.files = [
|
20
20
|
".document",
|
21
21
|
".gitignore",
|
22
22
|
".rspec",
|
23
23
|
"LICENSE",
|
24
|
-
"README.
|
24
|
+
"README.markdown",
|
25
25
|
"Rakefile",
|
26
26
|
"VERSION",
|
27
27
|
"cancan-rest-links.gemspec",
|
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
|
|
31
31
|
"lib/cancan-rest-links/rails/configure.rb",
|
32
32
|
"log/development.log",
|
33
33
|
"spec/cancan-rest-links/link_helpers_spec.rb",
|
34
|
+
"spec/cancan-rest-links/link_with_cream_spec.rb",
|
34
35
|
"spec/cancan-rest-links/rails/configure_spec.rb",
|
35
36
|
"spec/spec_helper.rb"
|
36
37
|
]
|
@@ -41,6 +42,7 @@ Gem::Specification.new do |s|
|
|
41
42
|
s.summary = %q{Rest link helpers for CanCan}
|
42
43
|
s.test_files = [
|
43
44
|
"spec/cancan-rest-links/link_helpers_spec.rb",
|
45
|
+
"spec/cancan-rest-links/link_with_cream_spec.rb",
|
44
46
|
"spec/cancan-rest-links/rails/configure_spec.rb",
|
45
47
|
"spec/spec_helper.rb"
|
46
48
|
]
|
@@ -50,24 +52,24 @@ Gem::Specification.new do |s|
|
|
50
52
|
s.specification_version = 3
|
51
53
|
|
52
54
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
53
|
-
s.add_development_dependency(%q<rspec>, ["
|
55
|
+
s.add_development_dependency(%q<rspec>, [">= 2.0.0"])
|
54
56
|
s.add_development_dependency(%q<rspec-action_view>, ["~> 0.3.1"])
|
55
|
-
s.add_runtime_dependency(%q<cancan>, ["~> 1.
|
57
|
+
s.add_runtime_dependency(%q<cancan>, ["~> 1.4.0"])
|
56
58
|
s.add_runtime_dependency(%q<require_all>, ["~> 1.2.0"])
|
57
59
|
s.add_runtime_dependency(%q<sugar-high>, ["~> 0.2.10"])
|
58
60
|
s.add_runtime_dependency(%q<r3_plugin_toolbox>, ["~> 0.3.6"])
|
59
61
|
else
|
60
|
-
s.add_dependency(%q<rspec>, ["
|
62
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0"])
|
61
63
|
s.add_dependency(%q<rspec-action_view>, ["~> 0.3.1"])
|
62
|
-
s.add_dependency(%q<cancan>, ["~> 1.
|
64
|
+
s.add_dependency(%q<cancan>, ["~> 1.4.0"])
|
63
65
|
s.add_dependency(%q<require_all>, ["~> 1.2.0"])
|
64
66
|
s.add_dependency(%q<sugar-high>, ["~> 0.2.10"])
|
65
67
|
s.add_dependency(%q<r3_plugin_toolbox>, ["~> 0.3.6"])
|
66
68
|
end
|
67
69
|
else
|
68
|
-
s.add_dependency(%q<rspec>, ["
|
70
|
+
s.add_dependency(%q<rspec>, [">= 2.0.0"])
|
69
71
|
s.add_dependency(%q<rspec-action_view>, ["~> 0.3.1"])
|
70
|
-
s.add_dependency(%q<cancan>, ["~> 1.
|
72
|
+
s.add_dependency(%q<cancan>, ["~> 1.4.0"])
|
71
73
|
s.add_dependency(%q<require_all>, ["~> 1.2.0"])
|
72
74
|
s.add_dependency(%q<sugar-high>, ["~> 0.2.10"])
|
73
75
|
s.add_dependency(%q<r3_plugin_toolbox>, ["~> 0.3.6"])
|
@@ -9,7 +9,7 @@ end
|
|
9
9
|
describe CanCan::Link::Rest do
|
10
10
|
describe '#index_link' do
|
11
11
|
it "should create an index link" do
|
12
|
-
|
12
|
+
view_engine do |e, view|
|
13
13
|
label = 'index'
|
14
14
|
path = 'post/index'
|
15
15
|
post = Post.new
|
@@ -30,7 +30,7 @@ describe CanCan::Link::Rest do
|
|
30
30
|
|
31
31
|
describe '#create_link' do
|
32
32
|
it "should create a create link" do
|
33
|
-
|
33
|
+
view_engine do |e, view|
|
34
34
|
label = 'create'
|
35
35
|
path = 'post/create'
|
36
36
|
post = Post.new
|
@@ -51,7 +51,7 @@ describe CanCan::Link::Rest do
|
|
51
51
|
|
52
52
|
describe '#edit_link' do
|
53
53
|
it "should create a create link" do
|
54
|
-
|
54
|
+
view_engine do |e, view|
|
55
55
|
label = 'create'
|
56
56
|
path = 'post/create'
|
57
57
|
post = Post.new
|
@@ -71,7 +71,7 @@ describe CanCan::Link::Rest do
|
|
71
71
|
|
72
72
|
describe '#delete_link' do
|
73
73
|
it "should create a delete link" do
|
74
|
-
|
74
|
+
view_engine do |e, view|
|
75
75
|
label = 'delete'
|
76
76
|
path = 'post/delete'
|
77
77
|
post = Post.new
|
@@ -92,7 +92,7 @@ describe CanCan::Link::Rest do
|
|
92
92
|
|
93
93
|
describe '#show_link' do
|
94
94
|
it "should create a show link" do
|
95
|
-
|
95
|
+
view_engine do |e, view|
|
96
96
|
label = 'show'
|
97
97
|
path = 'post/show'
|
98
98
|
post = Post.new
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
# extend_view_with CanCan::Link::Rest
|
4
|
+
require 'cancan-rest-links/rails/configure'
|
5
|
+
require 'cream'
|
6
|
+
|
7
|
+
class Post
|
8
|
+
end
|
9
|
+
|
10
|
+
# From cream: The following module should be added to Rails view
|
11
|
+
# translate_labels has been stubbed out to just return the action as the translation for each "action"
|
12
|
+
module Cream::Helper
|
13
|
+
module AuthLabel
|
14
|
+
def translate_labels
|
15
|
+
labels = {}
|
16
|
+
%w{new edit delete show sign_in sign_out sign_up edit_registration}.each do |action|
|
17
|
+
labels[action.to_sym] = action
|
18
|
+
end
|
19
|
+
labels[:confirm] = 'confirm'
|
20
|
+
labels
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe CanCan::Link::Rest do
|
26
|
+
describe '#index_link' do
|
27
|
+
it "should create an index link" do
|
28
|
+
|
29
|
+
# TODO: Should be renamed to:- view_engine do ...
|
30
|
+
# view engine
|
31
|
+
view_engine do |e, view|
|
32
|
+
label = 'index'
|
33
|
+
path = 'post/index'
|
34
|
+
post = Post.new
|
35
|
+
|
36
|
+
puts view.auth_labels.inspect
|
37
|
+
|
38
|
+
view.stubs(:posts_path).returns path
|
39
|
+
view.stubs(:can?).returns true
|
40
|
+
view.stubs(:link_to).with(label, path).returns 'it works'
|
41
|
+
|
42
|
+
res = e.run_template_locals :post => post, :name => label do
|
43
|
+
%{<%= index_link(post, name) %> }
|
44
|
+
end
|
45
|
+
res.should match /it works/
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#create_link' do
|
51
|
+
it "should create a create link" do
|
52
|
+
view_engine do |e, view|
|
53
|
+
label = 'create'
|
54
|
+
path = 'post/create'
|
55
|
+
post = Post.new
|
56
|
+
|
57
|
+
view.stubs(:new_post_path).returns path
|
58
|
+
view.stubs(:can?).returns true
|
59
|
+
view.stubs(:link_to).with(label, path).returns 'it works'
|
60
|
+
|
61
|
+
res = e.run_template_locals :post => post, :name => label do
|
62
|
+
%{<%= create_link(post, name) %> }
|
63
|
+
end
|
64
|
+
res.should match /it works/
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
describe '#edit_link' do
|
70
|
+
it "should create a create link" do
|
71
|
+
view_engine do |e, view|
|
72
|
+
label = 'create'
|
73
|
+
path = 'post/create'
|
74
|
+
post = Post.new
|
75
|
+
|
76
|
+
view.stubs(:can?).returns true
|
77
|
+
view.stubs(:link_to).with(label, [:edit, post]).returns 'it works'
|
78
|
+
|
79
|
+
res = e.run_template_locals :post => post, :name => label do
|
80
|
+
%{<%= edit_link(post, name) %> }
|
81
|
+
end
|
82
|
+
res.should match /it works/
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
describe '#delete_link' do
|
88
|
+
it "should create a delete link" do
|
89
|
+
view_engine do |e, view|
|
90
|
+
label = 'delete'
|
91
|
+
path = 'post/delete'
|
92
|
+
post = Post.new
|
93
|
+
|
94
|
+
view.stubs(:can?).returns true
|
95
|
+
view.stubs(:link_to).returns 'it works'
|
96
|
+
|
97
|
+
res = e.run_template_locals :post => post, :name => label do
|
98
|
+
%{<%= delete_link(post, name) %> }
|
99
|
+
end
|
100
|
+
res.should match /it works/
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
|
106
|
+
describe '#show_link' do
|
107
|
+
it "should create a show link" do
|
108
|
+
view_engine do |e, view|
|
109
|
+
label = 'show'
|
110
|
+
path = 'post/show'
|
111
|
+
post = Post.new
|
112
|
+
|
113
|
+
view.stubs(:can?).returns true
|
114
|
+
view.stubs(:link_to).with(label, post).returns 'it works'
|
115
|
+
|
116
|
+
res = e.run_template_locals :post => post, :name => label do
|
117
|
+
%{<%= show_link(post, name) %> }
|
118
|
+
end
|
119
|
+
res.should match /it works/
|
120
|
+
end
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
8
|
+
- 4
|
9
|
+
version: 0.1.4
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Kristian Mandrup
|
@@ -14,7 +14,7 @@ autorequire:
|
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-
|
17
|
+
date: 2010-10-18 00:00:00 +02:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
@@ -23,15 +23,13 @@ dependencies:
|
|
23
23
|
requirement: &id001 !ruby/object:Gem::Requirement
|
24
24
|
none: false
|
25
25
|
requirements:
|
26
|
-
- -
|
26
|
+
- - ">="
|
27
27
|
- !ruby/object:Gem::Version
|
28
28
|
segments:
|
29
29
|
- 2
|
30
30
|
- 0
|
31
31
|
- 0
|
32
|
-
|
33
|
-
- 22
|
34
|
-
version: 2.0.0.beta.22
|
32
|
+
version: 2.0.0
|
35
33
|
type: :development
|
36
34
|
version_requirements: *id001
|
37
35
|
- !ruby/object:Gem::Dependency
|
@@ -59,9 +57,9 @@ dependencies:
|
|
59
57
|
- !ruby/object:Gem::Version
|
60
58
|
segments:
|
61
59
|
- 1
|
62
|
-
- 3
|
63
60
|
- 4
|
64
|
-
|
61
|
+
- 0
|
62
|
+
version: 1.4.0
|
65
63
|
type: :runtime
|
66
64
|
version_requirements: *id003
|
67
65
|
- !ruby/object:Gem::Dependency
|
@@ -117,13 +115,13 @@ extensions: []
|
|
117
115
|
|
118
116
|
extra_rdoc_files:
|
119
117
|
- LICENSE
|
120
|
-
- README.
|
118
|
+
- README.markdown
|
121
119
|
files:
|
122
120
|
- .document
|
123
121
|
- .gitignore
|
124
122
|
- .rspec
|
125
123
|
- LICENSE
|
126
|
-
- README.
|
124
|
+
- README.markdown
|
127
125
|
- Rakefile
|
128
126
|
- VERSION
|
129
127
|
- cancan-rest-links.gemspec
|
@@ -133,6 +131,7 @@ files:
|
|
133
131
|
- lib/cancan-rest-links/rails/configure.rb
|
134
132
|
- log/development.log
|
135
133
|
- spec/cancan-rest-links/link_helpers_spec.rb
|
134
|
+
- spec/cancan-rest-links/link_with_cream_spec.rb
|
136
135
|
- spec/cancan-rest-links/rails/configure_spec.rb
|
137
136
|
- spec/spec_helper.rb
|
138
137
|
has_rdoc: true
|
@@ -169,5 +168,6 @@ specification_version: 3
|
|
169
168
|
summary: Rest link helpers for CanCan
|
170
169
|
test_files:
|
171
170
|
- spec/cancan-rest-links/link_helpers_spec.rb
|
171
|
+
- spec/cancan-rest-links/link_with_cream_spec.rb
|
172
172
|
- spec/cancan-rest-links/rails/configure_spec.rb
|
173
173
|
- spec/spec_helper.rb
|