aloha_analyzer 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 36b2f48d7da6a71e6ee989066f3ecdd0cf52415c
4
- data.tar.gz: 13836892ac1a676e5c86e9115f0b638e88e7a2f6
3
+ metadata.gz: d289f940c1715018a7e9108125f9759b4ba59324
4
+ data.tar.gz: 30b91b3430356376349099aceafedfc5c8ae463a
5
5
  SHA512:
6
- metadata.gz: eea341593848177dd6e5aa52696f2fc0cddedf4ac7979075172ba9e4d1c76cc593c831a342b39d4b2043a4be5ace24324ddfa0784159dce95f95fd752b0df7e7
7
- data.tar.gz: 248eec547e964eea2e6f603fae70343e4f88028a8c996495a71a9036cc63d1db05c9edb0834e4f82a08626b4191f3dba6a5dce7e656ea86ab6eac7d69a92da80
6
+ metadata.gz: 5bbb88cf518745ef0b3c8f84638444ca075806f730f6160f60dc6554edfb20db5a43a24d39e1bfd2222d4321838711953cbcc70552d7c9e62870e03930f4ca33
7
+ data.tar.gz: ae83dcf4cf74ab222ed8275c3e008d01102915e533899945cbe7aa19358b928988eb5ea0fa4b4220f4342422b71cf75a029078092fe15c24c01858772903a1ae
@@ -23,13 +23,15 @@ module AlohaAnalyzer
23
23
  end
24
24
 
25
25
  def clean_languages(languages)
26
- languages.each do |language_key, count|
27
- if Language.aliases.keys.include?(language_key.downcase)
28
- if languages[Language.aliases[language_key.downcase]]
29
- languages[Language.aliases[language_key.downcase]] = languages[Language.aliases[language_key.downcase]] + count
30
- languages.delete language_key
26
+ Hash.new.tap do |cleaned_languages|
27
+ languages.each do |language_key, count|
28
+ abbreviation = Language.aliases[language_key.downcase]
29
+ abbreviation = Language.find_by_abbreviation(language_key.downcase, network_name)['abbreviation'] if abbreviation.nil?
30
+
31
+ if cleaned_languages[abbreviation]
32
+ cleaned_languages[abbreviation] += count
31
33
  else
32
- languages[Language.aliases[language_key.downcase]] = languages.delete language_key
34
+ cleaned_languages[abbreviation] = count
33
35
  end
34
36
  end
35
37
  end
@@ -1,3 +1,3 @@
1
1
  module AlohaAnalyzer
2
- VERSION = '0.6.0'
2
+ VERSION = '0.6.1'
3
3
  end
@@ -24,7 +24,6 @@ languages:
24
24
  abbreviation: 'ja'
25
25
  name: Japanese
26
26
  twitter_population: 106_580_000
27
- facebook_population: 0
28
27
  countries: 'Japan, Brazil'
29
28
  greeting: '今日は!'
30
29
  'es':
@@ -66,7 +65,6 @@ languages:
66
65
  abbreviation: 'ko'
67
66
  name: Korean
68
67
  twitter_population: 7_000_000
69
- facebook_population: 0
70
68
  countries: 'South Korea'
71
69
  greeting: '안녕하세요!'
72
70
  'tr':
@@ -80,14 +78,12 @@ languages:
80
78
  abbreviation: 'ru'
81
79
  name: Russian
82
80
  twitter_population: 5_000_000
83
- facebook_population: 0
84
81
  countries: 'Russia, Belarus, Kazakhstan, Kyrgyzstan'
85
82
  greeting: 'привет!'
86
83
  'nl':
87
84
  abbreviation: 'nl'
88
85
  name: Dutch
89
86
  twitter_population: 8_000_000
90
- facebook_population: 0
91
87
  countries: 'Netherlands, Belgium'
92
88
  greeting: 'hallo!'
93
89
  'fil':
@@ -108,7 +104,6 @@ languages:
108
104
  abbreviation: 'ms'
109
105
  name: Malay
110
106
  twitter_population: 50_000_000
111
- facebook_population: 0
112
107
  countries: 'Malaysia, Singapore, Brunei'
113
108
  greeting: 'hello!'
114
109
  'zh':
@@ -122,174 +117,148 @@ languages:
122
117
  abbreviation: 'hi'
123
118
  name: Hindi
124
119
  twitter_population: 12_000_000
125
- facebook_population: 0
126
120
  countries: 'India, Pakistan, Fiji'
127
121
  greeting: 'नमस्ते!'
128
122
  'no':
129
123
  abbreviation: 'no'
130
124
  name: Norwegian
131
125
  twitter_population: 300_000
132
- facebook_population: 0
133
126
  countries: 'Norway'
134
127
  greeting: 'goddag!'
135
128
  'sv':
136
129
  abbreviation: 'sv'
137
130
  name: Swedish
138
131
  twitter_population: 500_000
139
- facebook_population: 0
140
132
  countries: 'Sweden'
141
133
  greeting: 'god dag!'
142
134
  'fi':
143
135
  abbreviation: 'fi'
144
136
  name: Finnish
