class AlohaAnalyzer::Base
Attributes
analysis[R]
language[R]
Public Class Methods
new(options)
click to toggle source
# 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
Public Instance Methods
add_account_language_user(user)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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()
click to toggle source
# File lib/aloha_analyzer/base.rb, line 59 def language_key self.class.language_key end
network_name()
click to toggle source
# File lib/aloha_analyzer/base.rb, line 55 def network_name self.class.network_name end
prepare_foreign_language(abbreviation)
click to toggle source
# 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)
click to toggle source
# 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