Method: Textbringer::Buffer.find_file

Defined in:
lib/textbringer/buffer.rb

.find_file(file_name) ⇒ Object



138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
# File 'lib/textbringer/buffer.rb', line 138

def self.find_file(file_name)
  file_name = File.expand_path(file_name)
  buffer = @@table.each_value.find { |b|
    b.file_name == file_name
  }
  if buffer.nil?
    name = File.basename(file_name)
    begin
      buffer = Buffer.open(file_name, name: new_buffer_name(name))
      add(buffer)
    rescue Errno::ENOENT
      buffer = new_buffer(name, file_name: file_name)
    end
  end
  buffer
end