Class: Lolita::Menu::Autocomplete::FileBuilder

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(mode) ⇒ FileBuilder

Returns a new instance of FileBuilder.



18
19
20
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 18

def initialize(mode)
  @file = File.open(self.class.output_file,mode)
end

Instance Attribute Details

#fileObject (readonly)

Returns the value of attribute file.



16
17
18
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 16

def file
  @file
end

Class Method Details

.input_fileObject



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

def input_file
  Lolita.menu.autocomplete_input_file
end

.output_fileObject



11
12
13
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 11

def output_file
  Lolita.menu.autocomplete_output_file
end

Instance Method Details

#add(url, label = nil) ⇒ Object



22
23
24
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 22

def add url,label = nil
  @file.puts "#{url} #{label || url}"
end

#exist?(url, label = nil) ⇒ Boolean

Returns:

  • (Boolean)


34
35
36
37
38
39
40
41
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 34

def exist?(url, label = nil)
  old_lineno = @file.lineno
  @file.rewind
  label ||= url
  !!@file.detect do |line|
    line_match_url_and_label?(line, url, label)
  end
end

#finalize!Object



49
50
51
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 49

def finalize!
  @file.close
end

#reject_lines_with(url, label = nil) ⇒ Object



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

def reject_lines_with url, label = nil
  lines_arr = @file.readlines
  label ||= url
  lines_arr.reject do |line|
    line_match_url_and_label?(line, url, label)
  end
end

#write_lines(*lines) ⇒ Object



43
44
45
46
47
# File 'lib/lolita-menu/autocomplete/file_builder.rb', line 43

def write_lines(*lines)
  lines.each do |line|
    @file.puts(line)
  end
end