class Mkxms::Mssql::DmlTriggerHandler

Public Class Methods

new(triggers, node) click to toggle source
# File lib/mkxms/mssql/dml_trigger_handler.rb, line 62
def initialize(triggers, node)
  a = node.attributes
  
  @trigger = Trigger.new(
    a['schema'],
    a['name'],
    a['timing'],
    execute_as: a['execute_as'],
    disabled: a['disabled'],
    not_replicable: a['not-for-replication'],
  ).tap do |t|
    store_properties_on t
    triggers << t
  end
end

Public Instance Methods

dependencies() click to toggle source
# File lib/mkxms/mssql/dml_trigger_handler.rb, line 78
def dependencies
  @trigger.dependencies
end
handle_do_element(parse) click to toggle source
# File lib/mkxms/mssql/dml_trigger_handler.rb, line 92
def handle_do_element(parse); end
handle_event_element(parse) click to toggle source
# File lib/mkxms/mssql/dml_trigger_handler.rb, line 87
def handle_event_element(parse)
  a = parse.node.attributes
  @trigger.events << a['type']
end
handle_implementation_element(parse) click to toggle source

This function handles a CLR implementation

# File lib/mkxms/mssql/dml_trigger_handler.rb, line 102
def handle_implementation_element(parse)
  a = parse.node.attributes
  @trigger.clr_impl = ClrMethod.new(a['assembly'], a['class'], a['method'])
end
handle_table_element(parse) click to toggle source
# File lib/mkxms/mssql/dml_trigger_handler.rb, line 82
def handle_table_element(parse)
  a = parse.node.attributes
  @trigger.table = Reference.new(a['schema'], a['name'])
end
handle_text(text, parent_element) click to toggle source
# File lib/mkxms/mssql/dml_trigger_handler.rb, line 94
def handle_text(text, parent_element)
  case [parent_element.namespace, parent_element.name]
  when ['', 'do']
    @trigger.definition << text
  end
end