Sha256: 3a317d17cbaf1d42b3354a32885a95046dd38bf9ebcd82e1ea53481bcb80e7b9

Contents?: true

Size: 414 Bytes

Versions: 4

Compression:

Stored size: 414 Bytes

Contents

module Melisa
  class IntTrie < BytesTrie
    def sum(prefix='')
      search(prefix).each.inject(0) do |total,str|
        total + unserialize_value(str.split(@sep).last)
      end
    end

  protected
    # Serialize as big-endian (network ordered) Integer value
    def serialize_value(value)
      [value.to_i].pack('N')
    end

    def unserialize_value(value)
      value.unpack('N').first
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
melisa-0.2.5 lib/melisa/int_trie.rb
melisa-0.2.4 lib/melisa/int_trie.rb
melisa-0.2.3 lib/melisa/int_trie.rb
melisa-0.2.2 lib/melisa/int_trie.rb