class Sequel::ConstraintValidations::Generator

This is the DSL class used for the validate block inside create_table and alter_table.

Public Class Methods

new(generator) click to toggle source

Store the schema generator that encloses this validates block.

# File lib/sequel/extensions/constraint_validations.rb, line 154
def initialize(generator)
  @generator = generator
end

Public Instance Methods

drop(constraint) click to toggle source

Given the name of a constraint, drop that constraint from the database, and remove the related validation metadata.

# File lib/sequel/extensions/constraint_validations.rb, line 195
def drop(constraint)
  @generator.validation({:type=>:drop, :name=>constraint})
end
operator(op, arg, columns, opts=OPTS) click to toggle source

Create operator validation. The op should be either :>, +:>=+, :<, or +:<=+, and the arg should be either a string or an integer.

# File lib/sequel/extensions/constraint_validations.rb, line 178
def operator(op, arg, columns, opts=OPTS)
  raise Error, "invalid operator (#{op}) used when creating operator validation" unless suffix = OPERATORS[op]

  prefix = case arg
  when String
    "str"
  when Integer
    "int"
  else
    raise Error, "invalid argument (#{arg.inspect}) used when creating operator validation"
  end

  @generator.validation({:type=>:"#{prefix}_#{suffix}", :columns=>Array(columns), :arg=>arg}.merge!(opts))
end
process(&block) click to toggle source

Alias of instance_eval for a nicer API.

# File lib/sequel/extensions/constraint_validations.rb, line 200
def process(&block)
  instance_eval(&block)
end