Class: Sequel::ConstraintValidations::Generator
- Defined in:
- lib/sequel/extensions/constraint_validations.rb
Overview
This is the DSL class used for the validate block inside create_table and alter_table.
Instance Method Summary collapse
-
#drop(constraint) ⇒ Object
Given the name of a constraint, drop that constraint from the database, and remove the related validation metadata.
-
#initialize(generator) ⇒ Generator
constructor
Store the schema generator that encloses this validates block.
-
#operator(op, arg, columns, opts = OPTS) ⇒ Object
Create operator validation.
-
#process(&block) ⇒ Object
Alias of instance_eval for a nicer API.
Constructor Details
#initialize(generator) ⇒ Generator
Store the schema generator that encloses this validates block.
154 155 156 |
# File 'lib/sequel/extensions/constraint_validations.rb', line 154 def initialize(generator) @generator = generator end |
Instance Method Details
#drop(constraint) ⇒ Object
Given the name of a constraint, drop that constraint from the database, and remove the related validation metadata.
195 196 197 |
# 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) ⇒ Object
Create operator validation. The op should be either :>
, :>=, :<
, or :<=, and the arg should be either a string or an integer.
178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
# 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) ⇒ Object
Alias of instance_eval for a nicer API.
200 201 202 |
# File 'lib/sequel/extensions/constraint_validations.rb', line 200 def process(&block) instance_eval(&block) end |