Module: Indexer

Included in:
FastaReader
Defined in:
lib/bigbio/db/fasta/indexer.rb

Overview

Indexer module for the FASTA class

This is a simple memory based key storage

Instance Method Summary collapse

Instance Method Details

#indexer_get(key) ⇒ Object

Get the key, return nil when not found



23
24
25
26
27
# File 'lib/bigbio/db/fasta/indexer.rb', line 23

def indexer_get key
  raise "Trying to use 'get' when there is no index" if @indexer == nil
  # raise "Indexer key #{key} not found!" if !@indexer[key]
  @indexer[key] 
end

#indexer_get_by_index(idx) ⇒ Object



29
30
31
# File 'lib/bigbio/db/fasta/indexer.rb', line 29

def indexer_get_by_index idx
  @indexer.sort {|a,b| a[1]<=>b[1]} [idx]
end

#indexer_set(key, fpos) ⇒ Object



15
16
17
18
19
20
# File 'lib/bigbio/db/fasta/indexer.rb', line 15

def indexer_set key, fpos
  raise "Trying to use 'set' when there is no index" if @indexer == nil
  raise "Indexer key #{key} alread in use for <#{@indexer[key]}>!" if @indexer[key]
  # p [key, fpos]
  @indexer[key] = fpos
end

#indexer_use(state) ⇒ Object

Start using the indexer



9
10
11
12
13
# File 'lib/bigbio/db/fasta/indexer.rb', line 9

def indexer_use state
  if state
    @indexer = {}
  end
end