class FBTiles::Database
Attributes
path[R]
Public Class Methods
driver()
click to toggle source
# File lib/fbtiles/database.rb, line 18 def self.driver @driver ||= RUBY_PLATFORM == 'java' ? 'jdbc:sqlite' : 'sqlite' end
new(path = nil)
click to toggle source
# File lib/fbtiles/database.rb, line 9 def initialize(path = nil) storage_type = path ? "//#{path}" : ':memory:' @path = path @db = Sequel.connect("#{self.class.driver}:#{storage_type}") create_schema! end
Public Instance Methods
adapter()
click to toggle source
# File lib/fbtiles/database.rb, line 22 def adapter @db end
create_schema!()
click to toggle source
# File lib/fbtiles/database.rb, line 38 def create_schema! @db.create_table :bounds do Integer :zoom Integer :collared Integer :maxX Integer :maxY Integer :minX Integer :minY primary_key [:zoom, :collared] end @db.create_table :datatypes do Integer :id, :primary_key => true Text :datatype # PNG or JPG only! index :datatype, unique: true, name: 'datatypes_idx' end @db.create_table :tiles do Integer :tilekey, :primary_key => true Integer :zoom_level Integer :tile_row Integer :tile_column Blob :tile_data Integer :tile_datatypes_id Blob :tile_collar_data Integer :tile_collar_datatypes_id index [:zoom_level, :tile_row, :tile_column], name: 'tiles_idx' end end
insert_bounds(records)
click to toggle source
# File lib/fbtiles/database.rb, line 26 def insert_bounds(records) @db[:bounds].multi_insert(records) end
insert_datatypes(records)
click to toggle source
# File lib/fbtiles/database.rb, line 30 def insert_datatypes(records) @db[:datatypes].multi_insert(records) end
insert_tiles(records)
click to toggle source
# File lib/fbtiles/database.rb, line 34 def insert_tiles(records) @db[:tiles].multi_insert(records) end