aloha_analyzer 0.6.0 → 0.6.1

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.
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