Sha256: 5203df1e43cd73231001fbe43fb85f15808760c8c76232f0fc3987a3bce7d7ba
Contents?: true
Size: 1.64 KB
Versions: 1
Compression:
Stored size: 1.64 KB
Contents
require 'sequel' module FBTiles class Database # attr_reader :path def initialize(path = nil) storage_type = path ? "//#{path}" : ':memory:' @path = path @db = Sequel.connect("#{self.class.driver}:#{storage_type}") create_schema! end # def initialize def self.driver @driver ||= RUBY_PLATFORM == 'java' ? 'jdbc:sqlite' : 'sqlite' end # def self.driver def adapter @db end # def adapter def insert_bounds(records) @db[:bounds].multi_insert(records) end # def insert_bounds def insert_datatypes(records) @db[:datatypes].multi_insert(records) end # def insert_datatypes def insert_tiles(records) @db[:tiles].multi_insert(records) end # def insert_tiles 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 # def create_schema! end # class Database end # module FBTiles
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
fbtiles-0.1.0 | lib/fbtiles/database.rb |