Class: ActiveRecord::FilterAttributeHandler
Do not use. This class is for internal use only.
Relationships & Source Files | |
Inherits: | Object |
Defined in: | activerecord/lib/active_record/filter_attribute_handler.rb |
Class Method Summary
Instance Attribute Summary
- #app readonly private
- #collecting? ⇒ Boolean readonly private
Instance Method Summary
- #enable
- #apply_collected_attributes private
- #apply_filter(klass, list) private
- #attribute_was_declared(klass, list) private
- #collect_for_later(klass, list) private
- #install_collecting_hook private
Constructor Details
.new(app) ⇒ FilterAttributeHandler
Class Method Details
.on_sensitive_attribute_declared(&block)
[ GitHub ].sensitive_attribute_was_declared(klass, list)
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 11
def sensitive_attribute_was_declared(klass, list) @sensitive_attribute_declaration_listeners&.each do |block| block.call(klass, list) end end
Instance Attribute Details
#app (readonly, private)
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 32
attr_reader :app
#collecting? ⇒ Boolean
(readonly, private)
[ GitHub ]
# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 54
def collecting? @collecting end
Instance Method Details
#apply_collected_attributes (private)
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 48
def apply_collected_attributes @attributes_by_class.each do |klass, list| apply_filter(klass, list) end end
#apply_filter(klass, list) (private)
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 63
def apply_filter(klass, list) list.each do |attribute| next if klass.abstract_class? || klass == Base klass_name = klass.name ? klass.model_name.element : nil filter = [klass_name, attribute.to_s].compact.join(".") app.config.filter_parameters << filter unless app.config.filter_parameters.include?(filter) end end
#attribute_was_declared(klass, list) (private)
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 40
def attribute_was_declared(klass, list) if collecting? collect_for_later(klass, list) else apply_filter(klass, list) end end
#collect_for_later(klass, list) (private)
[ GitHub ]#enable
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 24
def enable install_collecting_hook apply_collected_attributes @collecting = false end
#install_collecting_hook (private)
[ GitHub ]# File 'activerecord/lib/active_record/filter_attribute_handler.rb', line 34
def install_collecting_hook self.class.on_sensitive_attribute_declared do |klass, list| attribute_was_declared(klass, list) end end