class ChewyQuery::Builder::Nodes::HasRelation
Public Class Methods
new(type, outer = nil)
click to toggle source
# File lib/chewy_query/builder/nodes/has_relation.rb, line 9 def initialize(type, outer = nil) @type = type.to_s @outer = outer @query_mode = :must @filter_mode = :and @queries = [] @filters = [] end
Public Instance Methods
__render__()
click to toggle source
# File lib/chewy_query/builder/nodes/has_relation.rb, line 46 def __render__ queries = _queries_join(@queries, @query_mode) filters = _filters_join(@filters, @filter_mode) body = if filters && !queries { filter: filters } else _filtered_query(queries, filters) end || {} { _relation => body.merge(type: @type) } if body end
filter(params = nil, &block)
click to toggle source
# File lib/chewy_query/builder/nodes/has_relation.rb, line 37 def filter(params = nil, &block) if block @filters.push(ChewyQuery::Builder::Filters.new(@outer, &block).__render__) else @filters.push(params) end self end
filter_mode(mode)
click to toggle source
# File lib/chewy_query/builder/nodes/has_relation.rb, line 23 def filter_mode(mode) @filter_mode = mode self end
query(params = nil, &block)
click to toggle source
# File lib/chewy_query/builder/nodes/has_relation.rb, line 28 def query(params = nil, &block) if block raise 'Query DLS is not supported yet' else @queries.push(params) end self end
query_mode(mode)
click to toggle source
# File lib/chewy_query/builder/nodes/has_relation.rb, line 18 def query_mode(mode) @query_mode = mode self end