Sha256: 283bee4dddabab9cf3d24b2565f43bcdb5988b5f544bf990512f5ec976e1b429

Contents?: true

Size: 636 Bytes

Versions: 5

Compression:

Stored size: 636 Bytes

Contents

require 'rib'
require 'tempfile'

module Rib; module Edit
  extend Plugin
  Shell.use(self)

  module Imp
    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
  end

  def editor
    ENV['EDITOR'] || 'vim'
  end

  Rib.extend(Imp)
end; end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rib-1.6.1 lib/rib/more/edit.rb
rib-1.6.0 lib/rib/more/edit.rb
rib-1.5.4 lib/rib/more/edit.rb
rib-1.5.3 lib/rib/more/edit.rb
rib-1.5.2 lib/rib/more/edit.rb