Sha256: 0ecd5a77249ba5d44acb97dff36b3459e0f39994a5d47accd4ffa8bae26d3cb7
Contents?: true
Size: 1 KB
Versions: 1
Compression:
Stored size: 1 KB
Contents
# frozen_string_literal: true module ActiveRecord module Dbt module Column module Testable module UniqueTestable REQUIRED_UNIQUE_TESTABLE_METHODS = %i[table_name column_name primary_keys].freeze REQUIRED_UNIQUE_TESTABLE_METHODS.each do |method_name| define_method(method_name) do raise NotImplementedError, "You must implement #{self.class}##{__method__}" end end def unique_test unique? ? 'unique' : nil end private def unique? primary_keys.include?(column_name) || unique_columns.include?(column_name) end def unique_columns ActiveRecord::Base.connection.indexes(table_name).each_with_object([]) do |index, array| if index.unique == true && (unique_indexes = index.columns).size == 1 array << unique_indexes.first end end end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
activerecord-dbt-0.1.0 | lib/active_record/dbt/column/testable/unique_testable.rb |