aloha_analyzer 0.3.1 → 0.4.0

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: 81caaf5420375cdbb424f316716b7789ffa83138
4
- data.tar.gz: 5f267b646594467a59facb34c9787b20819f3325
3
+ metadata.gz: 0c2bc2b5fb168b92598aaf665bd052e34d6a8d0d
4
+ data.tar.gz: 2656ab9c6028b898d38dd6e61b3d856d43d1adb7
5
5
  SHA512:
6
- metadata.gz: 45fd99434b3e05ddabc6b8a9a722421789459be9154d249d1b4909bad1b370bc3b1e9fac8f390e241261f8571eb24cfa6728dcbb85cca6f97703cf45d79a520f
7
- data.tar.gz: 8de8bd977aa9179de77d1b7d38f362088a1f42ed0984168566440fcd18ff7ff2d58eaf8a692c8e5574cd6f789dd3dea56a2dbd2a0ef4bf4ac045aaf2f258c81a
6
+ metadata.gz: 404f72d579c02ab3bf911ead9cfe416a05442727716c2e498506bdcd3ee4bbd74bdea768cdf014470e3f6a3b5e1495f08702090941b1fff4342efd0988819e5c
7
+ data.tar.gz: e55890d6bd78147f23ab1e81605665bfb204e092ea0e27bd8e4fbeb2febd3305961fdafd42f507f92f258c97b23f51f2bd66f6c2022253eae74d6d334d4cc6b1
@@ -4,14 +4,13 @@ module AlohaAnalyzer
4
4
  attr_reader :language, :analysis
5
5
 
6
6
  def initialize(options)
7
- @language = clean_language(options['language'].downcase)
8
- @users = clean_users(options['users'])
9
- @analysis = (options['analysis'] || boilerplate).clone
10
- @options = options
7
+ @language = clean_language(options['language'].downcase)
8
+ @analysis = (options['analysis'] || boilerplate).clone
9
+ @options = options
11
10
  end
12
11
 
13
- def analyze
14
- @users.each do |user|
12
+ def analyze(users)
13
+ clean_users(users).each do |user|
15
14
  if user['lang'] == @language
16
15
  add_account_language_user(user)
17
16
  @analysis['account_language']['count'] += 1
@@ -1,3 +1,3 @@
1
1
  module AlohaAnalyzer
2
- VERSION = '0.3.1'
2
+ VERSION = '0.4.0'
3
3
  end
@@ -6,15 +6,13 @@ describe AlohaAnalyzer::User do
6
6
  let(:options) do
7
7
  {
8
8
  'language' => language,
9
- 'analysis' => analysis,
10
- 'users' => users
9
+ 'analysis' => analysis
11
10
  }
12
11
  end
13
12
 
14
13
  let(:analysis) { nil }
15
14
 
16
15
  describe '#new' do
17
- let(:users) { [] }
18
16
  context 'when language is british' do
19
17
  let(:language) { 'en-gb' }
20
18
 
@@ -65,28 +63,29 @@ describe AlohaAnalyzer::User do
65
63
  end
66
64
 
67
65
  describe '#analyze' do
66
+ subject(:results) { described_class.new(options).analyze(users) }
68
67
  context 'when no users' do
69
68
  let(:users) { [] }
70
69
 
71
70
  it 'returns a hash' do
72
- subject.analyze.should be_a Hash
71
+ subject.should be_a Hash
73
72
  end
74
73
 
75
74
  it 'includes the total count' do
76
- subject.analyze['count'].should eq 0
75
+ subject['count'].should eq 0
77
76
  end
78
77
 
79
78
  it 'has no results with the user language' do
80
- subject.analyze['account_language']['count'].should eq 0
79
+ subject['account_language']['count'].should eq 0
81
80
  end
82
81
 
83
82
  it 'has no results without the user language' do
84
- subject.analyze['foreign_languages'].should eq({})
85
- subject.analyze['foreign_languages_count'].should eq 0
83
+ subject['foreign_languages'].should eq({})
84
+ subject['foreign_languages_count'].should eq 0
86
85
  end
87
86
 
88
87
  it 'includes the user lanugage' do
89
- subject.analyze['account_language']['language'].should eq(
88
+ subject['account_language']['language'].should eq(
90
89
  'abbreviation'=>'en', 'greeting' => 'hello!', 'name'=>'English', 'population'=>238000000, 'countries'=>'USA, UK, Canada, Ireland, Australia'
91
90
  )
92
91
  end
@@ -104,15 +103,15 @@ describe AlohaAnalyzer::User do
104
103
  }
