Class: AlohaAnalyzer::Base
- Inherits:
-
Object
- Object
- AlohaAnalyzer::Base
show all
- Defined in:
- lib/aloha_analyzer/base.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(options) ⇒ Base
Returns a new instance of Base.
5
6
7
8
9
|
# File 'lib/aloha_analyzer/base.rb', line 5
def initialize(options)
@language = clean_language(options['language'].downcase)
@analysis = (options['analysis'] || boilerplate).clone
@options = options
end
|
Instance Attribute Details
#analysis ⇒ Object
Returns the value of attribute analysis.
3
4
5
|
# File 'lib/aloha_analyzer/base.rb', line 3
def analysis
@analysis
end
|
#language ⇒ Object
Returns the value of attribute language.
3
4
5
|
# File 'lib/aloha_analyzer/base.rb', line 3
def language
@language
end
|
Instance Method Details
#add_account_language_user(user) ⇒ Object
71
72
73
74
75
|
# File 'lib/aloha_analyzer/base.rb', line 71
def add_account_language_user(user)
unless too_many_users?(@analysis['account_language']['users'])
@analysis['account_language']['users'].push(user)
end
end
|
#add_foreign_language_user(user) ⇒ Object
77
78
79
80
81
82
83
84
|
# File 'lib/aloha_analyzer/base.rb', line 77
def add_foreign_language_user(user)
abbreviation = Language.find_by_abbreviation(user[language_key], network_name)['abbreviation']
prepare_foreign_language(abbreviation)
@analysis['foreign_languages'][abbreviation]['count'] += 1
unless too_many_users?(@analysis['foreign_languages'][abbreviation]['users'])
@analysis['foreign_languages'][abbreviation]['users'].push(user)
end
end
|
#analyze(users) ⇒ Object
11
12
13
14
15
16
17
18
19
20
21
22
23
|
# File 'lib/aloha_analyzer/base.rb', line 11
def analyze(users)
clean_users(users).each do |user|
if user[language_key] == @language
add_account_language_user(user)
@analysis['account_language']['count'] += 1
else
add_foreign_language_user(user)
@analysis['foreign_languages_count'] += 1
end
@analysis['count'] += 1
end
@analysis
end
|
#boilerplate ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/aloha_analyzer/base.rb', line 25
def boilerplate
{
'account_language' => {
'count' => 0,
'language' => Language.find_by_abbreviation(@language, network_name),
'users' => []
},
'foreign_languages_count' => 0,
'count' => 0,
'foreign_languages' => {}
}
end
|
#clean_language(language) ⇒ Object
38
39
40
41
42
43
44
|
# File 'lib/aloha_analyzer/base.rb', line 38
def clean_language(language)
if Language.aliases.keys.include?(language)
Language.aliases[language]
else
language
end
end
|
#clean_users(users) ⇒ Object
46
47
48
49
50
51
52
53
|
# File 'lib/aloha_analyzer/base.rb', line 46
def clean_users(users)
users.map do |user|
if Language.aliases.keys.include?(user[language_key].downcase)
user[language_key] = Language.aliases[user[language_key].downcase]
end
user
end
end
|
#language_key ⇒ Object
59
60
61
|
# File 'lib/aloha_analyzer/base.rb', line 59
def language_key
self.class.language_key
end
|
#network_name ⇒ Object
55
56
57
|
# File 'lib/aloha_analyzer/base.rb', line 55
def network_name
self.class.network_name
end
|
#prepare_foreign_language(abbreviation) ⇒ Object
86
87
88
89
90
91
92
93
94
|
# File 'lib/aloha_analyzer/base.rb', line 86
def prepare_foreign_language(abbreviation)
if @analysis['foreign_languages'][abbreviation].nil?
@analysis['foreign_languages'][abbreviation] = {
'count' => 0,
'language' => Language.find_by_abbreviation(abbreviation, network_name),
'users' => []
}
end
end
|
#too_many_users?(users) ⇒ Boolean
63
64
65
66
67
68
69
|
# File 'lib/aloha_analyzer/base.rb', line 63
def too_many_users?(users)
if @options['max_users'] && users.size >= @options['max_users']
true
else
false
end
end
|