class Dusen::Query
Attributes
tokens[R]
Public Class Methods
new(initial_tokens = [])
click to toggle source
# File lib/dusen/query.rb, line 10 def initialize(initial_tokens = []) @tokens = initial_tokens end
Public Instance Methods
<<(token)
click to toggle source
# File lib/dusen/query.rb, line 14 def <<(token) tokens << token end
[](index)
click to toggle source
# File lib/dusen/query.rb, line 18 def [](index) tokens[index] end
condensed()
click to toggle source
# File lib/dusen/query.rb, line 36 def condensed include_texts = include.select(&:text?).collect(&:value) exclude_texts = exclude.select(&:text?).collect(&:value) field_tokens = tokens.reject(&:text?) condensed_tokens = field_tokens if include_texts.present? options = { :field => 'text', :value => include_texts, :exclude => false } condensed_tokens << Token.new(options) end if exclude_texts.present? options = { :field => 'text', :value => exclude_texts, :exclude => true } condensed_tokens << Token.new(options) end self.class.new(condensed_tokens) end
each(&block)
click to toggle source
# File lib/dusen/query.rb, line 32 def each(&block) tokens.each(&block) end
exclude()
click to toggle source
# File lib/dusen/query.rb, line 57 def exclude self.class.new tokens.select(&:exclude?) end
include()
click to toggle source
# File lib/dusen/query.rb, line 53 def include self.class.new tokens.reject(&:exclude?) end
to_s()
click to toggle source
def +(tokens)
tokens.each do |token| self << token end
end
# File lib/dusen/query.rb, line 28 def to_s collect(&:to_s).join(" + ") end