Module: BooleanScopes::ClassMethods

Defined in:
lib/boolean_scopes.rb

Instance Method Summary collapse

Instance Method Details

#create_boolean_scopesObject



10
11
12
13
14
15
16
# File 'lib/boolean_scopes.rb', line 10

def create_boolean_scopes
  for column in columns
    if TYPES.include?(column.sql_type)
      create_boolean_scopes_for_column(column.name)
    end
  end
end

#create_boolean_scopes_for_column(name) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/boolean_scopes.rb', line 18

def create_boolean_scopes_for_column(name)
  scope :"#{name}", lambda { where(quoted_table_name => { name => true }) }

  prefix, suffix = /\A(has|is|was)_(.+)\z/.match(name).to_a[1..2]
  if prefix && suffix
    scope :"#{prefix}_not_#{suffix}", lambda { where(quoted_table_name => { name => false }) }
  else
    scope :"not_#{name}", lambda { where(quoted_table_name => { name => false }) }
  end
end