Module: Flavors::Preferences::ClassMethods

Defined in:
lib/flavors/preferences/preferences.rb

Instance Method Summary collapse

Instance Method Details

#preference(name, options = {}, &callback) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/flavors/preferences/preferences.rb', line 8

def preference(name, options = {}, &callback)
  has_many :preferences, :as => :prefered, :class_name => "::Flavors::Preference"

  define_method(name) do
    read_preference(name, options[:default])
  end

  define_method("#{name}?") do
    read_preference(name, options[:default])
  end

  define_method("#{name}=") do |value|
    write_preference(name, value)
    callback.call(self, value) if callback
  end
end