Sha256: c8471cdde992df15c973a951e39b001a76b31ae4aca33b5cfbe0e66aea5ad7b6
Contents?: true
Size: 972 Bytes
Versions: 6
Compression:
Stored size: 972 Bytes
Contents
module Mandriller module SettingsMethods def self.included(base) base.extend(ClassMethods) end module ClassMethods def define_settings_methods(*keys) options = keys[-1].is_a?(Hash) ? keys.pop : {} if default = options[:default] arg_s = "v = #{default.inspect}" else arg_s = "v" end keys.flatten.each do |key| class_eval <<-EOS class_attribute :mandrill_#{key} def self.set_#{key}(#{arg_s}) self.mandrill_#{key} = v end private_class_method :set_#{key} def set_#{key}(#{arg_s}) @mandrill_#{key} = v end private :set_#{key} EOS end end end def get_mandrill_setting(key) instance_variable_defined?("@mandrill_#{key}") ? instance_variable_get("@mandrill_#{key}") : __send__("mandrill_#{key}") end private :get_mandrill_setting end end
Version data entries
6 entries across 6 versions & 1 rubygems