Sha256: 53a784ba423c9315cd85b7e5b8d91830e8700b289790eebb9df4522292f42897
Contents?: true
Size: 1.09 KB
Versions: 3
Compression:
Stored size: 1.09 KB
Contents
module RailsSettings module Base def self.included(base) base.class_eval do has_many :setting_objects, :as => :target, :autosave => true, :dependent => :delete_all, :class_name => self.setting_object_class_name def settings(var) raise ArgumentError unless var.is_a?(Symbol) raise ArgumentError.new("Unknown key: #{var}") unless self.class.default_settings[var] setting_objects.detect { |s| s.var == var.to_s } || setting_objects.build({ :var => var.to_s }, :without_protection => true) end def settings=(value) if value.nil? setting_objects.each(&:mark_for_destruction) else raise ArgumentError end end def settings?(var=nil) if var.nil? setting_objects.any? { |setting_object| !setting_object.marked_for_destruction? && setting_object.value.present? } else settings(var).value.present? end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
ledermann-rails-settings-2.0.3 | lib/rails-settings/base.rb |
ledermann-rails-settings-2.0.2 | lib/rails-settings/base.rb |
ledermann-rails-settings-2.0.1 | lib/rails-settings/base.rb |