class Convergence::Index
Attributes
index_columns[RW]
index_name[RW]
options[RW]
Public Class Methods
new(index_name, index_columns, options)
click to toggle source
# File lib/convergence/index.rb, line 4 def initialize(index_name, index_columns, options) @index_name = index_name @index_columns = [index_columns].flatten.map(&:to_s) @options = { name: @index_name }.merge(options) length = @options[:length] case length when Hash @options[:length] = Hash[length.map { |k, v| [k.to_s, v] }] when Integer @options[:length] = Hash[@index_columns.map { |col| [col, length] }] end end
Public Instance Methods
quoted_columns()
click to toggle source
# File lib/convergence/index.rb, line 17 def quoted_columns option_strings = Hash[@index_columns.map { |name| [name, ''] }] option_strings = add_index_length(option_strings, @index_columns, @options) @index_columns.map { |name| quote_column_name(name) + option_strings[name] } end
Private Instance Methods
add_index_length(option_strings, column_names, options = {})
click to toggle source
# File lib/convergence/index.rb, line 29 def add_index_length(option_strings, column_names, options = {}) if length = options[:length] column_names.each { |name| option_strings[name] += "(#{length[name]})" if length.has_key?(name) && !length[name].nil? } end option_strings end
quote_column_name(name)
click to toggle source
# File lib/convergence/index.rb, line 25 def quote_column_name(name) "`#{name.to_s.gsub('`', '``')}`" end