beerdb 0.9.4 → 0.9.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Manifest.txt +3 -14
- data/README.md +2 -2
- data/lib/beerdb/cli/main.rb +12 -6
- data/lib/beerdb/deleter.rb +8 -5
- data/lib/beerdb/models/beer.rb +4 -18
- data/lib/beerdb/models/brewery.rb +11 -14
- data/lib/beerdb/models/forward.rb +6 -5
- data/lib/beerdb/models/world/city.rb +14 -0
- data/lib/beerdb/models/{country.rb → world/country.rb} +0 -0
- data/lib/beerdb/models/world/region.rb +14 -0
- data/lib/beerdb/reader.rb +11 -5
- data/lib/beerdb/schema.rb +11 -104
- data/lib/beerdb/stats.rb +11 -12
- data/lib/beerdb/version.rb +15 -2
- data/lib/beerdb.rb +12 -184
- data/test/helper.rb +2 -11
- data/test/test_fixture_matchers.rb +0 -1
- metadata +27 -38
- data/lib/beerdb/models/bookmark.rb +0 -33
- data/lib/beerdb/models/city.rb +0 -14
- data/lib/beerdb/models/drink.rb +0 -25
- data/lib/beerdb/models/note.rb +0 -15
- data/lib/beerdb/models/region.rb +0 -14
- data/lib/beerdb/models/user.rb +0 -29
- data/lib/beerdb/server/public/style.css +0 -36
- data/lib/beerdb/server/views/_debug.erb +0 -17
- data/lib/beerdb/server/views/_version.erb +0 -7
- data/lib/beerdb/server/views/debug.erb +0 -3
- data/lib/beerdb/server/views/index.erb +0 -156
- data/lib/beerdb/server/views/layout.erb +0 -15
- data/lib/beerdb/server.rb +0 -248
data/lib/beerdb.rb
CHANGED
@@ -14,6 +14,8 @@ require 'logger'
|
|
14
14
|
require 'optparse'
|
15
15
|
require 'fileutils'
|
16
16
|
require 'erb'
|
17
|
+
require 'uri'
|
18
|
+
|
17
19
|
|
18
20
|
# 3rd party gems / libs
|
19
21
|
|
@@ -24,183 +26,19 @@ require 'erb'
|
|
24
26
|
|
25
27
|
require 'worlddb'
|
26
28
|
|
27
|
-
######################
|
28
|
-
# fix begin:
|
29
|
-
|
30
|
-
|
31
|
-
################
|
32
|
-
# todo: move module to textutils!!!
|
33
|
-
|
34
|
-
### fix: move to textutils??
|
35
|
-
|
36
|
-
|
37
|
-
## todo: rename to TitleHelpers? TitleMatcher? TitleMapper? TitleMapping? TitleMappings? TitleFinder? TitleHelpers?
|
38
|
-
# or rename to KeyMapping?, KeyMapper?, KeyTable? etc.
|
39
|
-
|
40
|
-
|
41
|
-
module TextUtils::TitleTable
|
42
|
-
|
43
|
-
|
44
|
-
def build_title_table_for( records )
|
45
|
-
## build known tracks table w/ synonyms e.g.
|
46
|
-
#
|
47
|
-
# [[ 'wolfsbrug', [ 'VfL Wolfsburg' ]],
|
48
|
-
# [ 'augsburg', [ 'FC Augsburg', 'Augi2', 'Augi3' ]],
|
49
|
-
# [ 'stuttgart', [ 'VfB Stuttgart' ]] ]
|
50
|
-
|
51
|
-
known_titles = []
|
52
|
-
|
53
|
-
records.each_with_index do |rec,index|
|
54
|
-
|
55
|
-
title_candidates = []
|
56
|
-
title_candidates << rec.title
|
57
|
-
|
58
|
-
title_candidates += rec.synonyms.split('|') if rec.synonyms.present?
|
59
|
-
|
60
|
-
|
61
|
-
## check if title includes subtitle e.g. Grand Prix Japan (Suzuka Circuit)
|
62
|
-
# make subtitle optional by adding title w/o subtitle e.g. Grand Prix Japan
|
63
|
-
|
64
|
-
titles = []
|
65
|
-
title_candidates.each do |t|
|
66
|
-
titles << t
|
67
|
-
if t =~ /\(.+\)/
|
68
|
-
extra_title = t.gsub( /\(.+\)/, '' ) # remove/delete subtitles
|
69
|
-
extra_title.strip! # strip leading n trailing withspaces too!
|
70
|
-
titles << extra_title
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
|
75
|
-
## NB: sort here by length (largest goes first - best match)
|
76
|
-
# exclude code and key (key should always go last)
|
77
|
-
titles = titles.sort { |left,right| right.length <=> left.length }
|
78
|
-
|
79
|
-
## escape for regex plus allow subs for special chars/accents
|
80
|
-
titles = titles.map { |title| TextUtils.title_esc_regex( title ) }
|
81
|
-
|
82
|
-
## NB: only include code field - if defined
|
83
|
-
titles << rec.code if rec.respond_to?(:code) && rec.code.present?
|
84
|
-
|
85
|
-
known_titles << [ rec.key, titles ]
|
86
|
-
|
87
|
-
### fix: use plain logger
|
88
|
-
LogUtils::Logger.root.debug " #{rec.class.name}[#{index+1}] #{rec.key} >#{titles.join('|')}<"
|
89
|
-
end
|
90
|
-
|
91
|
-
known_titles
|
92
|
-
end
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
def find_key_for!( name, line )
|
97
|
-
regex = /@@oo([^@]+?)oo@@/ # e.g. everything in @@ .... @@ (use non-greedy +? plus all chars but not @, that is [^@])
|
98
|
-
|
99
|
-
upcase_name = name.upcase
|
100
|
-
downcase_name = name.downcase
|
101
|
-
|
102
|
-
if line =~ regex
|
103
|
-
value = "#{$1}"
|
104
|
-
### fix: use plain logger
|
105
|
-
LogUtils::Logger.root.debug " #{downcase_name}: >#{value}<"
|
106
|
-
|
107
|
-
line.sub!( regex, "[#{upcase_name}]" )
|
108
|
-
|
109
|
-
return $1
|
110
|
-
else
|
111
|
-
return nil
|
112
|
-
end
|
113
|
-
end
|
114
|
-
|
115
|
-
|
116
|
-
def find_keys_for!( name, line ) # NB: keys (plural!) - will return array
|
117
|
-
counter = 1
|
118
|
-
keys = []
|
119
|
-
|
120
|
-
downcase_name = name.downcase
|
121
|
-
|
122
|
-
key = find_key_for!( "#{downcase_name}#{counter}", line )
|
123
|
-
while key.present?
|
124
|
-
keys << key
|
125
|
-
counter += 1
|
126
|
-
key = find_key_for!( "#{downcase_name}#{counter}", line )
|
127
|
-
end
|
128
|
-
|
129
|
-
keys
|
130
|
-
end
|
131
|
-
|
132
|
-
|
133
|
-
def map_titles_for!( name, line, title_table )
|
134
|
-
title_table.each do |rec|
|
135
|
-
key = rec[0]
|
136
|
-
values = rec[1]
|
137
|
-
map_title_worker_for!( name, line, key, values )
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
|
-
|
142
|
-
def map_title_worker_for!( name, line, key, values )
|
143
|
-
|
144
|
-
downcase_name = name.downcase
|
145
|
-
|
146
|
-
values.each do |value|
|
147
|
-
## nb: \b does NOT include space or newline for word boundry (only alphanums e.g. a-z0-9)
|
148
|
-
## (thus add it, allows match for Benfica Lis. for example - note . at the end)
|
149
|
-
|
150
|
-
## check add $ e.g. (\b| |\t|$) does this work? - check w/ Benfica Lis.$
|
151
|
-
regex = /\b#{value}(\b| |\t|$)/ # wrap with world boundry (e.g. match only whole words e.g. not wac in wacker)
|
152
|
-
if line =~ regex
|
153
|
-
### fix: use plain logger
|
154
|
-
LogUtils::Logger.root.debug " match for #{downcase_name} >#{key}< >#{value}<"
|
155
|
-
# make sure @@oo{key}oo@@ doesn't match itself with other key e.g. wacker, wac, etc.
|
156
|
-
line.sub!( regex, "@@oo#{key}oo@@ " ) # NB: add one space char at end
|
157
|
-
return true # break out after first match (do NOT continue)
|
158
|
-
end
|
159
|
-
end
|
160
|
-
return false
|
161
|
-
end
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
end # module TextUtils::TitleTable
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
## auto-include methods
|
170
|
-
|
171
|
-
module TextUtils
|
172
|
-
# make helpers available as class methods e.g. TextUtils.convert_unicode_dashes_to_plain_ascii
|
173
|
-
extend TitleTable # lets us use TextUtils.build_title_table_for etc.
|
174
|
-
end
|
175
|
-
|
176
|
-
# quich fix end:
|
177
|
-
########################
|
178
|
-
|
179
|
-
|
180
29
|
|
181
30
|
# our own code
|
182
31
|
|
183
32
|
require 'beerdb/version' ## version always goes first
|
184
33
|
|
185
34
|
require 'beerdb/models/forward'
|
186
|
-
require 'beerdb/models/country'
|
187
|
-
require 'beerdb/models/region'
|
188
|
-
require 'beerdb/models/city'
|
35
|
+
require 'beerdb/models/world/country'
|
36
|
+
require 'beerdb/models/world/region'
|
37
|
+
require 'beerdb/models/world/city'
|
189
38
|
require 'beerdb/models/tag'
|
190
39
|
require 'beerdb/models/beer'
|
191
40
|
require 'beerdb/models/brand'
|
192
41
|
require 'beerdb/models/brewery'
|
193
|
-
require 'beerdb/models/user' # db model extensions - move to its own addon gem?
|
194
|
-
require 'beerdb/models/drink' # db model extensions - move to its own addon gem?
|
195
|
-
require 'beerdb/models/bookmark' # db model extensions - move to its own addon gem?
|
196
|
-
require 'beerdb/models/note' # db model extensions - move to its own addon gem?
|
197
|
-
|
198
|
-
|
199
|
-
## add backwards compatible namespace
|
200
|
-
## todo: move to forward -- check sportdb/worlddb convention ??
|
201
|
-
module BeerDb
|
202
|
-
Models = Model
|
203
|
-
end
|
204
42
|
|
205
43
|
|
206
44
|
require 'beerdb/serializers/beer'
|
@@ -214,14 +52,6 @@ require 'beerdb/stats'
|
|
214
52
|
|
215
53
|
module BeerDb
|
216
54
|
|
217
|
-
def self.banner
|
218
|
-
"beerdb #{VERSION} on Ruby #{RUBY_VERSION} (#{RUBY_RELEASE_DATE}) [#{RUBY_PLATFORM}]"
|
219
|
-
end
|
220
|
-
|
221
|
-
def self.root
|
222
|
-
"#{File.expand_path( File.dirname(File.dirname(__FILE__)) )}"
|
223
|
-
end
|
224
|
-
|
225
55
|
def self.main
|
226
56
|
require 'beerdb/cli/main'
|
227
57
|
# Runner.new.run(ARGV) old code
|
@@ -231,10 +61,13 @@ module BeerDb
|
|
231
61
|
CreateDb.new.up
|
232
62
|
|
233
63
|
### fix: make optional do NOT auto create here
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
64
|
+
### fix: use if defined? BeerDbNote or similar or/and check if table exist ??
|
65
|
+
### or move to beerdb-note ??
|
66
|
+
|
67
|
+
# CreateDbExtrasUsers.new.up
|
68
|
+
# CreateDbExtrasBookmarks.new.up
|
69
|
+
# CreateDbExtrasDrinks.new.up
|
70
|
+
# CreateDbExtrasNotes.new.up
|
238
71
|
|
239
72
|
ConfDb::Model::Prop.create!( key: 'db.schema.beer.version', value: VERSION )
|
240
73
|
end
|
@@ -267,11 +100,6 @@ module BeerDb
|
|
267
100
|
Stats.new.tables
|
268
101
|
end
|
269
102
|
|
270
|
-
###
|
271
|
-
# fix: (re)use ConfDb.props
|
272
|
-
def self.props
|
273
|
-
Stats.new.props
|
274
|
-
end
|
275
103
|
|
276
104
|
end # module BeerDb
|
277
105
|
|
data/test/helper.rb
CHANGED
@@ -9,20 +9,11 @@ require 'minitest/autorun'
|
|
9
9
|
# include MiniTest::Unit # lets us use TestCase instead of MiniTest::Unit::TestCase
|
10
10
|
|
11
11
|
|
12
|
-
# ruby stdlibs
|
13
|
-
|
14
|
-
require 'json'
|
15
|
-
require 'uri'
|
16
|
-
require 'pp'
|
17
|
-
|
18
|
-
# ruby gems
|
19
|
-
|
20
|
-
require 'active_record'
|
21
|
-
|
22
12
|
# our own code
|
23
13
|
|
24
14
|
require 'beerdb'
|
25
|
-
require 'logutils/db' #
|
15
|
+
require 'logutils/db' # NOTE: explict require required for LogDb (not automatic)
|
16
|
+
|
26
17
|
|
27
18
|
Country = WorldDb::Model::Country
|
28
19
|
Region = WorldDb::Model::Region
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: beerdb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-10-
|
12
|
+
date: 2014-10-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: props
|
16
|
-
requirement: &
|
16
|
+
requirement: &82209140 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *82209140
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: logutils
|
27
|
-
requirement: &
|
27
|
+
requirement: &82208590 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *82208590
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: textutils
|
38
|
-
requirement: &
|
38
|
+
requirement: &82208120 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *82208120
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: worlddb
|
49
|
-
requirement: &
|
49
|
+
requirement: &82207380 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: 2.0.2
|
55
55
|
type: :runtime
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *82207380
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: tagutils
|
60
|
-
requirement: &
|
60
|
+
requirement: &82206750 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :runtime
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *82206750
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activerecord-utils
|
71
|
-
requirement: &
|
71
|
+
requirement: &82205990 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :runtime
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *82205990
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: fetcher
|
82
|
-
requirement: &
|
82
|
+
requirement: &82204150 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,10 +87,10 @@ dependencies:
|
|
87
87
|
version: '0.3'
|
88
88
|
type: :runtime
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *82204150
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: gli
|
93
|
-
requirement: &
|
93
|
+
requirement: &82203870 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,10 @@ dependencies:
|
|
98
98
|
version: 2.5.6
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *82203870
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: activerecord
|
104
|
-
requirement: &
|
104
|
+
requirement: &82203620 !ruby/object:Gem::Requirement
|
105
105
|
none: false
|
106
106
|
requirements:
|
107
107
|
- - ! '>='
|
@@ -109,10 +109,10 @@ dependencies:
|
|
109
109
|
version: '0'
|
110
110
|
type: :runtime
|
111
111
|
prerelease: false
|
112
|
-
version_requirements: *
|
112
|
+
version_requirements: *82203620
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: rdoc
|
115
|
-
requirement: &
|
115
|
+
requirement: &82203360 !ruby/object:Gem::Requirement
|
116
116
|
none: false
|
117
117
|
requirements:
|
118
118
|
- - ~>
|
@@ -120,10 +120,10 @@ dependencies:
|
|
120
120
|
version: '4.0'
|
121
121
|
type: :development
|
122
122
|
prerelease: false
|
123
|
-
version_requirements: *
|
123
|
+
version_requirements: *82203360
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: hoe
|
126
|
-
requirement: &
|
126
|
+
requirement: &82203110 !ruby/object:Gem::Requirement
|
127
127
|
none: false
|
128
128
|
requirements:
|
129
129
|
- - ~>
|
@@ -131,7 +131,7 @@ dependencies:
|
|
131
131
|
version: '3.12'
|
132
132
|
type: :development
|
133
133
|
prerelease: false
|
134
|
-
version_requirements: *
|
134
|
+
version_requirements: *82203110
|
135
135
|
description: beerdb - beer.db command line tool
|
136
136
|
email: beerdb@googlegroups.com
|
137
137
|
executables:
|
@@ -153,28 +153,17 @@ files:
|
|
153
153
|
- lib/beerdb/console.rb
|
154
154
|
- lib/beerdb/deleter.rb
|
155
155
|
- lib/beerdb/models/beer.rb
|
156
|
-
- lib/beerdb/models/bookmark.rb
|
157
156
|
- lib/beerdb/models/brand.rb
|
158
157
|
- lib/beerdb/models/brewery.rb
|
159
|
-
- lib/beerdb/models/city.rb
|
160
|
-
- lib/beerdb/models/country.rb
|
161
|
-
- lib/beerdb/models/drink.rb
|
162
158
|
- lib/beerdb/models/forward.rb
|
163
|
-
- lib/beerdb/models/note.rb
|
164
|
-
- lib/beerdb/models/region.rb
|
165
159
|
- lib/beerdb/models/tag.rb
|
166
|
-
- lib/beerdb/models/
|
160
|
+
- lib/beerdb/models/world/city.rb
|
161
|
+
- lib/beerdb/models/world/country.rb
|
162
|
+
- lib/beerdb/models/world/region.rb
|
167
163
|
- lib/beerdb/reader.rb
|
168
164
|
- lib/beerdb/schema.rb
|
169
165
|
- lib/beerdb/serializers/beer.rb
|
170
166
|
- lib/beerdb/serializers/brewery.rb
|
171
|
-
- lib/beerdb/server.rb
|
172
|
-
- lib/beerdb/server/public/style.css
|
173
|
-
- lib/beerdb/server/views/_debug.erb
|
174
|
-
- lib/beerdb/server/views/_version.erb
|
175
|
-
- lib/beerdb/server/views/debug.erb
|
176
|
-
- lib/beerdb/server/views/index.erb
|
177
|
-
- lib/beerdb/server/views/layout.erb
|
178
167
|
- lib/beerdb/stats.rb
|
179
168
|
- lib/beerdb/version.rb
|
180
169
|
- test/helper.rb
|
@@ -1,33 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module BeerDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
class Bookmark < ActiveRecord::Base
|
7
|
-
|
8
|
-
belongs_to :bookmarkable, :polymorphic => true
|
9
|
-
belongs_to :user
|
10
|
-
|
11
|
-
|
12
|
-
### fix - how to do it with has_many macro? use finder_sql?
|
13
|
-
def drinks
|
14
|
-
## todo: check/assert bookmarkable_type == BeerDB::Model::Beer
|
15
|
-
Drink.where( user_id: user_id, beer_id: bookmarkable_id )
|
16
|
-
end
|
17
|
-
|
18
|
-
def notes
|
19
|
-
## todo: check/assert bookmarkable_type == BeerDB::Model::Beer
|
20
|
-
Note.where( user_id: user_id, beer_id: bookmarkable_id )
|
21
|
-
end
|
22
|
-
|
23
|
-
|
24
|
-
## todo: check: how to handle polymorphic best for getting beer for bookmarkable?
|
25
|
-
def beer
|
26
|
-
## todo: check/assert bookmarkable_type == BeerDB::Model::Beer
|
27
|
-
Beer.find( bookmarkable_id )
|
28
|
-
end
|
29
|
-
|
30
|
-
end # class Bookmark
|
31
|
-
|
32
|
-
end # module Model
|
33
|
-
end # module BeerDb
|
data/lib/beerdb/models/city.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
class City
|
7
|
-
has_many :beers, :class_name => 'BeerDb::Model::Beer', :foreign_key => 'city_id'
|
8
|
-
has_many :brands, :class_name => 'BeerDb::Model::Brand', :foreign_key => 'city_id'
|
9
|
-
has_many :breweries, :class_name => 'BeerDb::Model::Brewery', :foreign_key => 'city_id'
|
10
|
-
end # class Country
|
11
|
-
|
12
|
-
end # module Model
|
13
|
-
end # module WorldDb
|
14
|
-
|
data/lib/beerdb/models/drink.rb
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module BeerDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
class Drink < ActiveRecord::Base
|
7
|
-
|
8
|
-
belongs_to :beer, class_name: 'BeerDb::Model::Beer'
|
9
|
-
belongs_to :user, class_name: 'BeerDb::Model::User'
|
10
|
-
|
11
|
-
before_save :on_before_save
|
12
|
-
|
13
|
-
def on_before_save
|
14
|
-
# todo/check: can we use blank? for datetime too or just array,strings,etc.
|
15
|
-
# check - can we use/access created_at? already set for new records?
|
16
|
-
|
17
|
-
self.drunk_at = Time.now if drunk_at.blank?
|
18
|
-
end
|
19
|
-
|
20
|
-
|
21
|
-
end # class Drink
|
22
|
-
|
23
|
-
end # module Model
|
24
|
-
end # module BeerDb
|
25
|
-
|
data/lib/beerdb/models/note.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module BeerDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
class Note < ActiveRecord::Base
|
7
|
-
|
8
|
-
belongs_to :beer, class_name: 'BeerDb::Model::Beer'
|
9
|
-
belongs_to :user, class_name: 'BeerDb::Model::User'
|
10
|
-
|
11
|
-
end # class Note
|
12
|
-
|
13
|
-
end # module Model
|
14
|
-
end # module BeerDb
|
15
|
-
|
data/lib/beerdb/models/region.rb
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module WorldDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
class Region
|
7
|
-
has_many :beers, :class_name => 'BeerDb::Model::Beer', :foreign_key => 'region_id'
|
8
|
-
has_many :brands, :class_name => 'BeerDb::Model::Brand', :foreign_key => 'region_id'
|
9
|
-
has_many :breweries, :class_name => 'BeerDb::Model::Brewery', :foreign_key => 'region_id'
|
10
|
-
end # class Region
|
11
|
-
|
12
|
-
end # module Model
|
13
|
-
end # module WorldDb
|
14
|
-
|
data/lib/beerdb/models/user.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
|
-
module BeerDb
|
4
|
-
module Model
|
5
|
-
|
6
|
-
class User < ActiveRecord::Base
|
7
|
-
|
8
|
-
has_many :notes # beers w/ ratings
|
9
|
-
has_many :drinks
|
10
|
-
|
11
|
-
has_many :bookmarks # bookmarked beers
|
12
|
-
|
13
|
-
|
14
|
-
before_save :on_before_save
|
15
|
-
|
16
|
-
def on_before_save
|
17
|
-
if email.blank?
|
18
|
-
self.key = 'xxx'
|
19
|
-
else
|
20
|
-
# NB: remove whitespace and (.-+_) and downcase
|
21
|
-
self.key = email.gsub( /[\s\.\-+_]/, '' ).downcase
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
end # class User
|
26
|
-
|
27
|
-
end # module Model
|
28
|
-
end # module BeerDb
|
29
|
-
|
@@ -1,36 +0,0 @@
|
|
1
|
-
body {
|
2
|
-
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; }
|
3
|
-
|
4
|
-
a {
|
5
|
-
color: black;
|
6
|
-
text-decoration: none; }
|
7
|
-
a:hover {
|
8
|
-
color: black;
|
9
|
-
background-color: aqua;
|
10
|
-
text-decoration: underline; }
|
11
|
-
a:visited {
|
12
|
-
color: black; }
|
13
|
-
|
14
|
-
.params {
|
15
|
-
color: green;
|
16
|
-
font-style: italic;
|
17
|
-
font-weight: bold; }
|
18
|
-
|
19
|
-
pre {
|
20
|
-
background-color: #F3F3F3;
|
21
|
-
border-bottom: 1px solid #BBBBBB;
|
22
|
-
border-top: 1px solid #BBBBBB;
|
23
|
-
padding: 4px; }
|
24
|
-
|
25
|
-
|
26
|
-
/**********
|
27
|
-
* version / powered by
|
28
|
-
*/
|
29
|
-
|
30
|
-
.version {
|
31
|
-
text-align: center;
|
32
|
-
margin-top: 10px;
|
33
|
-
color: grey; }
|
34
|
-
.version a, .version span {
|
35
|
-
font-size: 12px;
|
36
|
-
color: grey; }
|
@@ -1,17 +0,0 @@
|
|
1
|
-
|
2
|
-
<h3>Debug</h3>
|
3
|
-
|
4
|
-
<pre>
|
5
|
-
request.scheme <%= request.scheme %>
|
6
|
-
request.script_name <%= request.script_name %>
|
7
|
-
request.path_info <%= request.path_info %>
|
8
|
-
request.port <%= request.port %>
|
9
|
-
request.request_method <%= request.request_method %>
|
10
|
-
request.query_string <%= request.query_string %>
|
11
|
-
request.host <%= request.host %>
|
12
|
-
request.referrer <%= request.referrer %>
|
13
|
-
request.user_agent <%= request.user_agent %>
|
14
|
-
request.url <%= request.url %>
|
15
|
-
request.path <%= request.path %>
|
16
|
-
request.ip <%= request.ip %>
|
17
|
-
</pre>
|
@@ -1,7 +0,0 @@
|
|
1
|
-
<div class='version'>
|
2
|
-
<a href="http://groups.google.com/group/beerdb">Questions? Comments?</a> |
|
3
|
-
<a href="https://github.com/geraldb/world.db">world.db/<%= WorldDb::VERSION %></a>,
|
4
|
-
<a href="https://github.com/geraldb/beer.db">beer.db/<%= BeerDb::VERSION %></a> -
|
5
|
-
<span>Ruby/<%= "#{RUBY_VERSION} (#{RUBY_RELEASE_DATE}/#{RUBY_PLATFORM})" %> on</span>
|
6
|
-
<span>Sinatra/<%= Sinatra::VERSION %> (<%= ENV['RACK_ENV'] %>)</span>
|
7
|
-
</div>
|