105
104
 
106
105
  it 'returns a hash' do
107
- subject.analyze.should be_a Hash
106
+ subject.should be_a Hash
108
107
  end
109
108
 
110
109
  it 'includes the total count' do
111
- subject.analyze['count'].should eq 4
110
+ subject['count'].should eq 4
112
111
  end
113
112
 
114
113
  it 'includes the user lanugage' do
115
- subject.analyze['account_language'].should eq(
114
+ subject['account_language'].should eq(
116
115
  'count' => 2,
117
116
  'language' => {'abbreviation'=>'en', 'name'=>'English', 'population'=>238000000, 'countries'=>'USA, UK, Canada, Ireland, Australia', 'greeting'=>'hello!'},
118
117
  'users' => [{'id' => '1', 'lang' => 'en'}, {'id' => '3', 'lang' => 'en'}]
@@ -120,11 +119,11 @@ describe AlohaAnalyzer::User do
120
119
  end
121
120
 
122
121
  it 'includs the foreign followers count' do
123
- subject.analyze['foreign_languages_count'].should eq 2
122
+ subject['foreign_languages_count'].should eq 2
124
123
  end
125
124
 
126
125
  it 'returns results based on the user language' do
127
- subject.analyze['foreign_languages'].should == {
126
+ subject['foreign_languages'].should == {
128
127
  'fr' => {
129
128
  'count' => 1,
130
129
  'language' => {'abbreviation'=>'fr', 'name'=>'French', 'greeting'=>'bonjour!', 'population'=>14000000, 'countries'=>'France, Canada, Belgium, Switzerland'},
@@ -148,21 +147,21 @@ describe AlohaAnalyzer::User do
148
147
  }
149
148
 
150
149
  it 'returns a hash' do
151
- subject.analyze.should be_a Hash
150
+ subject.should be_a Hash
152
151
  end
153
152
 
154
153
  it 'includes the total count' do
155
- subject.analyze['count'].should eq 2
154
+ subject['count'].should eq 2
156
155
  end
157
156
 
158
157
  it 'includes the user lanugage' do
159
- subject.analyze['account_language']['language'].should eq(
158
+ subject['account_language']['language'].should eq(
160
159
  'abbreviation'=>'en', 'greeting' => 'hello!', 'name'=>'English', 'population'=>238000000, 'countries'=>'USA, UK, Canada, Ireland, Australia'
161
160
  )
162
161
  end
163
162
 
164
163
  it 'returns results based on the user language' do
165
- subject.analyze['account_language'].should == {
164
+ subject['account_language'].should == {
166
165
  'count' => 2,
167
166
  'language' => {'abbreviation'=>'en', 'name'=>'English', 'population'=>238000000, 'countries' => 'USA, UK, Canada, Ireland, Australia', 'greeting'=>'hello!'},
168
167
  'users' => [{'id' => '1', 'lang' => 'en'}, {'id' => '2', 'lang' => 'en'}]
@@ -170,8 +169,8 @@ describe AlohaAnalyzer::User do
170
169
  end
171
170
 
172
171
  it 'returns results results based on the non user language' do
173
- subject.analyze['foreign_languages'].should == {}
174
- subject.analyze['foreign_languages_count'].should eq 0
172
+ subject['foreign_languages'].should == {}
173
+ subject['foreign_languages_count'].should eq 0
175
174
  end
176
175
  end
177
176
 
@@ -185,15 +184,15 @@ describe AlohaAnalyzer::User do
185
184
  }
186
185
 
187
186
  it 'returns a hash' do
188
- subject.analyze.should be_a Hash
187
+ subject.should be_a Hash
189
188
  end
190
189
 
191
190
  it 'includes the total count' do
192
- subject.analyze['count'].should eq 3
191
+ subject['count'].should eq 3
193
192
  end
194
193
 
195
194
  it 'returns results based on the user language' do
196
- subject.analyze['account_language'].should == {
195
+ subject['account_language'].should == {
197
196
  'count' => 0,
198
197
  'language' => {'abbreviation'=>'en', 'greeting' => 'hello!', 'name'=>'English', 'population'=>238000000, 'countries'=>'USA, UK, Canada, Ireland, Australia'},
199
198
  'users' => []
@@ -201,11 +200,11 @@ describe AlohaAnalyzer::User do
201
200
  end
202
201
 
203
202
  it 'includes the correct foreign_languages_count' do
204
- subject.analyze['foreign_languages_count'].should eq 3
203
+ subject['foreign_languages_count'].should eq 3
205
204
  end
206
205
 
207
206
  it 'returns results results based on the non user language' do
208
- subject.analyze['foreign_languages'].should eq(
207
+ subject['foreign_languages'].should eq(
209
208
  'fr' => {
210
209
  'count' => 2,
211
210
  'language' => { 'abbreviation'=>'fr', 'name'=>'French', 'greeting'=>'bonjour!', 'population'=>14000000, 'countries' => 'France, Canada, Belgium, Switzerland' },
@@ -230,11 +229,11 @@ describe AlohaAnalyzer::User do
230
229
  }
231
230
 
232
231
  it 'includes the total count' do
233
- subject.analyze['count'].should eq 3
232
+ subject['count'].should eq 3
234
233
  end
235
234
 
236
235
  it 'includes the user lanugage' do
237
- subject.analyze['account_language'].should == {
236
+ subject['account_language'].should == {
238
237
  'count' => 2,
239
238
  'language' => { 'abbreviation'=>'en', 'greeting' => 'hello!', 'name'=>'English', 'population'=>238000000, 'countries'=>'USA, UK, Canada, Ireland, Australia' },
240
239
  'users' => [{'id' => '1', 'lang' => 'en'}, {'id' => '3', 'lang' => 'en'}]
@@ -242,11 +241,11 @@ describe AlohaAnalyzer::User do
242
241
  end
243
242
 
244
243
  it 'includes the correct foreign_languages_count' do
245
- subject.analyze['foreign_languages_count'].should eq 1
244
+ subject['foreign_languages_count'].should eq 1
246
245
  end
247
246
 
248
247
  it 'merges english and british' do
249
- subject.analyze['foreign_languages'].should eq(
248
+ subject['foreign_languages'].should eq(
250
249
  'fr' => {
251
250
  'count' => 1,
252
251
  'language' => {'abbreviation'=>'fr', 'name'=>'French', 'greeting'=>'bonjour!', 'population'=>14000000, 'countries' => 'France, Canada, Belgium, Switzerland'},
@@ -262,7 +261,6 @@ describe AlohaAnalyzer::User do
262
261
  {
263
262
  'language' => language,
264
263
  'analysis' => analysis,
265
- 'users' => users,
266
264
  'max_users' => 1
267
265
  }
268
266
  end
@@ -277,27 +275,27 @@ describe AlohaAnalyzer::User do
277
275
  }
278
276
 
279
277
  it 'limits the number of account language users to 1' do
280
- subject.analyze['account_language']['users'].size.should eq 1
278
+ subject['account_language']['users'].size.should eq 1
281
279
  end
282
280
 
283
281
  it 'limits the number of foreign languages users to 1' do
284
- subject.analyze['foreign_languages']['fr']['users'].size.should eq 1
282
+ subject['foreign_languages']['fr']['users'].size.should eq 1
285
283
  end
286
284
 
287
285
  it 'does not affect the account language count' do
288
- subject.analyze['account_language']['count'].should eq 2
286
+ subject['account_language']['count'].should eq 2
289
287
  end
290
288
 
291
289
  it 'does not affect the foreign_languages_count' do
292
- subject.analyze['foreign_languages_count'].should eq 3
290
+ subject['foreign_languages_count'].should eq 3
293
291
  end
294
292
 
295
293
  it 'does not affect the total count' do
296
- subject.analyze['count'].should eq 5
294
+ subject['count'].should eq 5
297
295
  end
298
296
 
299
297
  it 'does not affect a foreign language count' do
300
- subject.analyze['foreign_languages']['fr']['count'].should eq 3
298
+ subject['foreign_languages']['fr']['count'].should eq 3
301
299
  end
302
300
  end
303
301
 
@@ -329,7 +327,7 @@ describe AlohaAnalyzer::User do
329
327
  end
330
328
 
331
329
  it 'starts from the existing analysis' do
332
- subject.analyze.should eq(
330
+ subject.should eq(
333
331
  'account_language' => {
334
332
  'count' => 3,
335
333
  'language' => {'abbreviation'=>'en', 'greeting'=>'hello!', 'name'=>'English', 'population'=>238000000, 'countries'=>'USA, UK, Canada, Ireland, Australia'},
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.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthieu Aussaguel