Sha256: f54a045d3ecf35badf659b72541292cc12486cd73abc4df4fb0163ffa3948dd5
Contents?: true
Size: 901 Bytes
Versions: 19
Compression:
Stored size: 901 Bytes
Contents
require_relative 'alter_table_query_handler' module Mysql class BinlogQueryDispatcher def initialize @handlers = [] end def dispatch(record) @handlers.each do |handler| query = normalize_query(record["query"]) if (handler.pattern.match(query)) handler.process(record, query) break end end end private def normalize_query(query) query = strip_comments(query) end def strip_comments(query) query = query.gsub(/--\s.*\n/, ' ') # -- style comments query = query.gsub(/\/\*[^\*].*\*\//, ' ') # /* */ style comments query = query.gsub(/\s+/, ' ') # replace multiple spaces with a space end end class FlydataBinlogQueryDispatcher < BinlogQueryDispatcher def initialize(context) @handlers = [ AlterTableQueryHandler.new(context), ] end end end
Version data entries
19 entries across 19 versions & 1 rubygems