class Dbsketch::Model::Index

Attributes

columns[R]
target[R]

Public Class Methods

new(name, target, columns, meaning: nil, comment: nil, dependencies: []) click to toggle source
Calls superclass method Dbsketch::Model::Database_Object::new
# File lib/dbsketch/model/index.rb, line 16
def initialize name, target, columns, meaning: nil, comment: nil, dependencies: []
        super name, :meaning => meaning, :comment => comment, :dependencies => dependencies
        @columns = columns.is_a?(Array) ? columns : [columns]
        ### Preconditions
        raise ArgumentError, "target is not a Dbsketch::Model::Table or a View" unless target.is_a? Table or target.is_a? View
        @columns.each_with_index do |column, index|
                raise ArgumentError, "columns[#{index}] is not a Dbsketch::Model::AbstractColumn" unless column.is_a? AbstractColumn
                raise ModelError, "computed column #{column.name} is not persisted" if column.is_a? ComputedColumn and not column.persisted
        end
        ###
        @target = target
end

Public Instance Methods

has_column?(column_name) click to toggle source
# File lib/dbsketch/model/index.rb, line 31
def has_column? column_name
        ### Preconditions
        raise ArgumentError, "column_name is not a String" unless column_name.is_a? String
        ###
        nil != @columns.find { |c| c.name.downcase == column_name.downcase }
end