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