Sha256: e99fcf5d19caf2371af73a30d212798fd96d11c9525d6974a073ec43adcf3695
Contents?: true
Size: 1.52 KB
Versions: 1
Compression:
Stored size: 1.52 KB
Contents
######################################################################################################################## # Defines database column ######################################################################################################################## require_relative 'abstract_column' require_relative 'computed_column' require_relative 'database_object' require_relative 'table' require_relative 'model_error' require_relative 'view' module Dbsketch module Model class Index < Database_Object 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 attr_reader :target, :columns 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 end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dbsketch-0.0.1 | lib/dbsketch/model/index.rb |