module ActiveSet::Filtering::ActiveRecord::QueryValue
Public Instance Methods
query_value()
click to toggle source
# File lib/active_set/filtering/active_record/query_value.rb, line 7 def query_value return @query_value if defined? @query_value query_value = @attribute_instruction.value query_value = query_attribute_for(query_value) query_value = query_value.downcase if case_insensitive_operation? @query_value = query_value end
Private Instance Methods
query_attribute_for(value)
click to toggle source
# File lib/active_set/filtering/active_record/query_value.rb, line 19 def query_attribute_for(value) return value unless operator_hash.key?(:query_attribute_transformer) context = { raw: value, sql: to_sql_str(value), type: arel_type } operator_hash[:query_attribute_transformer].call(context) end
to_sql_str(value)
click to toggle source
# File lib/active_set/filtering/active_record/query_value.rb, line 31 def to_sql_str(value) return value.map { |a| to_sql_str(a) } if value.respond_to?(:map) arel_node = Arel::Nodes::Casted.new(value, arel_column) sql_value = arel_node.to_sql unwrap_sql_str(sql_value) end
unwrap_sql_str(sql_str)
click to toggle source
# File lib/active_set/filtering/active_record/query_value.rb, line 39 def unwrap_sql_str(sql_str) return sql_str unless sql_str[0] == "'" && sql_str[-1] == "'" sql_str[1..-2] end