module Tsuga::Adapter::Sequel::Test

Public Class Methods

models() click to toggle source
# File lib/tsuga/adapter/sequel/test.rb, line 15
def models
  @_models ||= _build_test_models
end

Private Class Methods

_build_test_models() click to toggle source
# File lib/tsuga/adapter/sequel/test.rb, line 58
def _build_test_models
  _prepare_tables

  cluster_model = Class.new(Sequel::Model(:test_clusters)) do
    include Tsuga::Adapter::Sequel::Cluster
  end

  record_model = Class.new(Sequel::Model(:test_records)) do
    include Tsuga::Adapter::Sequel::Record
  end

  OpenStruct.new :clusters => cluster_model, :records => record_model
end
_db() click to toggle source

Makes sure a connection exists

# File lib/tsuga/adapter/sequel/test.rb, line 22
def _db
  @_db ||= Sequel::DATABASES.first || Sequel.sqlite
end
_prepare_tables() click to toggle source
# File lib/tsuga/adapter/sequel/test.rb, line 26
def _prepare_tables
  _db.drop_table?(:test_records)
  _db.create_table(:test_records) do
    primary_key :id
    String      :geohash, size:32
    Float       :lat
    Float       :lng

    index       :geohash
  end

  _db.drop_table?(:test_clusters)
  _db.create_table(:test_clusters) do
    primary_key :id
    Integer     :depth
    String      :geohash,  size:32
    String      :tilecode, size:32
    Float       :lat
    Float       :lng
    Integer     :parent_id
    String      :children_type
    String      :children_ids # FIXME
    Double      :sum_lat
    Double      :sum_lng
    Double      :ssq_lat
    Double      :ssq_lng
    Integer     :weight

    index       :tilecode
  end
end