Module: RailsSettings::Scopes

Defined in:
lib/rails-settings/scopes.rb

Instance Method Summary collapse

Instance Method Details

#settings_join_conditionObject



24
25
26
27
# File 'lib/rails-settings/scopes.rb', line 24

def settings_join_condition
  "settings.target_id   = #{table_name}.#{primary_key} AND
   settings.target_type = '#{base_class.name}'"
end

#with_settingsObject



3
4
5
6
# File 'lib/rails-settings/scopes.rb', line 3

def with_settings
  joins("INNER JOIN settings ON #{settings_join_condition}").
  uniq
end

#with_settings_for(var) ⇒ Object

Raises:

  • (ArgumentError)


8
9
10
11
# File 'lib/rails-settings/scopes.rb', line 8

def with_settings_for(var)
  raise ArgumentError.new('Symbol expected!') unless var.is_a?(Symbol)
  joins("INNER JOIN settings ON #{settings_join_condition} AND settings.var = '#{var}'")
end

#without_settingsObject



13
14
15
16
# File 'lib/rails-settings/scopes.rb', line 13

def without_settings
  joins("LEFT JOIN settings ON #{settings_join_condition}").
  where('settings.id IS NULL')
end

#without_settings_for(var) ⇒ Object

Raises:

  • (ArgumentError)


18
19
20
21
22
# File 'lib/rails-settings/scopes.rb', line 18

def without_settings_for(var)
  raise ArgumentError.new('Symbol expected!') unless var.is_a?(Symbol)
  joins("LEFT JOIN settings ON  #{settings_join_condition} AND settings.var = '#{var}'").
  where('settings.id IS NULL')
end