Class: Julewire::Rails::ParameterFilterProcessor
- Inherits:
-
Object
- Object
- Julewire::Rails::ParameterFilterProcessor
- Defined in:
- lib/julewire/rails/parameter_filter_processor.rb
Instance Method Summary collapse
- #call(draft) ⇒ Object
-
#initialize(filters = rails_filter_parameters) ⇒ ParameterFilterProcessor
constructor
A new instance of ParameterFilterProcessor.
Constructor Details
#initialize(filters = rails_filter_parameters) ⇒ ParameterFilterProcessor
Returns a new instance of ParameterFilterProcessor.
11 12 13 14 15 16 17 18 19 |
# File 'lib/julewire/rails/parameter_filter_processor.rb', line 11 def initialize(filters = rails_filter_parameters) @filter = build_filter(filters) # Rails exposes filter_param for scalar fields; use it to avoid whole-record # copies when the filter list has no Proc semantics to preserve. Regex-only # filters fall back to whole-record filtering unless they can scalarize a # required record container. @filter_param_fast_path = filter_param_safe?(filters) && @filter.respond_to?(:filter_param) @field_plan = ParameterFilterPlan.build(filters) if @filter_param_fast_path end |
Instance Method Details
#call(draft) ⇒ Object
21 22 23 24 25 26 |
# File 'lib/julewire/rails/parameter_filter_processor.rb', line 21 def call(draft) validate_draft!(draft) return if @filter.nil? @filter_param_fast_path ? filter_draft_fields!(draft) : filter_whole_record!(draft) end |