class HQ::GraphQL::FilterOperations::Operation
Attributes
arel[R]
check_for_null[R]
name[R]
sanitize[R]
Public Class Methods
new(name:, arel:, check_for_null: false, sanitize: nil)
click to toggle source
# File lib/hq/graphql/filter_operations.rb, line 11 def initialize(name:, arel:, check_for_null: false, sanitize: nil) @name = name @arel = arel @check_for_null = check_for_null @sanitize = sanitize end
Public Instance Methods
sanitize_value(value)
click to toggle source
# File lib/hq/graphql/filter_operations.rb, line 18 def sanitize_value(value) sanitize ? sanitize.call(value) : value end
to_arel(table:, column_name:, value:)
click to toggle source
# File lib/hq/graphql/filter_operations.rb, line 22 def to_arel(table:, column_name:, value:) sanitized_value = sanitize_value(value) if arel.is_a?(Proc) return arel.call(table: table, column_name: column_name, value: sanitized_value) end expression = table[column_name].send(arel, sanitized_value) if check_for_null expression = expression.or(table[column_name].eq(nil)) end expression end