Sha256: 17e93c37bc0922b834d9588962a240f8e2e145e4b9aa2200602e32694c84cb5a

Contents?: true

Size: 669 Bytes

Versions: 66

Compression:

Stored size: 669 Bytes

Contents

require 'thread'
require 'treetop'
require 'flydata-core/table_def'

module Mysql
  class ParserProvider

    @@mutex = Mutex.new
    @@parsers = {}

    def self.parser(db_type, parser_type)
      key = [db_type.to_s, parser_type.to_s].join("::").to_s
      @@mutex.synchronize do
        if @@parsers[key]
          return @@parsers[key]
        else
          # lazy load
          treetop_path = File.join(
            File.expand_path(File.dirname(__FILE__)),
            "parser/#{db_type}/#{parser_type}.treetop")
          Treetop.load treetop_path
          @@parsers[key] = "#{parser_type}_parser".camelize.constantize
        end
      end
    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
flydata-0.6.3 lib/flydata/parser_provider.rb
flydata-0.6.2 lib/flydata/parser_provider.rb
flydata-0.6.1 lib/flydata/parser_provider.rb
flydata-0.6.0 lib/flydata/parser_provider.rb
flydata-0.5.21 lib/flydata/parser_provider.rb
flydata-0.5.20 lib/flydata/parser_provider.rb
flydata-0.5.17 lib/flydata/parser_provider.rb
flydata-0.5.16 lib/flydata/parser_provider.rb
flydata-0.5.15 lib/flydata/parser_provider.rb
flydata-0.5.14 lib/flydata/parser_provider.rb
flydata-0.5.13 lib/flydata/parser_provider.rb
flydata-0.5.12 lib/flydata/parser_provider.rb
flydata-0.5.11 lib/flydata/parser_provider.rb
flydata-0.5.10 lib/flydata/parser_provider.rb
flydata-0.5.9 lib/flydata/parser_provider.rb
flydata-0.5.8 lib/flydata/parser_provider.rb
flydata-0.5.7 lib/flydata/parser_provider.rb
flydata-0.5.6 lib/flydata/parser_provider.rb
flydata-0.5.5 lib/flydata/parser_provider.rb
flydata-0.5.4 lib/flydata/parser_provider.rb