Sha256: c5f6aea4086aebe7d284361fbaa7a426ed294354edb8251971cecec6d46e1a7d

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

########################################################################################################################
# Primary Key
########################################################################################################################

require_relative 'column'
require_relative 'database_object'

module Dbsketch
	module Model

		class PrimaryKey < Database_Object
			def initialize name, columns, meaning: nil, comment: nil
				super name, :meaning => meaning, :comment => comment
				@columns = columns.is_a?(Array) ? columns : [columns]
				### Preconditions
				@columns.each_with_index do |column, index|
					raise ArgumentError, "columns[#{index}] is not a Dbsketch::Model::Column" unless column.is_a? Column
				end
				###
			end

			attr_reader :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/primary_key.rb