
Untitled
By: a guest on
Jul 1st, 2012 | syntax:
None | size: 0.97 KB | hits: 19 | expires: Never
module Uclass
module Settings
def self.included(klass)
klass.class_eval do
extend ModelClassMethods
has_many :settings, :as => :resource
def has_setting?(key)
!setting(key).nil?
end
def setting(key)
settings.where(:key => key.to_s).first.value rescue nil
end
def method_missing(method_id, *arguments, &block)
if method_id != :id
setting(method_id) || super
else
super
end
end
end
end
module ModelClassMethods
def update_settings!
setting_keys = first.settings.collect(&:key)
(name.constantize::SETTINGS.keys - setting_keys).each do |new_key|
all.each {|object| object.settings.create(:key => new_key, :value => name.constantize::SETTINGS[new_key][:default])}
end
end
end
end
end