Sha256: 09dfd4389b68b3b1fe8eb9e2a11ad87235429504859ddd8da9bd2ad870c7d0a4
Contents?: true
Size: 664 Bytes
Versions: 21
Compression:
Stored size: 664 Bytes
Contents
require 'thread' require 'treetop' require 'flydata/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
21 entries across 21 versions & 1 rubygems