Module: RaceGuard::IndexIntegrity::SchemaIndexSend
- Defined in:
- lib/race_guard/index_integrity/schema_index_send.rb
Overview
Internal: extract IndexDefinition from add_index / t.index send nodes (Epic 5.2).
Class Method Summary collapse
Class Method Details
.try_unique_index(send_node, forced_table:) ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/race_guard/index_integrity/schema_index_send.rb', line 11 def try_unique_index(send_node, forced_table:) args = send_node.children.drop(2) table, cols_node, opts = extract_parts(args, forced_table: forced_table) return nil unless table && cols_node cols = SchemaAst.column_array_to_syms(cols_node) return nil unless cols && !cols.empty? return nil if hash_skipped?(opts) unique = hash_true?(opts, :unique) return nil unless unique name = hash_name(opts) IndexDefinition.new(table: table, columns: cols, unique: true, name: name) end |