module Tsuga::Adapter::ActiveRecord::Test

Public Class Methods

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

Private Class Methods

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

  cluster_model = Class.new(ActiveRecord::Base) do
    self.table_name = 'test_clusters'
    include Tsuga::Adapter::ActiveRecord::Cluster

    def run_callbacks(*args)
      yield if block_given?
    end
  end

  record_model = Class.new(ActiveRecord::Base) do
    self.table_name = 'test_records'
    include Tsuga::Adapter::ActiveRecord::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/active_record/test.rb, line 24
def _db
  @_db ||= begin
    unless ActiveRecord::Base.connected?
      ActiveRecord::Base.establish_connection(adapter:'sqlite3', database:':memory:')
    end
    ActiveRecord::Base.connection
  end
end
_prepare_tables() click to toggle source
# File lib/tsuga/adapter/active_record/test.rb, line 33
def _prepare_tables
  _db.drop_table(:test_records) if _db.table_exists?(:test_records)
  _db.create_table(:test_records) do |t|
    t.string   :geohash, limit:32
    t.float    :lat
    t.float    :lng
  end
  _db.add_index :test_records, :geohash

  _db.drop_table(:test_clusters) if _db.table_exists?(:test_clusters)
  Migration.new.tap { |m| m.verbose = false ; m.up }
end
run_callbacks(*args) { || ... } click to toggle source
# File lib/tsuga/adapter/active_record/test.rb, line 53
def run_callbacks(*args)
  yield if block_given?
end