accessible_for 0.3.1 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -37,11 +37,11 @@ accessible_for API (to avoid name conflicts).
37
37
  # and specify a single value instead of an array
38
38
  accessible_for :manager => :promotion
39
39
 
40
- # If that's not DRY enough can compose access lists from other roles
41
- # using the class method accessible_attributes
40
+ # If that's not DRY enough you can compose access lists from other roles
41
+ # using the class method accessible_by
42
42
  accessible_for :common => [ :filling, :topping ]
43
- accessible_for :customer => accessible_attributes(:common) + [ :rating ]
44
- accessible_for :manager => accessible_attributes(:common) + [ :price, :promotion ]
43
+ accessible_for :customer => accessible_by(:common) + [ :rating ]
44
+ accessible_for :manager => accessible_by(:common) + [ :price, :promotion ]
45
45
 
46
46
  def update
47
47
  Taco.find(params[:id]).update_attributes!(taco_params)
@@ -1,37 +1,34 @@
1
1
  require 'mass_assignment_backport'
2
2
 
3
3
  module AccessibleFor
4
- VERSION = "0.3.1"
4
+ VERSION = "0.4.0"
5
5
 
6
6
  def self.included(mod)
7
7
  mod.extend ClassMethods
8
8
  end
9
9
 
10
10
  module ClassMethods
11
- attr_accessor :_accessible_attributes
11
+ attr_accessor :_accessible_by
12
12
 
13
13
  def accessible_for params
14
14
  params.each do |role, attrs|
15
- self._accessible_attributes ||= {}
15
+ self._accessible_by ||= {}
16
16
  [role].flatten.each do |name|
17
- self._accessible_attributes[name] = accessible_attributes(name) + [attrs].flatten
17
+ self._accessible_by[name] = accessible_by(name) + [attrs].flatten
18
18
  end
19
19
  end
20
20
  end
21
21
 
22
- def accessible_attributes role
23
- _accessible_attributes[role] || []
22
+ def accessible_by role
23
+ _accessible_by && _accessible_by[role] || []
24
24
  end
25
25
  end
26
26
 
27
27
  def sanitize_for role, values
28
28
  return nil if values.nil?
29
- if !self.class._accessible_attributes || self.class._accessible_attributes[role].nil?
30
- return {}
31
- end
32
29
  result = block_given? ? nil : {}
33
30
  values.each do |k, v|
34
- if self.class._accessible_attributes[role].include?(k.to_sym)
31
+ if self.class.accessible_by(role).include?(k.to_sym)
35
32
  if block_given?
36
33
  yield k, v
37
34
  else
@@ -12,7 +12,7 @@ module MassAssignmentBackport
12
12
  end
13
13
 
14
14
  def accessible_attributes role=:default
15
- super role
15
+ accessible_by role
16
16
  end
17
17
  end
18
18
 
@@ -3,7 +3,7 @@ require 'accessible_for'
3
3
  class AccessibleForTest < MiniTest::Unit::TestCase
4
4
  include AccessibleFor
5
5
  accessible_for :default => :topping
6
- accessible_for :manager => accessible_attributes(:default) + [:price]
6
+ accessible_for :manager => accessible_by(:default) + [:price]
7
7
 
8
8
  def test_nil_params
9
9
  assert_nil sanitize_for(:default, nil)
@@ -33,7 +33,7 @@ class AccessibleForTest < MiniTest::Unit::TestCase
33
33
  end
34
34
 
35
35
  class UnspecifiedTest
36
- include MassAssignmentBackport
36
+ include AccessibleFor
37
37
  end
38
38
 
39
39
  def test_unspecified_strips_values
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: accessible_for
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
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: 2012-03-07 00:00:00.000000000Z
12
+ date: 2012-03-08 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: ! " This is a simple mass-assignment security module loosely based
15
15
  on\n ActiveModel::MassAssignmentSecurity. It attempts to steal the good ideas\n