Module: Ransack::Constants
- Defined in:
- lib/ransack/constants.rb
Constant Summary collapse
- TRUE_VALUES =
[true, 1, '1', 't', 'T', 'true', 'TRUE'].to_set
- FALSE_VALUES =
[false, 0, '0', 'f', 'F', 'false', 'FALSE'].to_set
- BOOLEAN_VALUES =
TRUE_VALUES + FALSE_VALUES
- AREL_PREDICATES =
%w(eq not_eq matches does_not_match lt lteq gt gteq in not_in)- DERIVED_PREDICATES =
[ ['cont', { :arel_predicate => 'matches', :formatter => proc { |v| "%#{escape_wildcards(v)}%" } } ], ['i_cont', { :arel_predicate => 'i_matches', :formatter => proc { |v| "%#{escape_wildcards(v)}%" } } ], ['not_cont', { :arel_predicate => 'does_not_match', :formatter => proc { |v| "%#{escape_wildcards(v)}%" } } ], ['i_not_cont', { :arel_predicate => 'i_does_not_match', :formatter => proc { |v| "%#{escape_wildcards(v)}%" } } ], ['start', { :arel_predicate => 'matches', :formatter => proc { |v| "#{escape_wildcards(v)}%" } } ], ['not_start', { :arel_predicate => 'does_not_match', :formatter => proc { |v| "#{escape_wildcards(v)}%" } } ], ['end', { :arel_predicate => 'matches', :formatter => proc { |v| "%#{escape_wildcards(v)}" } } ], ['not_end', { :arel_predicate => 'does_not_match', :formatter => proc { |v| "%#{escape_wildcards(v)}" } } ], ['true', { :arel_predicate => proc { |v| v ? 'eq' : 'not_eq' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| true } } ], ['not_true', { :arel_predicate => proc { |v| v ? 'not_eq' : 'eq' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| true } } ], ['false', { :arel_predicate => proc { |v| v ? 'eq' : 'not_eq' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| false } } ], ['not_false', { :arel_predicate => proc { |v| v ? 'not_eq' : 'eq' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| false } } ], ['present', { :arel_predicate => proc { |v| v ? 'not_eq_all' : 'eq_any' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| [nil, ''] } } ], ['blank', { :arel_predicate => proc { |v| v ? 'eq_any' : 'not_eq_all' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| [nil, ''] } } ], ['null', { :arel_predicate => proc { |v| v ? 'eq' : 'not_eq' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v)}, :formatter => proc { |v| nil } } ], ['not_null', { :arel_predicate => proc { |v| v ? 'not_eq' : 'eq' }, :compounds => false, :type => :boolean, :validator => proc { |v| BOOLEAN_VALUES.include?(v) }, :formatter => proc { |v| nil } } ] ]
Class Method Summary collapse
-
.escape_wildcards(unescaped) ⇒ Object
replace % \ to % \.
Class Method Details
.escape_wildcards(unescaped) ⇒ Object
replace % \ to % \
117 118 119 120 121 122 123 124 125 |
# File 'lib/ransack/constants.rb', line 117 def escape_wildcards(unescaped) case ActiveRecord::Base.connection.adapter_name when "Mysql2", "PostgreSQL" # Necessary for PostgreSQL and MySQL unescaped.to_s.gsub(/([\\|\%|.])/, '\\\\\\1') else unescaped end end |