class ActiveRecord::ConnectionAdapters::Spanner::IndexDefinition

Attributes

interleave_in[R]
null_filtered[R]
orders[R]
storing[R]

Public Class Methods

new(\ table_name, name, columns, unique: false, null_filtered: false, interleave_in: nil, storing: nil, orders: nil) click to toggle source
# File lib/active_record/connection_adapters/spanner/schema_definitions.rb, line 88
def initialize \
    table_name,
    name,
    columns,
    unique: false,
    null_filtered: false,
    interleave_in: nil,
    storing: nil,
    orders: nil
  @table = table_name
  @name = name
  @unique = unique
  @null_filtered = null_filtered
  @interleave_in = interleave_in
  @storing = Array(storing)
  columns = columns.split(/\W/) if columns.is_a? String
  @columns = Array(columns).map(&:to_s)
  @orders = orders || {}

  unless @orders.is_a? Hash
    @orders = columns.each_with_object({}) { |c, r| r[c] = orders }
  end

  @orders = @orders.symbolize_keys
end

Public Instance Methods

columns_with_order() click to toggle source
# File lib/active_record/connection_adapters/spanner/schema_definitions.rb, line 114
def columns_with_order
  columns.each_with_object({}) do |c, result|
    result[c] = orders[c.to_sym].to_s.upcase
  end
end