Module: FiasReader::Cache

Defined in:
lib/fias_reader/cache.rb,
lib/fias_reader/cache/guid.rb,
lib/fias_reader/cache/address_part.rb,
lib/fias_reader/cache/address_part/level_adapter.rb

Defined Under Namespace

Classes: AddressPart, Guid

Constant Summary collapse

FILE =
'/tmp/fias_reader_cache.db'.freeze

Class Method Summary collapse

Class Method Details

.clearObject



19
20
21
# File 'lib/fias_reader/cache.rb', line 19

def clear
  File.delete(FILE)
end

.index_build(reader) ⇒ Object



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/fias_reader/cache.rb', line 23

def index_build(reader)
  adapter = DataMapper.repository(:default).adapter
  adapter.execute('BEGIN;')
  puts "Индексируем части адресов..."
  FiasReader::Cache::AddressPart.index reader
  puts "Индексируем уровни адресов..."
  adapter.execute('CREATE INDEX `aolevel_index` ON `fias_reader_cache_address_parts` (`aolevel` );')
  puts "Индексируем структуру частеи адресов..."
  FiasReader::Cache::AddressPart.index_levels
  puts "Индексирование закончено..."
  adapter.execute('COMMIT;')
end

.init(reader) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fias_reader/cache.rb', line 5

def init(reader)
  reindex = true unless File.exist?(FILE)

  DataMapper.setup(:default, "sqlite://#{FILE}")
  begin
    DataMapper.auto_upgrade!
  rescue
    nil
  end
  adapter = DataMapper.repository(:default).adapter
  adapter.execute('PRAGMA journal_mode=OFF; PRAGMA synchronous=OFF; PRAGMA locking_mode = EXCLUSIVE; PRAGMA count_changes = OFF; PRAGMA cache_size=500000; PRAGMA temp_store = MEMORY; PRAGMA auto_vacuum = NONE;')
  index_build(reader) if reindex
end