class MigemoDictCache
Public Class Methods
new(filename)
click to toggle source
# File lib/migemo-dict.rb, line 97 def initialize (filename) @dict = File.new(filename) @index = File.new(filename + ".idx").read.unpack "N*" end
Public Instance Methods
lookup(pattern)
click to toggle source
# File lib/migemo-dict.rb, line 112 def lookup (pattern) raise if pattern == nil pattern = pattern.downcase idx = @index.bsearch_first do |_idx| key, data = decompose(_idx) key <=> pattern end if idx key, data = decompose(@index[idx]) return data else nil end end
Private Instance Methods
decompose(idx)
click to toggle source
# File lib/migemo-dict.rb, line 102 def decompose (idx) @dict.seek(idx) keylen = @dict.read(4).unpack("N").first key = @dict.read(keylen).unpack("a*").first datalen = @dict.read(4).unpack("N").first data = Marshal.load(@dict.read(datalen)) return key, data end