class FileParser
Public Class Methods
available?()
click to toggle source
PARSER DEPENDANT METHODS
# File lib/anncrsnp/file_parser.rb, line 25 def self.available? return FALSE end
format()
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 29 def self.format return 'master' end
get_descendants()
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 4 def self.get_descendants return ObjectSpace.each_object(Class).select { |klass| klass < self } end
load()
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 8 def self.load path_parsers = File.join(File.dirname(__FILE__), 'file_parsers') Dir.glob(path_parsers+'/*').each do |parser| require parser end get_descendants.each do |descendant| @@parsers[descendant.format] = descendant if descendant.available? end end
new(folder, chunk_size)
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 33 def initialize(folder, chunk_size) @folder = folder @chunk_size = chunk_size @chrom = nil @coords = [] @packs = 0 end
select(format)
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 18 def self.select(format) return @@parsers[format] end
Public Instance Methods
parse(line)
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 41 def parse(line) end
write_compressed_data()
click to toggle source
# File lib/anncrsnp/file_parser.rb, line 45 def write_compressed_data p = @packs * @chunk_size gz_path = File.join(@folder, "#{@chrom}_#{p}.gz") Zlib::GzipWriter.open(gz_path) do |writer| Yajl::Encoder.encode(@coords, writer) end @packs += 1 end