Module: ActiveHashRelation::ColumnFilters
- Included in:
- FilterApplier
- Defined in:
- lib/active_hash_relation/column_filters.rb
Instance Method Summary collapse
- #filter_boolean(resource, column, table_name, param) ⇒ Object
- #filter_date(resource, column, table_name, param) ⇒ Object
- #filter_datetime(resource, column, table_name, param) ⇒ Object
- #filter_decimal(resource, column, table_name, param) ⇒ Object
- #filter_float(resource, column, table_name, param) ⇒ Object
- #filter_integer(resource, column, table_name, param) ⇒ Object
- #filter_string(resource, column, table_name, param) ⇒ Object
- #filter_text(resource, column, table_name, param) ⇒ Object
Instance Method Details
#filter_boolean(resource, column, table_name, param) ⇒ Object
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
# File 'lib/active_hash_relation/column_filters.rb', line 110 def filter_boolean(resource, column, table_name, param) if param.is_a?(Hash) && !param[:null].nil? return null_filters(resource, table_name, column, param) else if ActiveRecord::VERSION::MAJOR >= 5 b_param = ActiveRecord::Type::Boolean.new.cast(param) else b_param = ActiveRecord::Type::Boolean.new.type_cast_from_database(param) end if @is_not resource = resource.where.not(column => b_param) else resource = resource.where(column => b_param) end end end |
#filter_date(resource, column, table_name, param) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
# File 'lib/active_hash_relation/column_filters.rb', line 60 def filter_date(resource, column, table_name, param) if param.is_a? Array n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this! if @is_not return resource.where.not("#{table_name}.#{column} IN (#{n_param})") else return resource.where("#{table_name}.#{column} IN (#{n_param})") end elsif param.is_a? Hash if !param[:null].nil? return null_filters(resource, table_name, column, param) else return apply_leq_geq_le_ge_filters(resource, table_name, column, param) end else if @is_not resource = resource.where.not(column => param) else resource = resource.where(column => param) end end return resource end |
#filter_datetime(resource, column, table_name, param) ⇒ Object
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# File 'lib/active_hash_relation/column_filters.rb', line 85 def filter_datetime(resource, column, table_name, param) if param.is_a? Array n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this! if @is_not return resource = resource.where.not("#{table_name}.#{column} IN (#{n_param})") else return resource = resource.where("#{table_name}.#{column} IN (#{n_param})") end elsif param.is_a? Hash if !param[:null].nil? return null_filters(resource, table_name, column, param) else return apply_leq_geq_le_ge_filters(resource, table_name, column, param) end else if @is_not resource = resource.where.not(column => param) else resource = resource.where(column => param) end end return resource end |
#filter_decimal(resource, column, table_name, param) ⇒ Object
29 30 31 |
# File 'lib/active_hash_relation/column_filters.rb', line 29 def filter_decimal(resource, column, table_name, param) filter_integer(resource, column, table_name, param) end |
#filter_float(resource, column, table_name, param) ⇒ Object
25 26 27 |
# File 'lib/active_hash_relation/column_filters.rb', line 25 def filter_float(resource, column, table_name, param) filter_integer(resource, column, table_name, param) end |
#filter_integer(resource, column, table_name, param) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/active_hash_relation/column_filters.rb', line 2 def filter_integer(resource, column, table_name, param) if param.is_a? Array n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this! if @is_not return resource.where.not("#{table_name}.#{column} IN (#{n_param})") else return resource.where("#{table_name}.#{column} IN (#{n_param})") end elsif param.is_a? Hash if !param[:null].nil? return null_filters(resource, table_name, column, param) else return apply_leq_geq_le_ge_filters(resource, table_name, column, param) end else if @is_not return resource.where.not("#{table_name}.#{column} = ?", param) else return resource.where("#{table_name}.#{column} = ?", param) end end end |
#filter_string(resource, column, table_name, param) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/active_hash_relation/column_filters.rb', line 33 def filter_string(resource, column, table_name, param) if param.is_a? Array n_param = param.to_s.gsub("\"","'").gsub("[","").gsub("]","") #fix this! if @is_not return resource.where.not("#{table_name}.#{column} IN (#{n_param})") else return resource.where("#{table_name}.#{column} IN (#{n_param})") end elsif param.is_a? Hash if !param[:null].nil? return null_filters(resource, table_name, column, param) else return apply_like_filters(resource, table_name, column, param) end else if @is_not return resource.where.not("#{table_name}.#{column} = ?", param) else return resource.where("#{table_name}.#{column} = ?", param) end end end |
#filter_text(resource, column, table_name, param) ⇒ Object
56 57 58 |
# File 'lib/active_hash_relation/column_filters.rb', line 56 def filter_text(resource, column, table_name, param) return filter_string(resource, column, table_name, param) end |