Module: TimeRangeUniqueness::ConstraintNaming

Defined in:
lib/time_range_uniqueness/constraint_naming.rb

Class Method Summary collapse

Class Method Details

.default_constraint_name(table, scope_columns, time_range_column) ⇒ Object



11
12
13
14
15
16
17
# File 'lib/time_range_uniqueness/constraint_naming.rb', line 11

def default_constraint_name(table, scope_columns, time_range_column)
  name = "exclude_#{table}_on_#{[scope_columns, time_range_column].flatten.join('_')}"
  return name if name.length <= MAX_IDENTIFIER_LENGTH

  digest = Digest::SHA256.hexdigest(name)[0, 10]
  "#{name[0, MAX_IDENTIFIER_LENGTH - digest.length - 1]}_#{digest}"
end