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

Version Path
flydata-0.2.13 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.12 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.11 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.10 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.9 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.8 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.7 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.6 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.5 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.4 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.3 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.2 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.1 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.2.0 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.1.12 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.1.11 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.1.10 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.1.9 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb
flydata-0.1.8 lib/flydata/fluent-plugins/mysql/binlog_query_dispatcher.rb