module Tsuga::Adapter::Mongoid::Test

Public Class Methods

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

Private Class Methods

_build_test_models() click to toggle source
# File lib/tsuga/adapter/mongoid/test.rb, line 22
def _build_test_models
  ::Mongoid.load!("spec/support/mongoid.yml", :test)
  _cluster_model.create_indexes
  _record_model.create_indexes

  # FIXME: hardly elegant but Mongoid insists on a named class.
  self.const_set :Cluster, _cluster_model
  self.const_set :Record,  _record_model

  OpenStruct.new :clusters => _cluster_model, :records => _record_model
end
_cluster_model() click to toggle source
# File lib/tsuga/adapter/mongoid/test.rb, line 35
def _cluster_model
  @_cluster_model ||= Class.new do
    include Mongoid::Document

    field :tilecode
    field :depth
    field :geohash
    field :lat
    field :lng
    field :parent_id
    field :children_type
    field :children_ids
    field :sum_lat
    field :sum_lng
    field :ssq_lat
    field :ssq_lng
    field :weight

    store_in :collection => 'clusters'
    index tilecode:1

    include Tsuga::Adapter::Mongoid::Cluster
  end
end
_record_model() click to toggle source
# File lib/tsuga/adapter/mongoid/test.rb, line 61
def _record_model
  @_record_model ||= Class.new do
    include Mongoid::Document

    field :geohash
    field :lat
    field :lng

    store_in :collection => 'records'
    index geohash:1

    include Tsuga::Adapter::Mongoid::Record
  end
end