Module: PersonDb

Defined in:
lib/persondb/models/forward.rb,
lib/persondb/models.rb,
lib/persondb/reader.rb,
lib/persondb/schema.rb,
lib/persondb/version.rb,
lib/persondb/models/person.rb

Overview

forward references

require first to resolve circular references

Defined Under Namespace

Modules: Model Classes: CreateDb, PersonReader

Constant Summary collapse

MAJOR =

todo: namespace inside version or something - why? why not??

0
MINOR =
5
PATCH =
0
VERSION =
[MAJOR,MINOR,PATCH].join('.')
Models =

note: for convenciene (and compatibility) add alias Models for Model namespace

e.g lets you use include PersonDb::Models
Model

Class Method Summary collapse

Class Method Details



14
15
16
# File 'lib/persondb/version.rb', line 14

def self.banner
  "persondb-models/#{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
end

.createObject



32
33
34
35
36
# File 'lib/persondb/models.rb', line 32

def self.create
  CreateDb.new.up

  Model::Prop.create!( key: 'db.schema.person.version', value: VERSION )
end

.delete!Object



38
39
40
41
# File 'lib/persondb/models.rb', line 38

def self.delete!
  ## fix/todo: move into deleter class (see worlddb,sportdb etc.)
  Model::Person.delete_all
end

.rootObject



18
19
20
# File 'lib/persondb/version.rb', line 18

def self.root
  "#{File.expand_path( File.dirname(File.dirname(File.dirname(__FILE__))) )}"
end

.setup_in_memory_dbObject



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/persondb/models.rb', line 48

def self.setup_in_memory_db
  # Database Setup & Config

  ActiveRecord::Base.logger = Logger.new( STDOUT )
  ## ActiveRecord::Base.colorize_logging = false  - no longer exists - check new api/config setting?

  ## NB: every connect will create a new empty in memory db
  ActiveRecord::Base.establish_connection(
                                adapter:  'sqlite3',
                                database: ':memory:' )

  ## build schema
  LogDb.create
  ConfDb.create
  TagDb.create
  WorldDb.create
  PersonDb.create
end

.tablesObject



43
44
45
46
# File 'lib/persondb/models.rb', line 43

def self.tables
  ## fix/todo: move into stats class (see worlddb,sportdb etc.)
  puts "  #{Model::Person.count} persons"
end

.test_data_pathObject



27
28
29
# File 'lib/persondb/models.rb', line 27

def self.test_data_path
  "#{root}/test/data"
end

.versionObject



10
11
12
# File 'lib/persondb/version.rb', line 10

def self.version
  VERSION
end