145
137
  twitter_population: 100_000
146
- facebook_population: 0
147
138
  countries: 'Finnish'
148
139
  greeting: ' terve!'
149
140
  'da':
150
141
  abbreviation: 'da'
151
142
  name: Danish
152
143
  twitter_population: 200_000
153
- facebook_population: 0
154
144
  countries: 'Danish'
155
145
  greeting: 'hej!'
156
146
  'pl':
157
147
  abbreviation: 'pl'
158
148
  name: Polish
159
149
  twitter_population: 300_000
160
- facebook_population: 0
161
150
  countries: 'Poland'
162
151
  greeting: 'cześć!'
163
152
  'hu':
164
153
  abbreviation: 'hu'
165
154
  name: Hungarian
166
155
  twitter_population: 1_000_000
167
- facebook_population: 0
168
156
  countries: 'Hungary'
169
157
  greeting: ' jó napot kívánok!'
170
158
  'fa':
171
159
  abbreviation: 'fa'
172
160
  name: Farsi
173
161
  twitter_population: 1_000_000
174
- facebook_population: 0
175
162
  countries: 'Iran, Afghanistan, Tajikistan'
176
163
  greeting: ' سلام!'
177
164
  'he':
178
165
  abbreviation: 'he'
179
166
  name: Hebrew
180
167
  twitter_population: 1_000_000
181
- facebook_population: 0
182
168
  countries: 'Israel'
183
169
  greeting: 'שלום!'
184
170
  'ur':
185
171
  abbreviation: 'ur'
186
172
  name: Urdu
187
173
  twitter_population: 1_000_000
188
- facebook_population: 0
189
174
  countries: 'India, Pakistan, Fiji'
190
175
  greeting: 'لسلام علیکم!'
191
176
  'th':
192
177
  abbreviation: 'th'
193
178
  name: Thai
194
179
  twitter_population: 4_500_000
195
- facebook_population: 0
196
180
  countries: 'Thailand'
197
181
  greeting: 'วัสดี!'
198
182
  'uk':
199
183
  abbreviation: 'uk'
200
184
  name: Ukrainian
201
185
  twitter_population: 1_000_000
202
- facebook_population: 0
203
186
  countries: 'Ukraine'
204
187
  greeting: 'вітаю!'
205
188
  'el':
206
189
  abbreviation: 'el'
207
190
  name: Greek
208
191
  twitter_population: 1_000_000
209
- facebook_population: 0
210
192
  countries: 'Greece, Cyprus'
211
193
  greeting: 'γειά!'
212
194
  'cs':
213
195
  abbreviation: 'cs'
214
196
  name: Czech
215
197
  twitter_population: 800_000
216
- facebook_population: 0
217
198
  countries: 'Czech Republic'
218
199
  greeting: 'ahoj!'
219
200
  'ro':
220
201
  abbreviation: 'ro'
221
202
  name: Romanian
222
203
  twitter_population: 1_000_000
223
- facebook_population: 0
224
204
  countries: 'Romania, Serbia, Moldova'
225
205
  greeting: 'salut!'
226
206
  'km':
227
207
  abbreviation: 'km'
228
208
  name: Khmer
229
209
  twitter_population: 100_000
230
- facebook_population: 0
231
210
  countries: 'Cambodia'
232
211
  greeting: 'chomreabsuor!'
233
212
  'is':
234
213
  abbreviation: 'is'
235
214
  name: Icelandic
236
215
  twitter_population: 50_000
237
- facebook_population: 0
238
216
  countries: 'Iceland'
239
217
  greeting: 'halló!'
240
218
  'sr':
241
219
  abbreviation: 'sr'
242
220
  name: Serbian
243
221
  twitter_population: 1_000_000
244
- facebook_population: 0
245
222
  countries: 'Serbia, Bosnia & Herzegovina'
246
223
  greeting: 'здраво!'
247
224
  'lt':
248
225
  abbreviation: 'lt'
249
226
  name: Lithuanian
250
227
  twitter_population: 100_000
251
- facebook_population: 0
252
228
  countries: 'Lithuania, Belarus, Latvia, Poland'
253
229
  greeting: 'sveiki!'
254
230
  'vi':
255
231
  abbreviation: 'vi'
256
232
  name: 'Vietnamese'
257
233
  twitter_population: 7_000_000
258
- facebook_population: 0
259
234
  countries: 'Vietnam'
260
235
  greeting: 'chào!'
261
236
  'sl':
262
237
  abbreviation: 'sl'
263
238
  name: 'Slovenian'
264
239
  twitter_population: 50_000
265
- facebook_population: 0
266
240
  countries: 'Slovenia'
267
241
  greeting: 'pozdravi!'
268
242
  'bg':
269
243
  abbreviation: 'bg'
270
244
  name: 'Bulgarian'
271
245
  twitter_population: 500_000
272
- facebook_population: 0
273
246
  countries: 'Bulgaria'
274
247
  greeting: 'здравей!'
275
248
  'lv':
276
249
  abbreviation: 'lv'
277
250
  name: 'Latvian'
278
251
  twitter_population: 50_000
