Module: Rib::Edit::Imp

Included in:
Rib
Defined in:
lib/rib/more/edit.rb

Instance Method Summary collapse

Instance Method Details

#editObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rib/more/edit.rb', line 10

def edit
  return if Rib::Edit.disabled?
  file = Tempfile.new(['rib.edit', '.rb'])
  file.puts(Rib.vars[:edit])
  file.close

  shell = Rib.shell
  system("#{shell.editor} #{file.path}")

  if shell.running?
    shell.send(:multiline_buffer).pop
  else
    shell.before_loop
  end

  shell.loop_eval(Rib.vars[:edit] = File.read(file.path))

ensure
  file.close
  file.unlink
end