module Mandriller::SettingsMethods::ClassMethods
Public Instance Methods
define_settings_methods(*keys)
click to toggle source
# File lib/mandriller/settings_methods.rb, line 8 def define_settings_methods(*keys) options = keys[-1].is_a?(Hash) ? keys.pop : {} keys.flatten.each do |key| class_attribute "mandrill_#{key}" define_mandrill_setter(key, options) define_mandrill_getter(key, options) end end
Private Instance Methods
define_mandrill_getter(key, options = {})
click to toggle source
# File lib/mandriller/settings_methods.rb, line 40 def define_mandrill_getter(key, options = {}) getter = options[:getter] method_name = "get_mandrill_setting_#{key}" define_method method_name do v = __send__("mandrill_#{key}") if getter getter.call(v) else v end end private method_name end
define_mandrill_setter(key, options = {})
click to toggle source
# File lib/mandriller/settings_methods.rb, line 21 def define_mandrill_setter(key, options = {}) if default = options[:default] arg_s = "v = #{default.inspect}" else arg_s = "v" end method_name = "set_mandrill_setting_#{key}" [self, singleton_class].each do |base| base.class_eval <<-EOS def #{method_name}(#{arg_s}) self.mandrill_#{key} = v end private :#{method_name} alias_method :set_#{key}, :#{method_name} EOS end end