Class: LcpRuby::Search::FilterMetadataBuilder
- Inherits:
-
Object
- Object
- LcpRuby::Search::FilterMetadataBuilder
- Defined in:
- lib/lcp_ruby/search/filter_metadata_builder.rb
Constant Summary collapse
- EXCLUDED_FIELD_NAMES =
%w[id created_at updated_at].freeze
- EXCLUDED_FIELD_TYPES =
%w[attachment rich_text json].freeze
Instance Attribute Summary collapse
-
#evaluator ⇒ Object
readonly
Returns the value of attribute evaluator.
-
#model_definition ⇒ Object
readonly
Returns the value of attribute model_definition.
-
#presenter_definition ⇒ Object
readonly
Returns the value of attribute presenter_definition.
Instance Method Summary collapse
- #build ⇒ Object
-
#initialize(presenter_definition, model_definition, evaluator) ⇒ FilterMetadataBuilder
constructor
A new instance of FilterMetadataBuilder.
Constructor Details
#initialize(presenter_definition, model_definition, evaluator) ⇒ FilterMetadataBuilder
Returns a new instance of FilterMetadataBuilder.
9 10 11 12 13 |
# File 'lib/lcp_ruby/search/filter_metadata_builder.rb', line 9 def initialize(presenter_definition, model_definition, evaluator) @presenter_definition = presenter_definition @model_definition = model_definition @evaluator = evaluator end |
Instance Attribute Details
#evaluator ⇒ Object (readonly)
Returns the value of attribute evaluator.
7 8 9 |
# File 'lib/lcp_ruby/search/filter_metadata_builder.rb', line 7 def evaluator @evaluator end |
#model_definition ⇒ Object (readonly)
Returns the value of attribute model_definition.
7 8 9 |
# File 'lib/lcp_ruby/search/filter_metadata_builder.rb', line 7 def model_definition @model_definition end |
#presenter_definition ⇒ Object (readonly)
Returns the value of attribute presenter_definition.
7 8 9 |
# File 'lib/lcp_ruby/search/filter_metadata_builder.rb', line 7 def presenter_definition @presenter_definition end |
Instance Method Details
#build ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/lcp_ruby/search/filter_metadata_builder.rb', line 15 def build { fields: build_fields, operator_labels: build_operator_labels, no_value_operators: OperatorRegistry::NO_VALUE_OPERATORS.map(&:to_s), multi_value_operators: OperatorRegistry::MULTI_VALUE_OPERATORS.map(&:to_s), range_operators: OperatorRegistry::RANGE_OPERATORS.map(&:to_s), parameterized_operators: OperatorRegistry::PARAMETERIZED_OPERATORS.map(&:to_s), presets: advanced_filter_config["presets"] || [], scopes: build_parameterized_scopes, config: { max_conditions: advanced_filter_config["max_conditions"] || 10, default_combinator: advanced_filter_config["default_combinator"] || "and", allow_or_groups: advanced_filter_config.fetch("allow_or_groups", true), query_language: advanced_filter_config.fetch("query_language", false), max_nesting_depth: advanced_filter_config["max_nesting_depth"] || 2 } } end |