Class: Scylla::Loader

Inherits:
Object
  • Object
show all
Defined in:
lib/scylla/loader.rb

Constant Summary collapse

@@dir =
DEFAULT_TARGET_DIR

Class Method Summary collapse

Class Method Details

.clearObject



40
41
42
# File 'lib/scylla/loader.rb', line 40

def self.clear
  @languages = nil
end

.dirObject



15
16
17
# File 'lib/scylla/loader.rb', line 15

def self.dir
  return @@dir
end

.language_map(path) ⇒ Object

Returns a single language map from a specified .lm file



19
20
21
22
23
24
25
26
27
28
29
# File 'lib/scylla/loader.rb', line 19

def self.language_map(path)
  rank, ngram = 1, Hash.new
  File.readlines(path).each do |line|
    line = line.strip.split("\t").first
    if(line =~ /^[^0-9\s]+/o)
      ngram[line] = rank
      rank += 1
    end
  end
  return ngram
end

.languagesObject

Loads all maps from the .lm files, or loads them from memory if the files have already been read and loaded.



36
37
38
# File 'lib/scylla/loader.rb', line 36

def self.languages
  @languages ||= load_language_maps
end

.load_language_mapsObject

Loads all the language maps once into memory using the .lm files located in lib/scylla/lm



6
7
8
9
10
11
12
13
# File 'lib/scylla/loader.rb', line 6

def self.load_language_maps
  languages = Hash.new
  Dir.glob(File.join(@@dir, "*.lm")).each do |filepath|
    language = File.basename(filepath, ".lm")
    languages[language] = language_map(filepath)
  end
  return languages
end

.set_dir(dir) ⇒ Object



31
32
33
# File 'lib/scylla/loader.rb', line 31

def self.set_dir(dir)
  @@dir = dir
end