279
- facebook_population: 0
280
252
  countries: 'Latvia'
281
253
  greeting: 'sveiki!'
282
254
  'mk':
283
255
  abbreviation: 'mk'
284
256
  name: 'Macedonian'
285
257
  twitter_population: 50_000
286
- facebook_population: 0
287
258
  countries: 'Macedonia, Albania, Romania, Serbia'
288
259
  greeting: 'Здраво!'
289
260
  'other':
290
261
  abbreviation: 'other'
291
262
  name: 'Other'
292
- twitter_population: 0
293
- facebook_population: 0
294
263
  countries: ''
295
264
  greeting: ''
@@ -1,7 +1,6 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe AlohaAnalyzer::FacebookPage do
4
- # {"tr_TR"=>3677, "en_US"=>89, "ka_GE"=>49, "en_GB"=>44, "az_AZ"=>39, "fr_FR"=>35, "bg_BG"=>28, "ru_RU"=>20, "de_DE"=>19, "ar_AR"=>8, "fr_CA"=>6, "es_LA"=>6, "nl_NL"=>4, "sq_AL"=>3, "pl_PL"=>2, "pt_BR"=>2, "es_ES"=>2, "it_IT"=>2, "lt_LT"=>1, "da_DK"=>1, "cs_CZ"=>1, "el_GR"=>1, "sr_RS"=>1, "et_EE"=>1, "mk_MK"=>1, "en_IN"=>1, "pt_PT"=>1, "jv_ID"=>1}
5
4
  subject(:facebook_page) { described_class.new(options) }
6
5
  let(:language) { 'en' }
7
6
  let(:options) do
@@ -12,6 +11,11 @@ describe AlohaAnalyzer::FacebookPage do
12
11
  end
13
12
  let(:analysis) { nil }
14
13
 
14
+ it 'returns a returns' do
15
+ languages = {"tr_TR"=>3677, "en_US"=>89, "ka_GE"=>49, "en_GB"=>44, "az_AZ"=>39, "fr_FR"=>35, "bg_BG"=>28, "ru_RU"=>20, "de_DE"=>19, "ar_AR"=>8, "fr_CA"=>6, "es_LA"=>6, "nl_NL"=>4, "sq_AL"=>3, "pl_PL"=>2, "pt_BR"=>2, "es_ES"=>2, "it_IT"=>2, "lt_LT"=>1, "da_DK"=>1, "cs_CZ"=>1, "el_GR"=>1, "sr_RS"=>1, "et_EE"=>1, "mk_MK"=>1, "en_IN"=>1, "pt_PT"=>1, "jv_ID"=>1}
16
+ expect(subject.analyze(languages)).to be_a Hash
17
+ end
18
+
15
19
  describe '#new' do
16
20
  context 'when language is british' do
17
21
  let(:language) { 'en-gb' }
@@ -173,6 +177,43 @@ describe AlohaAnalyzer::FacebookPage do
173
177
  end
174
178
  end
175
179
 
180
+ context 'when unknown language' do
181
+ let(:users) do
182
+ {
183
+ 'unknown' => 1,
184
+ 'something' => 1,
185
+ 'fr' => 2
186
+ }
187
+ end
188
+
189
+ it 'returns a hash' do
190
+ expect(subject).to be_a Hash
191
+ end
192
+
193
+ it 'includes the total count' do
194
+ expect(subject['count']).to eq 4
195
+ end
196
+
197
+ it 'includes the correct foreign_languages_count' do
198
+ expect(subject['foreign_languages_count']).to eq 4
199
+ end
200
+
201
+ it 'returns results results based on the non user language' do
202
+ expect(subject['foreign_languages']).to eq(
203
+ 'fr' => {
204
+ 'count' => 2,
205
+ 'language' => { 'abbreviation'=>'fr', 'name'=>'French', 'greeting'=>'bonjour!', 'population'=>45000000, 'countries' => 'France, Canada, Belgium, Switzerland' },
206
+ 'users' => []
207
+ },
208
+ 'other' => {
209
+ 'count' => 2,
210
+ 'language' => {'abbreviation'=>'other', 'name'=>'Other', 'greeting'=>'', 'population'=>nil, 'countries' => '' },
211
+ 'users' => []
212
+ }
213
+ )
214
+ end
215
+ end
216
+
176
217
  context 'when no users language users' do
177
218
  let(:users) do
178
219
  {
@@ -222,7 +263,7 @@ describe AlohaAnalyzer::FacebookPage do
222
263
  {
223
264
  'en' => 1,
224
265
  'en_US' => 1,
225
- 'fr' => 1
266
+ 'fr_CA' => 1
226
267
  }
227
268
  end
228
269
 
@@ -45,8 +45,7 @@ describe AlohaAnalyzer::Language do
45
45
  end
46
46
 
47
47
  it 'has no population' do
48
- expect(subject['population']).to be_a Fixnum
49
- expect(subject['population']).to eq 0
48
+ expect(subject['population']).to be_nil
50
49
  end
51
50
 
52
51
  it 'other as a name' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aloha_analyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu Aussaguel