Module: BinarySearch
- Defined in:
- lib/binarysearch/version.rb,
lib/binarysearch.rb,
lib/binarysearch/search.rb,
lib/binarysearch/indexer.rb,
lib/binarysearch/data_source.rb
Overview
:nodoc:
Defined Under Namespace
Modules: VERSION Classes: DataSource, FileDataSource, Search
Class Method Summary collapse
Class Method Details
.index(data_source, db, db_idx = nil) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/binarysearch/indexer.rb', line 5 def self.index(data_source, db, db_idx=nil) db_idx = db + '.idx' if db_idx.nil? records = 0 File.open(db, 'w') do |fdb| File.open(db_idx, 'w') do |fidx| last = nil while record = data_source.next if !last.nil? && last >= record raise "data is not ordered! #{last} >= #{record}" end fidx.write([fdb.pos].pack('L')) fdb.write(record) last = record records += 1 end end end records end |