Module: Spree::Preferences::Preferable

Extended by:
ActiveSupport::Concern
Included in:
Base, Configuration
Defined in:
lib/spree/preferences/preferable.rb

Instance Method Summary collapse

Instance Method Details

#default_preferencesHash{Symbol => Object}



96
97
98
99
100
101
102
# File 'lib/spree/preferences/preferable.rb', line 96

def default_preferences
  Hash[
    defined_preferences.map do |preference|
      [preference, preference_default(preference)]
    end
  ]
end

#defined_preferencesArray<Symbol>



91
92
93
# File 'lib/spree/preferences/preferable.rb', line 91

def defined_preferences
  self.class.defined_preferences
end

#get_preference(name) ⇒ Object

Get a preference



51
52
53
54
# File 'lib/spree/preferences/preferable.rb', line 51

def get_preference(name)
  has_preference! name
  send self.class.preference_getter_method(name)
end

#has_preference!(name) ⇒ Object

Raises an exception if the name preference is not defined on this class



80
81
82
# File 'lib/spree/preferences/preferable.rb', line 80

def has_preference!(name)
  raise NoMethodError.new "#{name} preference not defined" unless has_preference? name
end

#has_preference?(name) ⇒ Boolean



86
87
88
# File 'lib/spree/preferences/preferable.rb', line 86

def has_preference?(name)
  defined_preferences.include?(name.to_sym)
end

#preference_default(name) ⇒ Object



73
74
75
76
# File 'lib/spree/preferences/preferable.rb', line 73

def preference_default(name)
  has_preference! name
  send self.class.preference_default_getter_method(name)
end

#preference_type(name) ⇒ Symbol



66
67
68
69
# File 'lib/spree/preferences/preferable.rb', line 66

def preference_type(name)
  has_preference! name
  send self.class.preference_type_getter_method(name)
end

#set_preference(name, value) ⇒ Object

Set a preference



59
60
61
62
# File 'lib/spree/preferences/preferable.rb', line 59

def set_preference(name, value)
  has_preference! name
  send self.class.preference_setter_method(name), value
end