Class: Ferret::Search::Spans::SpanFirstQuery::SpanFirstEnum

Inherits:
Ferret::Search::Spans::SpansEnum show all
Defined in:
lib/ferret/search/spans/span_first_query.rb

Instance Method Summary collapse

Constructor Details

#initialize(query, reader) ⇒ SpanFirstEnum

Returns a new instance of SpanFirstEnum.



31
32
33
34
35
# File 'lib/ferret/search/spans/span_first_query.rb', line 31

def initialize(query, reader)
  super()
  @query = query
  @spans = @query.match.spans(reader)
end

Instance Method Details

#docObject



56
# File 'lib/ferret/search/spans/span_first_query.rb', line 56

def doc() @spans.doc() end

#finishObject



58
# File 'lib/ferret/search/spans/span_first_query.rb', line 58

def finish() @spans.finish() end

#next?Boolean

Returns:

  • (Boolean)


37
38
39
40
41
42
# File 'lib/ferret/search/spans/span_first_query.rb', line 37

def next?()
  while (@spans.next?()) # scan to next match
    return true if (finish() <= @query.finish)
  end
  return false
end

#skip_to(target) ⇒ Object



44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ferret/search/spans/span_first_query.rb', line 44

def skip_to(target)
  if not @spans.skip_to(target)
    return false
  end

  if (@spans.finish <= @query.finish) # there is a match
    return true
  end

  return next?()               # scan to next match
end

#startObject



57
# File 'lib/ferret/search/spans/span_first_query.rb', line 57

def start() @spans.start() end

#to_sObject



60
# File 'lib/ferret/search/spans/span_first_query.rb', line 60

def to_s() "spans(#{@query})" end