Class: Lolita::Menu::Autocomplete::Collector

Inherits:
Object
  • Object
show all
Defined in:
lib/lolita-menu/autocomplete/collector.rb

Instance Method Summary collapse

Constructor Details

#initialize(term) ⇒ Collector

Returns a new instance of Collector.



6
7
8
9
10
# File 'lib/lolita-menu/autocomplete/collector.rb', line 6

def initialize(term)
  @links = []
  @term = term
  collect_from_file
end

Instance Method Details

#collect_from_fileObject



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/lolita-menu/autocomplete/collector.rb', line 12

def collect_from_file
  if File.exist?(Lolita::Menu::Autocomplete::FileBuilder.output_file)
    File.open(Lolita::Menu::Autocomplete::FileBuilder.output_file, "r").readlines.each{ |line|
      item = line.to_s.split(/\s/)
      first_item = item.shift
      item = [first_item, item.join(" ")]
      term_regexp = Regexp.new(@term.to_s.gsub("\\",""))
      if item.first.match(term_regexp) || item.last.match(term_regexp)
        @links << item
      end
    }
  end
end

#to_jsonObject



26
27
28
29
30
31
32
# File 'lib/lolita-menu/autocomplete/collector.rb', line 26

def to_json
  result = []
  @links.each_with_index{|item, index|
    result << {:id => index, :label => "#{item.last} #{item[1] != item[0] ? "(#{item[0]})" : ""}", :value => item.first}
  }
  result
end