canable 0.1.1 → 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.
Files changed (4) hide show
  1. data/lib/canable.rb +3 -3
  2. data/test/test_enforcers.rb +13 -0
  3. metadata +21 -11
  4. data/.gitignore +0 -22
@@ -1,5 +1,5 @@
1
1
  module Canable
2
- Version = '0.1.1'
2
+ Version = '0.2.0'
3
3
 
4
4
  # Module that holds all the can_action? methods.
5
5
  module Cans; end
@@ -70,8 +70,8 @@ module Canable
70
70
  current_user.can_#{can}?(resource)
71
71
  end
72
72
 
73
- def enforce_#{can}_permission(resource)
74
- raise Canable::Transgression unless can_#{can}?(resource)
73
+ def enforce_#{can}_permission(resource, message="")
74
+ raise(Canable::Transgression, message) unless can_#{can}?(resource)
75
75
  end
76
76
  private :enforce_#{can}_permission
77
77
  EOM
@@ -20,6 +20,10 @@ class EnforcersTest < Test::Unit::TestCase
20
20
  def update
21
21
  enforce_update_permission(article)
22
22
  end
23
+
24
+ def edit
25
+ enforce_update_permission(article, "You Can't Edit This")
26
+ end
23
27
  end
24
28
 
25
29
  @article = mock('article')
@@ -43,5 +47,14 @@ class EnforcersTest < Test::Unit::TestCase
43
47
  @controller.current_user = nil
44
48
  assert_raises(Canable::Transgression) { @controller.update }
45
49
  end
50
+
51
+ should "pass message around the stack" do
52
+ @controller.current_user = nil
53
+ begin
54
+ @controller.edit
55
+ rescue Canable::Transgression => e
56
+ assert_equal e.message, "You Can't Edit This"
57
+ end
58
+ end
46
59
  end
47
60
  end
metadata CHANGED
@@ -1,12 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: canable
3
3
  version: !ruby/object:Gem::Version
4
- prerelease: false
4
+ hash: 23
5
+ prerelease:
5
6
  segments:
6
7
  - 0
7
- - 1
8
- - 1
9
- version: 0.1.1
8
+ - 2
9
+ - 0
10
+ version: 0.2.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - John Nunemaker
@@ -14,16 +15,17 @@ autorequire:
14
15
  bindir: bin
15
16
  cert_chain: []
16
17
 
17
- date: 2010-06-23 00:00:00 -04:00
18
- default_executable:
18
+ date: 2011-06-30 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: shoulda
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
+ none: false
24
25
  requirements:
25
26
  - - ~>
26
27
  - !ruby/object:Gem::Version
28
+ hash: 35
27
29
  segments:
28
30
  - 2
29
31
  - 10
@@ -35,9 +37,11 @@ dependencies:
35
37
  name: mocha
36
38
  prerelease: false
37
39
  requirement: &id002 !ruby/object:Gem::Requirement
40
+ none: false
38
41
  requirements:
39
42
  - - ~>
40
43
  - !ruby/object:Gem::Version
44
+ hash: 43
41
45
  segments:
42
46
  - 0
43
47
  - 9
@@ -49,9 +53,11 @@ dependencies:
49
53
  name: mongo_mapper
50
54
  prerelease: false
51
55
  requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
52
57
  requirements:
53
58
  - - ">="
54
59
  - !ruby/object:Gem::Version
60
+ hash: 3
55
61
  segments:
56
62
  - 0
57
63
  version: "0"
@@ -61,9 +67,11 @@ dependencies:
61
67
  name: yard
62
68
  prerelease: false
63
69
  requirement: &id004 !ruby/object:Gem::Requirement
70
+ none: false
64
71
  requirements:
65
72
  - - ">="
66
73
  - !ruby/object:Gem::Version
74
+ hash: 3
67
75
  segments:
68
76
  - 0
69
77
  version: "0"
@@ -80,7 +88,6 @@ extra_rdoc_files:
80
88
  - README.rdoc
81
89
  files:
82
90
  - .document
83
- - .gitignore
84
91
  - LICENSE
85
92
  - README.rdoc
86
93
  - Rakefile
@@ -91,33 +98,36 @@ files:
91
98
  - test/test_canable.rb
92
99
  - test/test_cans.rb
93
100
  - test/test_enforcers.rb
94
- has_rdoc: true
95
101
  homepage: http://github.com/jnunemaker/canable
96
102
  licenses: []
97
103
 
98
104
  post_install_message:
99
- rdoc_options:
100
- - --charset=UTF-8
105
+ rdoc_options: []
106
+
101
107
  require_paths:
102
108
  - lib
103
109
  required_ruby_version: !ruby/object:Gem::Requirement
110
+ none: false
104
111
  requirements:
105
112
  - - ">="
106
113
  - !ruby/object:Gem::Version
114
+ hash: 3
107
115
  segments:
108
116
  - 0
109
117
  version: "0"
110
118
  required_rubygems_version: !ruby/object:Gem::Requirement
119
+ none: false
111
120
  requirements:
112
121
  - - ">="
113
122
  - !ruby/object:Gem::Version
123
+ hash: 3
114
124
  segments:
115
125
  - 0
116
126
  version: "0"
117
127
  requirements: []
118
128
 
119
129
  rubyforge_project:
120
- rubygems_version: 1.3.6
130
+ rubygems_version: 1.7.2
121
131
  signing_key:
122
132
  specification_version: 3
123
133
  summary: Simple permissions that I have used on my last several projects so I figured it was time to abstract and wrap up into something more easily reusable.
data/.gitignore DELETED
@@ -1,22 +0,0 @@
1
- ## MAC OS
2
- .DS_Store
3
-
4
- ## TEXTMATE
5
- *.tmproj
6
- tmtags
7
-
8
- ## EMACS
9
- *~
10
- \#*
11
- .\#*
12
-
13
- ## VIM
14
- *.swp
15
-
16
- ## PROJECT::GENERAL
17
- coverage
18
- rdoc
19
- pkg
20
-
21
- ## PROJECT::SPECIFIC
22
- tmp