Class: ActiveModel::MassAssignmentSecurity::WhiteListBlock
- Inherits:
-
PermissionSet
- Object
- PermissionSet
- ActiveModel::MassAssignmentSecurity::WhiteListBlock
- Defined in:
- lib/attr_accessible_block.rb
Constant Summary collapse
- @@variables =
{}
- @@always_accessible =
nil
Instance Attribute Summary collapse
-
#attributes ⇒ Object
readonly
Returns the value of attribute attributes.
-
#record ⇒ Object
readonly
Returns the value of attribute record.
Class Method Summary collapse
Instance Method Summary collapse
- #add(attributes) ⇒ Object
-
#initialize(blocks) ⇒ WhiteListBlock
constructor
A new instance of WhiteListBlock.
- #sanitize(attributes, record) ⇒ Object
Constructor Details
#initialize(blocks) ⇒ WhiteListBlock
Returns a new instance of WhiteListBlock.
61 62 63 64 |
# File 'lib/attr_accessible_block.rb', line 61 def initialize(blocks) @blocks = blocks super end |
Instance Attribute Details
#attributes ⇒ Object (readonly)
Returns the value of attribute attributes.
33 34 35 |
# File 'lib/attr_accessible_block.rb', line 33 def attributes @attributes end |
#record ⇒ Object (readonly)
Returns the value of attribute record.
33 34 35 |
# File 'lib/attr_accessible_block.rb', line 33 def record @record end |
Class Method Details
.add_variable(name, &block) ⇒ Object
70 71 72 73 |
# File 'lib/attr_accessible_block.rb', line 70 def self.add_variable(name, &block) @@variables[name] = block attr_reader name end |
.always_accessible(&block) ⇒ Object
75 76 77 |
# File 'lib/attr_accessible_block.rb', line 75 def self.always_accessible(&block) @@always_accessible = block end |
Instance Method Details
#add(attributes) ⇒ Object
66 67 68 |
# File 'lib/attr_accessible_block.rb', line 66 def add(attributes) Array.wrap(attributes).map(&:to_s).each { |attribute| super(attribute) } end |
#sanitize(attributes, record) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/attr_accessible_block.rb', line 38 def sanitize(attributes, record) @attributes = attributes @@variables.each do |name, func| instance_variable_set("@#{name}", func.call) end @record = record always_accessible = (@@always_accessible ? instance_eval(&@@always_accessible) : false) unless always_accessible @blocks.each do |block| instance_eval(&block) end flatten! reject_attributes! end @attributes end |