Sha256: 05ed86e014e97697d51c8be1568817c6c57a48456bbfc2a3b80b45b261e1f63b

Contents?: true

Size: 1.18 KB

Versions: 76

Compression:

Stored size: 1.18 KB

Contents

module Redcar
  class AutoCompleter
    class WordIterator
      def initialize(document, word_chars)
        @document = document
        @word_chars = word_chars
      end
    
      # word_chars is a regex, that defines word characters
      def each_word_with_offset(prefix)
        inside_word = false
        text = @document.to_s
        char_offset = 0
        word_offset = 0
        word = []

        text.each_char do |char|
         # p [inside_word, char, word]
          if char =~ @word_chars
            unless inside_word
              word_offset = char_offset
              inside_word = true
            end
            word << char
          else
            if inside_word
              joined = word.join
              if joined =~ /^#{prefix}/
          #    p [:yield, joined]
                yield joined, word_offset
              end
              inside_word = false
              word = []
            end
          end
          char_offset += 1
        end
        
        # also yield the last word of the document if it matches
        if word.join =~ /^#{prefix}/
        #p [:yield, word.join]
          yield word.join, word_offset
        end
      end
    end
  end
end

Version data entries

76 entries across 76 versions & 2 rubygems

Version Path
redcar-0.13 plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.13.5dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.13.4dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.13.3dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.13.2dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.13.1dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-0.12.1 plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.13.0dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-0.12 plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.27dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.26dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.25dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.24dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.23dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.22dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.21dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.20dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.19dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.18dev plugins/auto_completer/lib/auto_completer/word_iterator.rb
redcar-dev-0.12.17dev plugins/auto_completer/lib/auto_completer/word_iterator.rb