Class: Spree::Preferences::Configuration

Inherits:
Object
  • Object
show all
Includes:
Preferable
Defined in:
app/models/spree/preferences/configuration.rb

Direct Known Subclasses

AppConfiguration

Instance Method Summary collapse

Methods included from Preferable

#clear_preferences, #default_preferences, #defined_preferences, #get_preference, #has_preference!, #has_preference?, #preference_default, #preference_type, #set_preference

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object


55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/models/spree/preferences/configuration.rb', line 55

def method_missing(method, *args)
  name = method.to_s.delete('=')
  if has_preference? name
    if method.to_s =~ /=$/
      set_preference(name, args.first)
    else
      get_preference name
    end
  else
    super
  end
end

Instance Method Details

#configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:


27
28
29
# File 'app/models/spree/preferences/configuration.rb', line 27

def configure
  yield(self) if block_given?
end

#preferencesObject


31
32
33
# File 'app/models/spree/preferences/configuration.rb', line 31

def preferences
  ScopedStore.new(self.class.name.underscore)
end

#resetObject


35
36
37
38
39
# File 'app/models/spree/preferences/configuration.rb', line 35

def reset
  preferences.each do |name, _value|
    set_preference name, preference_default(name)
  end
end

#set(*args) ⇒ Object


46
47
48
49
50
51
52
53
# File 'app/models/spree/preferences/configuration.rb', line 46

def set(*args)
  options = args.extract_options!
  options.each do |name, value|
    set_preference name, value
  end

  set_preference args[0], args[1] if args.size == 2
end