class Dbsketch::Model::Trigger

Attributes

activation_time[R]
algo[R]
target[R]

Public Class Methods

new(name, target, activation_time, algo:, meaning: nil, comment: nil, dependencies: []) click to toggle source
Calls superclass method Dbsketch::Model::Database_Object::new
# File lib/dbsketch/model/trigger.rb, line 14
def initialize name, target, activation_time, algo:, meaning: nil, comment: nil, dependencies: []
        super name, :meaning => meaning, :comment => comment, :dependencies => dependencies
        ### Preconditions
        raise ArgumentError, "target is not a Dbsketch::Model::Table or View" unless target.is_a? Table or target.is_a? View
        raise ArgumentError, "activation_time is not a String" unless activation_time.is_a? String
        raise ModelError, "activation_time does not begins 'for', 'after' or 'instead of' (#{activation_time})" if nil == activation_time.downcase.match(/^(for)|(after)|(instead of)/)
        raise ArgumentError, "algo is not a String" unless algo.is_a? String
        ###
        @target = target
        @activation_time = activation_time
        @algo = algo
        add_dependencies target
end