Module: WorldDB

Defined in:
lib/worlddb.rb,
lib/worlddb/loader.rb,
lib/worlddb/reader.rb,
lib/worlddb/schema.rb,
lib/worlddb/version.rb,
lib/worlddb/cli/opts.rb,
lib/worlddb/cli/runner.rb

Defined Under Namespace

Modules: Models Classes: CreateDB, Deleter, Loader, Opts, Reader, Runner, Stats

Constant Summary collapse

VERSION =
'0.6.0'

Class Method Summary collapse

Class Method Details



42
43
44
# File 'lib/worlddb.rb', line 42

def self.banner
  "worlddb #{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
end

.createObject



54
55
56
# File 'lib/worlddb.rb', line 54

def self.create
  CreateDB.up
end

.delete!Object

delete ALL records (use with care!)



176
177
178
179
# File 'lib/worlddb.rb', line 176

def self.delete!
  puts '*** deleting world table records/data...'
  Deleter.new.run
end

.fixturesObject

all builtin fixtures; helper for covenience



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/worlddb.rb', line 68

def self.fixtures  # all builtin fixtures; helper for covenience

['africa/countries',
 'america/countries',
 'america/br/regions',
 'america/br/cities',
 'america/ca/regions',
 'america/ca/cities',
 'america/mx/regions',
 'america/mx/cities',
 'america/us/regions',
 'america/us/cities',
 'america/ve/regions',
 'america/ve/cities',
 'asia/countries',
 'asia/jp/cities',
 'europe/countries',
 'europe/at/regions',
 'europe/at/cities',
 'europe/be/regions',
 'europe/be/cities',
 'europe/bg/cities',
 'europe/by/cities',
 'europe/ch/cities',
 'europe/cy/cities',
 'europe/cz/regions',
 'europe/cz/cities',
 'europe/de/regions',
 'europe/de/cities',
 'europe/dk/cities',
 'europe/ee/cities',
 'europe/en/regions',
 'europe/en/cities',
 'europe/es/regions',
 'europe/es/cities',
 'europe/fi/cities',
 'europe/fr/regions',
 'europe/fr/cities',
 'europe/gr/cities',
 'europe/hr/cities',
 'europe/hu/cities',
 'europe/ie/cities',
 'europe/it/cities',
 'europe/lt/cities',
 'europe/lv/cities',
 'europe/nl/cities',
 'europe/no/cities',
 'europe/pl/cities',
 'europe/pt/cities',
 'europe/ro/cities',
 'europe/rs/cities',
 'europe/ru/cities',
 'europe/sc/cities',
 'europe/se/cities',
 'europe/tr/cities',
 'europe/ua/cities',
 'oceania/countries',
 'oceania/au/cities'
 ]
end

.load(ary) ⇒ Object

load built-in (that is, bundled within the gem) named seeds

  • pass in an array of seed names e.g. [ ‘countries’, ‘at/cities’, ‘de/cities’ ] etc.



61
62
63
64
65
66
# File 'lib/worlddb.rb', line 61

def self.load( ary )
  loader = Loader.new
  ary.each do |name|
    loader.load_fixtures_builtin( name )
  end
end

.mainObject



50
51
52
# File 'lib/worlddb.rb', line 50

def self.main
  Runner.new.run(ARGV)
end

.propsObject



213
214
215
# File 'lib/worlddb.rb', line 213

def self.props
  Stats.new.props
end

.read(ary) ⇒ Object



130
131
132
133
134
135
# File 'lib/worlddb.rb', line 130

def self.read( ary )
  reader = Reader.new
  ary.each do |name|
    reader.load_builtin( name )
  end
end

.read_allObject

load all builtins (using plain text reader); helper for convenience



137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# File 'lib/worlddb.rb', line 137

def self.read_all  # load all builtins (using plain text reader); helper for convenience
  reader = Reader.new

  # too big for heroku free db plan (10,000 record limit)
  #  - sorry, can't load by default
  fixture_excludes = [
    'america/br/cities',
    'america/ve/cities'
  ]
  
  ary = fixtures - fixture_excludes
  
  ary.each do |name|
   reader.load_builtin( name )
  end # each name
end

.rootObject



46
47
48
# File 'lib/worlddb.rb', line 46

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

.statsObject



203
204
205
206
207
# File 'lib/worlddb.rb', line 203

def self.stats
  stats = Stats.new
  stats.tables
  ### stats.props
end

.tablesObject



209
210
211
# File 'lib/worlddb.rb', line 209

def self.tables
  Stats.new.tables
end