# File lib/activerecord_spanner_adapter/index.rb, line 35 def primary? @type == "PRIMARY_KEY" end
class ActiveRecordSpannerAdapter::Index
Attributes
columns[RW]
interleave_in[RW]
name[RW]
null_filtered[RW]
state[RW]
storing[RW]
table[RW]
type[RW]
unique[RW]
Public Class Methods
new(\ table, name, columns, type: nil, unique: false, null_filtered: false, interleave_in: nil, storing: nil, state: nil)
click to toggle source
# File lib/activerecord_spanner_adapter/index.rb, line 14 def initialize \ table, name, columns, type: nil, unique: false, null_filtered: false, interleave_in: nil, storing: nil, state: nil @table = table.to_s @name = name.to_s @columns = Array(columns) @type = type @unique = unique @null_filtered = null_filtered @interleave_in = interleave_in unless interleave_in.to_s.empty? @storing = storing || [] @state = state end
Public Instance Methods
column_names()
click to toggle source
# File lib/activerecord_spanner_adapter/index.rb, line 45 def column_names columns_by_position.map(&:name) end
columns_by_position()
click to toggle source
# File lib/activerecord_spanner_adapter/index.rb, line 39 def columns_by_position @columns.select(&:ordinal_position).sort do |c1, c2| c1.ordinal_position <=> c2.ordinal_position end end
options()
click to toggle source
# File lib/activerecord_spanner_adapter/index.rb, line 55 def options { name: name, order: orders, unique: unique, interleave_in: interleave_in, null_filtered: null_filtered, storing: storing }.delete_if { |_, v| v.nil? } end
orders()
click to toggle source
# File lib/activerecord_spanner_adapter/index.rb, line 49 def orders columns_by_position.each_with_object({}) do |c, r| r[c.name] = c.desc? ? :desc : :asc end end
primary?()
click to toggle source
rename_column_options(old_column, new_column)
click to toggle source
# File lib/activerecord_spanner_adapter/index.rb, line 66 def rename_column_options old_column, new_column opts = options opts[:order].transform_keys do |key| key.to_s == new_column.to_s end columns = column_names.map do |c| c.to_s == old_column.to_s ? new_column : c end { options: opts, columns: columns } end