Module: CleanSettings::HasSettings

Defined in:
lib/clean_settings/has_settings.rb

Instance Method Summary collapse

Instance Method Details

#has_settings(opts = {}) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/clean_settings/has_settings.rb', line 3

def has_settings(opts = {})
  opts[:method_name] = :settings unless opts.key?(:method_name)

  instance_eval do
    define_method opts[:method_name].to_sym do
      CleanSettings::Ownerable.for_thing(self)
    end
  end

  scope :with_setting, lambda { |var|
    joins("JOIN clean_settings ON (clean_settings.owner_id = #{self.table_name}.#{self.primary_key} AND
     clean_settings.owner_type = '#{self.base_class.name}') AND clean_settings.var = '#{var}'")
  }
end