module ScopedSearch::QueryBuilder::AST::LeafNode
Public Instance Methods
to_sql(builder, definition) { |:parameter, p| ... }
click to toggle source
# File lib/scoped_search/query_builder.rb 468 def to_sql(builder, definition, &block) 469 # for boolean fields allow a short format (example: for 'enabled = true' also allow 'enabled') 470 field = definition.field_by_name(value) 471 if field && field.set? && field.complete_value.values.include?(true) 472 key = field.complete_value.map{|k,v| k if v == true}.compact.first 473 sql, *params = builder.set_test(field, :eq, key, &block) 474 params.each { |p| yield(:parameter, p) } 475 return sql 476 end 477 # Search keywords found without context, just search on all the default fields 478 fragments = definition.default_fields_for(value).map do |field| 479 builder.sql_test(field, field.default_operator, value,'', &block) 480 end 481 482 case fragments.length 483 when 0 then nil 484 when 1 then fragments.first 485 else "#{fragments.join(' OR ')}" 486 end 487 end