class Notifiable::App

Public Class Methods

define_configuration_accessors(notifiers) click to toggle source
# File lib/notifiable/app.rb, line 35
def self.define_configuration_accessors(notifiers)
  notifiers.each_pair do |provider, clazz|
    next unless clazz.notifier_attributes
    
    clazz.notifier_attributes.each do |attribute|
      define_method("#{provider}_#{attribute}="){ |v| configuration[provider][attribute] = v }
      define_method("#{provider}_#{attribute}"){ configuration[provider][attribute] }
    end
  end
end

Public Instance Methods

configuration() click to toggle source
# File lib/notifiable/app.rb, line 16
def configuration
  unless read_attribute(:configuration)
    write_attribute(:configuration, default_configuration)
  end
  read_attribute(:configuration)
end
configure(provider, notifier) click to toggle source
# File lib/notifiable/app.rb, line 10
def configure(provider, notifier)
  return unless self.configuration && self.configuration[provider]

  self.configuration[provider].each_pair {|key, value| notifier.instance_variable_set("@#{key}", value) if notifier.class.notifier_attributes.include?(key) } 
end
default_configuration() click to toggle source
# File lib/notifiable/app.rb, line 23
def default_configuration
  configuration = {}
  Notifiable.notifier_classes.each_pair do |provider,clazz|
    configuration[provider] = {}
    next unless clazz.notifier_attributes
    clazz.notifier_attributes.each do |notifier_attribute|
      configuration[provider][notifier_attribute] = nil
    end
  end
  configuration
end
save_notification_statuses() click to toggle source
# File lib/notifiable/app.rb, line 46
def save_notification_statuses
  self.configuration[:save_notification_statuses] == true || self.configuration[:save_notification_statuses].eql?("1")
end
save_notification_statuses=(save_notification_statuses) click to toggle source
# File lib/notifiable/app.rb, line 50
def save_notification_statuses=(save_notification_statuses)
  self.configuration[:save_notification_statuses] = save_notification_statuses
end