Module: ActiveHashRelation::ColumnFilters

Included in:
FilterApplier
Defined in:
lib/active_hash_relation/column_filters.rb

Instance Method Summary collapse

Instance Method Details

#filter_boolean(resource, column, param) ⇒ Object



66
67
68
69
70
# File 'lib/active_hash_relation/column_filters.rb', line 66

def filter_boolean(resource, column, param)
  b_param = ActiveRecord::Type::Boolean.new.type_cast_from_database(param)

  resource = resource.where(column => b_param)
end

#filter_date(resource, column, table_name, param) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/active_hash_relation/column_filters.rb', line 40

def filter_date(resource, column, table_name, param)
  if param.is_a? Array
    n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this!
    return resource.where("#{table_name}.#{column} IN (#{n_param})")
  elsif param.is_a? Hash
    return apply_leq_geq_le_ge_filters(resource, table_name, column, param)
  else
    resource = resource.where(column => param)
  end

  return resource
end

#filter_datetime(resource, column, table_name, param) ⇒ Object



53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/active_hash_relation/column_filters.rb', line 53

def filter_datetime(resource, column, table_name, param)
  if param.is_a? Array
    n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this!
    return resource = resource.where("#{table_name}.#{column} IN (#{n_param})")
  elsif param.is_a? Hash
    return apply_leq_geq_le_ge_filters(resource, table_name, column, param)
  else
    resource = resource.where(column => param)
  end

  return resource
end

#filter_decimal(resource, column, table_name, param) ⇒ Object



21
22
23
# File 'lib/active_hash_relation/column_filters.rb', line 21

def filter_decimal(resource, column, table_name, param)
  filter_integer(resource, column, table_name, param)
end

#filter_float(resource, column, table_name, param) ⇒ Object



17
18
19
# File 'lib/active_hash_relation/column_filters.rb', line 17

def filter_float(resource, column, table_name, param)
  filter_integer(resource, column, table_name, param)
end

#filter_integer(resource, column, table_name, param) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/active_hash_relation/column_filters.rb', line 6

def filter_integer(resource, column, table_name, param)
  if param.is_a? Array
    n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this!
    return resource.where("#{table_name}.#{column} IN (#{n_param})")
  elsif param.is_a? Hash
    return apply_leq_geq_le_ge_filters(resource, table_name, column, param)
  else
    return resource.where("#{table_name}.#{column} = ?", param)
  end
end

#filter_primary(resource, column, param) ⇒ Object



2
3
4
# File 'lib/active_hash_relation/column_filters.rb', line 2

def filter_primary(resource, column, param)
  resource = resource.where(id: param)
end

#filter_string(resource, column, table_name, param) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'lib/active_hash_relation/column_filters.rb', line 25

def filter_string(resource, column, table_name, param)
  if param.is_a? Array
    n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this!
    return resource.where("#{table_name}.#{column} IN (#{n_param})")
  elsif param.is_a? Hash
    return apply_like_filters(resource, table_name, column, param)
  else
    return resource.where("#{table_name}.#{column} = ?", param)
  end
end

#filter_text(resource, column, param) ⇒ Object



36
37
38
# File 'lib/active_hash_relation/column_filters.rb', line 36

def filter_text(resource, column, param)
  return filter_string(resource, column, param)
end