Sha256: 6ed1999bcaaf69e0cf13f32614246d0a5857f54a985932672bd349d0b7db8d3a

Contents?: true

Size: 629 Bytes

Versions: 15

Compression:

Stored size: 629 Bytes

Contents

require 'rib'
require 'tempfile'

module Rib::Edit
  extend Rib::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

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
rib-1.5.1 lib/rib/more/edit.rb
rib-1.5.0 lib/rib/more/edit.rb
rib-1.4.0 lib/rib/more/edit.rb
rib-1.3.1 lib/rib/more/edit.rb
rib-1.3.0 lib/rib/more/edit.rb
rib-1.2.91 lib/rib/more/edit.rb
rib-1.2.9 lib/rib/more/edit.rb
rib-1.2.8 lib/rib/more/edit.rb
rib-1.2.7 lib/rib/more/edit.rb
rib-1.2.6 lib/rib/more/edit.rb
rib-1.2.5 lib/rib/more/edit.rb
rib-1.2.4 lib/rib/more/edit.rb
rib-1.2.3 lib/rib/more/edit.rb
rib-1.2.2 lib/rib/more/edit.rb
rib-1.2.1 lib/rib/more/edit.rb