Class: ParadeDB::Index::DefinitionCompiler
- Inherits:
-
Object
- Object
- ParadeDB::Index::DefinitionCompiler
- Defined in:
- lib/parade_db/index.rb
Overview
Consumed by migration helpers; validates and normalizes the DSL class
Defined Under Namespace
Constant Summary collapse
- FIELD_OPTION_KEYS =
%i[fast record normalizer expand_dots].freeze
Class Method Summary collapse
Class Method Details
.compile!(klass) ⇒ Object
188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 |
# File 'lib/parade_db/index.rb', line 188 def compile!(klass) table_name = require_symbol!(klass.table_name, "table_name") key_field = require_symbol!(klass.key_field, "key_field") index_name = klass.index_name.to_s raise InvalidIndexDefinition, "index_name must be present" if index_name.strip.empty? raw_fields = klass.fields entries, = build_entries(raw_fields) if entries.empty? raise InvalidIndexDefinition, "fields must include at least one indexed field" end = (klass.) validate_key_field_shape!(key_field.to_s, entries) validate_query_key_collisions!(entries) Compiled.new( table_name: table_name, key_field: key_field, index_name: index_name, entries: entries, index_options: , field_options: , where: klass.where ) end |