Class: Lookup

Inherits:
Object
  • Object
show all
Defined in:
lib/esper_plugin/lookup.rb

Constant Summary collapse

FILE_UPDATE_CHECK_INTERVAL =
60
@@lookup_table =
Hash.new
@@next_update_check =
nil

Class Method Summary collapse

Class Method Details

.lookup_tsv(path, key, default_value) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/esper_plugin/lookup.rb', line 18

def self.lookup_tsv(path,key,default_value)
  unless @@lookup_table[path]
    @@lookup_table[path] = self.read_tsv(path)
  end
  if Time.now > @@next_update_check
    # Check if file was updated in last FILE_UPDATE_CHECK_INTERVAL sec.
    if File::Stat.new(path).mtime > (@@next_update_check - FILE_UPDATE_CHECK_INTERVAL)
      @@lookup_table[path] = self.read_tsv(path)
    else
      @@next_update_check = Time.now + FILE_UPDATE_CHECK_INTERVAL
    end
  end
  @@lookup_table[path][key] || default_value
end

.read_tsv(path) ⇒ Object



9
10
11
12
13
14
15
16
# File 'lib/esper_plugin/lookup.rb', line 9

def self.read_tsv(path)
  info "Lookup#read_tsv Loading file : #{path}" if @logger
  @@next_update_check = Time.now + FILE_UPDATE_CHECK_INTERVAL
  data = File.open(path).readlines.map do |line|
    line.chomp.split("\t")
  end
  Hash[data]
end