class Eventifier::Preferences
Attributes
user[R]
Public Class Methods
new(user)
click to toggle source
# File lib/eventifier/preferences.rb, line 2 def initialize(user) @user = user end
Public Instance Methods
to_hashes()
click to toggle source
# File lib/eventifier/preferences.rb, line 6 def to_hashes keys.collect do |key| { :key => key, :label => label_for(key), :value => value_for(key) } end end
update(preferences)
click to toggle source
# File lib/eventifier/preferences.rb, line 16 def update(preferences) settings.preferences['email'] ||= {} to_hashes.each do |hash| settings.preferences['email'][hash[:key]] = boolean( preferences[hash[:key]] ) end settings.save end
Private Instance Methods
boolean(value)
click to toggle source
# File lib/eventifier/preferences.rb, line 30 def boolean(value) !(value.blank? || value == '0') end
keys()
click to toggle source
# File lib/eventifier/preferences.rb, line 34 def keys @keys ||= begin hash = Eventifier::NotificationMapping.notification_mappings ['default'] + hash.keys.collect { |key| hash[key].collect { |value| (key.split('.') + ['notify', Eventifier::Relationship.new(user, value).key]).join('_') } }.flatten end end
label_for(key)
click to toggle source
# File lib/eventifier/preferences.rb, line 45 def label_for(key) I18n.translate :"events.labels.preferences.#{key}", default: key end
settings()
click to toggle source
# File lib/eventifier/preferences.rb, line 49 def settings @settings ||= Eventifier::NotificationSetting.for_user user end
value_for(key)
click to toggle source
# File lib/eventifier/preferences.rb, line 53 def value_for(key) settings.preferences['email'].nil? || settings.preferences['email'][key].nil? || settings.preferences['email'][key] end