class Minidusen::Query

Attributes

tokens[R]

Public Class Methods

new(initial_tokens = []) click to toggle source
# File lib/minidusen/query.rb, line 8
def initialize(initial_tokens = [])
  @tokens = initial_tokens
end

Public Instance Methods

<<(token) click to toggle source
# File lib/minidusen/query.rb, line 12
def <<(token)
  tokens << token
end
[](index) click to toggle source
# File lib/minidusen/query.rb, line 16
def [](index)
  tokens[index]
end
condensed() click to toggle source
# File lib/minidusen/query.rb, line 32
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/minidusen/query.rb, line 28
def each(&block)
  tokens.each(&block)
end
exclude() click to toggle source
# File lib/minidusen/query.rb, line 53
def exclude
  self.class.new tokens.select(&:exclude?)
end
include() click to toggle source
# File lib/minidusen/query.rb, line 49
def include
  self.class.new tokens.reject(&:exclude?)
end
size() click to toggle source
# File lib/minidusen/query.rb, line 20
def size
  tokens.size
end
to_s() click to toggle source
# File lib/minidusen/query.rb, line 24
def to_s
  collect(&:to_s).join(" + ")
end