authority 2.4.1 → 2.4.2

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/CHANGELOG.markdown CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  Authority does its best to use [semantic versioning](http://semver.org).
4
4
 
5
+ ## v2.4.2
6
+
7
+ Bugfix - make `authority_resource` inheritable. For instance, if you call `authorize_actions_for Llama` in one controller, a child controller does the same unless told otherwise.
8
+
5
9
  ## v2.4.1
6
10
 
7
11
  The controller method name given to `authorize_actions_for` no longer has to be public. (We don't want to force controllers to make any method public that shouldn't be a routable action.)
@@ -14,9 +14,7 @@ module Authority
14
14
 
15
15
  included do
16
16
  rescue_from(Authority::SecurityViolation, :with => Authority::Controller.security_violation_callback)
17
- class << self
18
- attr_accessor :authority_resource
19
- end
17
+ class_attribute :authority_resource, instance_reader: false
20
18
  end
21
19
 
22
20
  module ClassMethods
@@ -1,3 +1,3 @@
1
1
  module Authority
2
- VERSION = "2.4.1"
2
+ VERSION = "2.4.2"
3
3
  end
@@ -112,6 +112,31 @@ describe Authority::Controller do
112
112
 
113
113
  end
114
114
 
115
+ describe "authority_resource" do
116
+
117
+ let(:child_controller) { Class.new(controller_class) }
118
+
119
+ before :each do
120
+ controller_class.authorize_actions_for(resource_class)
121
+ end
122
+
123
+ it "remembers what it was set to" do
124
+ expect(controller_class.authority_resource).to eq(resource_class)
125
+ end
126
+
127
+ it "uses its parent controller's value by default" do
128
+ expect(child_controller.authority_resource).to eq(resource_class)
129
+ end
130
+
131
+ it "can be modified without affecting the parent controller" do
132
+ fancy_array = Class.new(Array)
133
+ child_controller.authorize_actions_for(fancy_array)
134
+ expect(child_controller.authority_resource).to eq(fancy_array)
135
+ expect(controller_class.authority_resource).to eq(resource_class)
136
+ end
137
+
138
+ end
139
+
115
140
  describe "authority_action" do
116
141
 
117
142
  it "modifies this controller's authority action map" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authority
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 2.4.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-02-14 00:00:00.000000000 Z
13
+ date: 2013-02-18 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: 1265936513199133765
92
+ hash: 3595065084412146682
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
@@ -98,7 +98,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  segments:
100
100
  - 0
101
- hash: 1265936513199133765
101
+ hash: 3595065084412146682
102
102
  requirements: []
103
103
  rubyforge_project:
104
104
  rubygems_version: 1.8.24