Sha256: db28c8970f26044a4c616dea6fa7aece56d41cd670cd3153439351c1aa28c893

Contents?: true

Size: 723 Bytes

Versions: 15

Compression:

Stored size: 723 Bytes

Contents

class Baza::Driver::Pg::Index < Baza::Index
  attr_reader :name

  def initialize(args)
    @db = args.fetch(:db)
    @data = args.fetch(:data)
    @name = @data.fetch(:indexname)
  end

  def table
    @db.tables[table_name]
  end

  def table_name
    @data.fetch(:tablename)
  end

  def unique?
    @data.fetch(:indexdef).include?(" UNIQUE ")
  end

  def primary?
    name == "#{table_name}_pkey"
  end

  def rename(new_name)
    @db.query("ALTER INDEX #{@db.sep_index}#{@db.escape_index(name)}#{@db.sep_index} RENAME TO #{@db.sep_index}#{@db.escape_index(new_name)}#{@db.sep_index}")
    @name = new_name.to_s
    self
  end

  def columns
    @data.fetch(:indexdef).match(/\((.+)\)\Z/)[1].split(/\s*,\s/)
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
baza-0.0.35 lib/baza/driver/pg/index.rb
baza-0.0.34 lib/baza/driver/pg/index.rb
baza-0.0.33 lib/baza/driver/pg/index.rb
baza-0.0.32 lib/baza/driver/pg/index.rb
baza-0.0.31 lib/baza/driver/pg/index.rb
baza-0.0.30 lib/baza/driver/pg/index.rb
baza-0.0.29 lib/baza/driver/pg/index.rb
baza-0.0.28 lib/baza/driver/pg/index.rb
baza-0.0.27 lib/baza/driver/pg/index.rb
baza-0.0.26 lib/baza/driver/pg/index.rb
baza-0.0.25 lib/baza/driver/pg/index.rb
baza-0.0.24 lib/baza/driver/pg/index.rb
baza-0.0.23 lib/baza/driver/pg/index.rb
baza-0.0.22 lib/baza/driver/pg/index.rb
baza-0.0.21 lib/baza/driver/pg/index.rb