beerdb 0.6.14 → 0.6.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -55,7 +55,11 @@ class Beer < ActiveRecord::Base
55
55
  logger = LogKernel::Logger.root
56
56
 
57
57
  value_tag_keys = []
58
-
58
+
59
+ ## check for grades (e.g. ***/**/*) in titles (will add new_attributes[:grade] to hash)
60
+ ## if grade missing; set default to 4; lets us update overwrite 1,2,3 values on update
61
+ new_attributes[ :grade ] ||= 4
62
+
59
63
  ### check for "default" tags - that is, if present new_attributes[:tags] remove from hash
60
64
 
61
65
  if new_attributes[:tags].present?
@@ -7,6 +7,7 @@ class Brewery < ActiveRecord::Base
7
7
  # NB: use extend - is_<type>? become class methods e.g. self.is_<type>? for use in
8
8
  # self.create_or_update_from_values
9
9
  extend TextUtils::ValueHelper # e.g. is_year?, is_region?, is_address?, is_taglist? etc.
10
+ extend TextUtils::AddressHelper # e.g normalize_address, find_city_for_country, etc.
10
11
 
11
12
  self.table_name = 'breweries'
12
13
 
@@ -41,82 +42,6 @@ class Brewery < ActiveRecord::Base
41
42
 
42
43
 
43
44
 
44
- ## todo/fix:
45
- # move to textutils - use AddressHelper ??
46
- # todo: add _in_adr or _in_addr to name
47
-
48
- def self.find_city_for_country( country_key, address )
49
-
50
- return nil if address.blank? # do NOT process nil or empty address lines; sorry
51
-
52
- lines = address.split( '//' )
53
-
54
- if country_key == 'at' || country_key == 'de'
55
- # first line strip numbers (assuming zip code) and whitespace
56
- line1 = lines[0]
57
- line1 = line1.gsub( /\b[0-9]+\b/, '' ) # use word boundries (why? why not?)
58
- line1 = line1.strip
59
-
60
- return nil if line1.blank? # nothing left sorry; better return nil
61
-
62
- line1 # assume its the city
63
- else
64
- nil # unsupported country/address schema for now; sorry
65
- end
66
- end
67
-
68
-
69
- def self.find_grade( text ) # NB: returns ary [grade,text] / two values
70
- grade = 4 # defaults to grade 4 e.g *** => 1, ** => 2, * => 3, -/- => 4
71
-
72
- text = text.sub( /\s+(\*{1,3})\s*$/ ) do |_| # NB: stars must end field/value
73
- if $1 == '***'
74
- grade = 1
75
- elsif $1 == '**'
76
- grade = 2
77
- elsif $1 == '*'
78
- grade = 3
79
- else
80
- # unknown grade; not possible, is'it?
81
- end
82
- '' # remove * from title if found
83
- end
84
-
85
- [grade,text]
86
- end
87
-
88
- ## todo/fix: move to helper for reuse in textutils!!! (use for beer model too)
89
-
90
- def self.find_grade_in_titles!( new_attributes )
91
-
92
- # NB: will add a new attributes grade to hash e.g. new_attributes[:grade] = grade
93
-
94
- if new_attributes[:title].present?
95
- grade, title = find_grade( new_attributes[:title] )
96
-
97
- if grade == 1 || grade == 2 || grade == 3 # grade found/present; use stripped title
98
- new_attributes[:title] = title
99
- new_attributes[:grade] = grade
100
- return grade
101
- end
102
- end
103
-
104
- if new_attributes[:synonyms].present?
105
- grade, synonyms = find_grade( new_attributes[:synonyms] )
106
-
107
- if grade == 1 || grade == 2 || grade == 3 # grade found/present; use stripped title
108
- new_attributes[:synonyms] = synonyms
109
- new_attributes[:grade] = grade
110
- return grade
111
- end
112
- end
113
-
114
- grade = 4 # defaults to grade 4 e.g *** => 1, ** => 2, * => 3, -/- => 4
115
- new_attributes[:grade] = grade
116
- grade
117
- end
118
-
119
-
120
45
  def self.create_or_update_from_values( new_attributes, values )
121
46
 
122
47
  ## fix: add/configure logger for ActiveRecord!!!
@@ -126,7 +51,8 @@ class Brewery < ActiveRecord::Base
126
51
  value_brands = ''
127
52
 
128
53
  ## check for grades (e.g. ***/**/*) in titles (will add new_attributes[:grade] to hash)
129
- find_grade_in_titles!( new_attributes )
54
+ ## if grade missing; set default to 4; lets us update overwrite 1,2,3 values on update
55
+ new_attributes[ :grade ] ||= 4
130
56
 
131
57
  ### check for "default" tags - that is, if present new_attributes[:tags] remove from hash
132
58
 
@@ -182,7 +108,7 @@ class Brewery < ActiveRecord::Base
182
108
  # fix: support more url format (e.g. w/o www. - look for .com .country code etc.)
183
109
  new_attributes[ :web ] = value
184
110
  elsif is_address?( value ) # if value includes // assume address e.g. 3970 Weitra // Sparkasseplatz 160
185
- new_attributes[ :address ] = TextUtils.normalize_address( value )
111
+ new_attributes[ :address ] = normalize_address( value )
186
112
  elsif value =~ /^brands:/ # brands:
187
113
  value_brands = value[7..-1] ## cut off brands: prefix
188
114
  value_brands = value_brands.strip # remove leading and trailing spaces
@@ -266,7 +192,7 @@ class Brewery < ActiveRecord::Base
266
192
  city_attributes[ :key ] = city_key # NB: new record; include/update key
267
193
  end
268
194
 
269
- logger.info city_attributes.to_json
195
+ logger.debug city_attributes.to_json
270
196
 
271
197
  city.update_attributes!( city_attributes )
272
198
 
@@ -1,4 +1,4 @@
1
1
 
2
2
  module BeerDb
3
- VERSION = '0.6.14'
3
+ VERSION = '0.6.15'
4
4
  end
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.6.14
4
+ version: 0.6.15
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2013-05-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activerecord
16
- requirement: &86079670 !ruby/object:Gem::Requirement
16
+ requirement: &87568670 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '3.2'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *86079670
24
+ version_requirements: *87568670
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: worlddb
27
- requirement: &86079430 !ruby/object:Gem::Requirement
27
+ requirement: &87568420 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '1.6'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *86079430
35
+ version_requirements: *87568420
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: commander
38
- requirement: &86079180 !ruby/object:Gem::Requirement
38
+ requirement: &87568190 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 4.1.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *86079180
46
+ version_requirements: *87568190
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rdoc
49
- requirement: &86078950 !ruby/object:Gem::Requirement
49
+ requirement: &87567960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '3.10'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *86078950
57
+ version_requirements: *87567960
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: hoe
60
- requirement: &86078720 !ruby/object:Gem::Requirement
60
+ requirement: &87567740 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '3.3'
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *86078720
68
+ version_requirements: *87567740
69
69
  description: beerdb - beer.db command line tool
70
70
  email: beerdb@googlegroups.com
71
71
  executables: