beerdb 0.9.9 → 0.9.10
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 +2 -0
- data/Rakefile +2 -0
- data/lib/beerdb.rb +11 -0
- data/lib/beerdb/reader.rb +6 -16
- data/lib/beerdb/reader_file.rb +31 -0
- data/lib/beerdb/reader_zip.rb +40 -0
- data/lib/beerdb/version.rb +1 -1
- metadata +37 -24
data/Manifest.txt
CHANGED
@@ -17,6 +17,8 @@ lib/beerdb/models/world/city.rb
|
|
17
17
|
lib/beerdb/models/world/country.rb
|
18
18
|
lib/beerdb/models/world/region.rb
|
19
19
|
lib/beerdb/reader.rb
|
20
|
+
lib/beerdb/reader_file.rb
|
21
|
+
lib/beerdb/reader_zip.rb
|
20
22
|
lib/beerdb/schema.rb
|
21
23
|
lib/beerdb/serializers/beer.rb
|
22
24
|
lib/beerdb/serializers/brewery.rb
|
data/Rakefile
CHANGED
@@ -32,6 +32,8 @@ Hoe.spec 'beerdb' do
|
|
32
32
|
## 3rd party
|
33
33
|
['gli', '>= 2.5.6'],
|
34
34
|
|
35
|
+
['rubyzip'], ## NOTE: used for ZipReader (optional in textutils, thus, pull it in here)
|
36
|
+
|
35
37
|
['activerecord'] # NB: will include activesupport,etc.
|
36
38
|
### ['sqlite3', '~> 1.3'] # NB: install on your own; remove dependency
|
37
39
|
]
|
data/lib/beerdb.rb
CHANGED
@@ -19,6 +19,9 @@ require 'uri'
|
|
19
19
|
|
20
20
|
# 3rd party gems / libs
|
21
21
|
|
22
|
+
require 'zip' ## (optionally for textutils e.g. soft dependency - pull in here)
|
23
|
+
|
24
|
+
|
22
25
|
# -- get required by worlddb
|
23
26
|
# require 'active_record' ## todo: add sqlite3? etc.
|
24
27
|
# require 'logutils'
|
@@ -46,6 +49,8 @@ require 'beerdb/serializers/brewery'
|
|
46
49
|
|
47
50
|
require 'beerdb/schema'
|
48
51
|
require 'beerdb/reader'
|
52
|
+
require 'beerdb/reader_file'
|
53
|
+
require 'beerdb/reader_zip'
|
49
54
|
require 'beerdb/deleter'
|
50
55
|
require 'beerdb/stats'
|
51
56
|
|
@@ -85,6 +90,12 @@ module BeerDb
|
|
85
90
|
reader.load_setup( setup )
|
86
91
|
end
|
87
92
|
|
93
|
+
def self.read_setup_from_zip( setup, zip_path, opts={} ) ## todo/check - use a better (shorter) name ??
|
94
|
+
reader = ZipReader.new( zip_path, opts )
|
95
|
+
reader.load_setup( setup )
|
96
|
+
reader.close
|
97
|
+
end
|
98
|
+
|
88
99
|
def self.read_all( include_path, opts={} ) # load all builtins (using plain text reader); helper for convenience
|
89
100
|
read_setup( 'setups/all', include_path, opts )
|
90
101
|
end # method read_all
|
data/lib/beerdb/reader.rb
CHANGED
@@ -33,7 +33,7 @@ module Matcher
|
|
33
33
|
end # module Matcher
|
34
34
|
|
35
35
|
|
36
|
-
class
|
36
|
+
class ReaderBase
|
37
37
|
|
38
38
|
include LogUtils::Logging
|
39
39
|
|
@@ -42,20 +42,9 @@ class Reader
|
|
42
42
|
include WorldDb::Matcher ## fix: move to BeerDb::Matcher module ??? - cleaner?? why? why not?
|
43
43
|
include BeerDb::Matcher # lets us use match_teams_for_country etc.
|
44
44
|
|
45
|
-
attr_reader :include_path
|
46
|
-
|
47
|
-
|
48
|
-
def initialize( include_path, opts = {} )
|
49
|
-
@include_path = include_path
|
50
|
-
end
|
51
|
-
|
52
45
|
|
53
46
|
def load_setup( name )
|
54
|
-
|
55
|
-
|
56
|
-
logger.info "parsing data '#{name}' (#{path})..."
|
57
|
-
|
58
|
-
reader = FixtureReader.new( path )
|
47
|
+
reader = create_fixture_reader( name ) ### "virtual" method - required by concrete class
|
59
48
|
|
60
49
|
reader.each do |fixture_name|
|
61
50
|
load( fixture_name )
|
@@ -124,7 +113,8 @@ class Reader
|
|
124
113
|
|
125
114
|
|
126
115
|
def load_beers_worker( name, more_attribs={} )
|
127
|
-
|
116
|
+
|
117
|
+
reader = create_beers_reader( name, more_attribs ) ### "virtual" method - required by concrete class
|
128
118
|
|
129
119
|
### todo: cleanup - check if [] works for build_title...
|
130
120
|
# better cleaner way ???
|
@@ -208,7 +198,7 @@ class Reader
|
|
208
198
|
## no marker; do nothing
|
209
199
|
end
|
210
200
|
|
211
|
-
reader =
|
201
|
+
reader = create_breweries_reader( name, more_attribs ) ### "virtual" method - required by concrete class
|
212
202
|
|
213
203
|
reader.each_line do |new_attributes, values|
|
214
204
|
|
@@ -225,5 +215,5 @@ class Reader
|
|
225
215
|
end # each_line
|
226
216
|
end
|
227
217
|
|
228
|
-
end # class
|
218
|
+
end # class ReaderBase
|
229
219
|
end # module BeerDb
|
@@ -0,0 +1,31 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module BeerDb
|
4
|
+
|
5
|
+
class Reader < ReaderBase ## todo: "old" classic reader - rename to FileReader ?? why? why not?
|
6
|
+
|
7
|
+
attr_reader :include_path
|
8
|
+
|
9
|
+
def initialize( include_path, opts = {} )
|
10
|
+
@include_path = include_path
|
11
|
+
end
|
12
|
+
|
13
|
+
def create_fixture_reader( name )
|
14
|
+
path = "#{include_path}/#{name}.txt"
|
15
|
+
|
16
|
+
logger.info "parsing data '#{name}' (#{path})..."
|
17
|
+
|
18
|
+
FixtureReader.new( path )
|
19
|
+
end
|
20
|
+
|
21
|
+
def create_beers_reader( name, more_attribs={} )
|
22
|
+
ValuesReaderV2.new( name, include_path, more_attribs )
|
23
|
+
end
|
24
|
+
|
25
|
+
def create_breweries_reader( name, more_attribs={} )
|
26
|
+
ValuesReaderV2.new( name, include_path, more_attribs )
|
27
|
+
end
|
28
|
+
|
29
|
+
|
30
|
+
end # class Reader
|
31
|
+
end # module BeerDb
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
module BeerDb
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
|
8
|
+
class ZipReader < ReaderBase
|
9
|
+
|
10
|
+
|
11
|
+
## todo/fix: add a close method - why? why not ???
|
12
|
+
|
13
|
+
def initialize( zip_path, opts = {} )
|
14
|
+
@zip_path = zip_path
|
15
|
+
## check if zip exists
|
16
|
+
|
17
|
+
@zip_file = Zip::File.open( zip_path ) ## NOTE: do NOT create if file is missing; let it crash
|
18
|
+
end
|
19
|
+
|
20
|
+
def close
|
21
|
+
@zip_file.close
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
def create_fixture_reader( name )
|
26
|
+
FixtureReader.from_zip( @zip_file, name )
|
27
|
+
end
|
28
|
+
|
29
|
+
def create_beers_reader( name, more_attribs={} )
|
30
|
+
ValuesReader.from_zip( @zip_file, name, more_attribs )
|
31
|
+
end
|
32
|
+
|
33
|
+
def create_breweries_reader( name, more_attribs={} )
|
34
|
+
ValuesReader.from_zip( @zip_file, name, more_attribs )
|
35
|
+
end
|
36
|
+
|
37
|
+
|
38
|
+
end # class ZipReader
|
39
|
+
end # module BeerDb
|
40
|
+
|
data/lib/beerdb/version.rb
CHANGED
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.10
|
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-11-
|
12
|
+
date: 2014-11-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: props
|
16
|
-
requirement: &
|
16
|
+
requirement: &78783500 !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: *78783500
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: logutils
|
27
|
-
requirement: &
|
27
|
+
requirement: &78783230 !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: *78783230
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: textutils
|
38
|
-
requirement: &
|
38
|
+
requirement: &78782980 !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: *78782980
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: worlddb
|
49
|
-
requirement: &
|
49
|
+
requirement: &78782670 !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: *78782670
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: tagutils
|
60
|
-
requirement: &
|
60
|
+
requirement: &78782440 !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: *78782440
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: activerecord-utils
|
71
|
-
requirement: &
|
71
|
+
requirement: &78782200 !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: *78782200
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: fetcher
|
82
|
-
requirement: &
|
82
|
+
requirement: &78779430 !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: *78779430
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: gli
|
93
|
-
requirement: &
|
93
|
+
requirement: &78778980 !ruby/object:Gem::Requirement
|
94
94
|
none: false
|
95
95
|
requirements:
|
96
96
|
- - ! '>='
|
@@ -98,10 +98,21 @@ dependencies:
|
|
98
98
|
version: 2.5.6
|
99
99
|
type: :runtime
|
100
100
|
prerelease: false
|
101
|
-
version_requirements: *
|
101
|
+
version_requirements: *78778980
|
102
|
+
- !ruby/object:Gem::Dependency
|
103
|
+
name: rubyzip
|
104
|
+
requirement: &78778580 !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
110
|
+
type: :runtime
|
111
|
+
prerelease: false
|
112
|
+
version_requirements: *78778580
|
102
113
|
- !ruby/object:Gem::Dependency
|
103
114
|
name: activerecord
|
104
|
-
requirement: &
|
115
|
+
requirement: &78778210 !ruby/object:Gem::Requirement
|
105
116
|
none: false
|
106
117
|
requirements:
|
107
118
|
- - ! '>='
|
@@ -109,10 +120,10 @@ dependencies:
|
|
109
120
|
version: '0'
|
110
121
|
type: :runtime
|
111
122
|
prerelease: false
|
112
|
-
version_requirements: *
|
123
|
+
version_requirements: *78778210
|
113
124
|
- !ruby/object:Gem::Dependency
|
114
125
|
name: rdoc
|
115
|
-
requirement: &
|
126
|
+
requirement: &78777770 !ruby/object:Gem::Requirement
|
116
127
|
none: false
|
117
128
|
requirements:
|
118
129
|
- - ~>
|
@@ -120,10 +131,10 @@ dependencies:
|
|
120
131
|
version: '4.0'
|
121
132
|
type: :development
|
122
133
|
prerelease: false
|
123
|
-
version_requirements: *
|
134
|
+
version_requirements: *78777770
|
124
135
|
- !ruby/object:Gem::Dependency
|
125
136
|
name: hoe
|
126
|
-
requirement: &
|
137
|
+
requirement: &78777430 !ruby/object:Gem::Requirement
|
127
138
|
none: false
|
128
139
|
requirements:
|
129
140
|
- - ~>
|
@@ -131,7 +142,7 @@ dependencies:
|
|
131
142
|
version: '3.12'
|
132
143
|
type: :development
|
133
144
|
prerelease: false
|
134
|
-
version_requirements: *
|
145
|
+
version_requirements: *78777430
|
135
146
|
description: beerdb - beer.db command line tool
|
136
147
|
email: beerdb@googlegroups.com
|
137
148
|
executables:
|
@@ -161,6 +172,8 @@ files:
|
|
161
172
|
- lib/beerdb/models/world/country.rb
|
162
173
|
- lib/beerdb/models/world/region.rb
|
163
174
|
- lib/beerdb/reader.rb
|
175
|
+
- lib/beerdb/reader_file.rb
|
176
|
+
- lib/beerdb/reader_zip.rb
|
164
177
|
- lib/beerdb/schema.rb
|
165
178
|
- lib/beerdb/serializers/beer.rb
|
166
179
|
- lib/beerdb/serializers/brewery.rb
|