Class: JsonMask::CompiledMask
- Inherits:
-
Object
- Object
- JsonMask::CompiledMask
- Defined in:
- lib/json_mask/compiled_mask.rb
Overview
An immutable, reusable field selector.
Instance Attribute Summary collapse
-
#fields ⇒ Object
readonly
Returns the value of attribute fields.
Instance Method Summary collapse
-
#call(value) ⇒ Hash, ...
(also: #filter)
Filters a JSON-compatible value using this selector.
-
#initialize(fields, selection_tree) ⇒ CompiledMask
constructor
A new instance of CompiledMask.
Constructor Details
#initialize(fields, selection_tree) ⇒ CompiledMask
Returns a new instance of CompiledMask.
8 9 10 11 12 |
# File 'lib/json_mask/compiled_mask.rb', line 8 def initialize(fields, selection_tree) @fields = fields&.dup&.freeze @selection_tree = selection_tree freeze end |
Instance Attribute Details
#fields ⇒ Object (readonly)
Returns the value of attribute fields.
6 7 8 |
# File 'lib/json_mask/compiled_mask.rb', line 6 def fields @fields end |
Instance Method Details
#call(value) ⇒ Hash, ... Also known as: filter
Filters a JSON-compatible value using this selector.
18 19 20 21 22 |
# File 'lib/json_mask/compiled_mask.rb', line 18 def call(value) return value unless @selection_tree Projector.call(value, @selection_tree) end |