class RawLine::Terminal

The Terminal class defines character codes and code sequences which can be bound to actions by editors. An OS-dependent subclass of RawLine::Terminal is automatically instantiated by RawLine::Editor.

Attributes

escape_codes[RW]
escape_sequences[R]
keys[R]

Public Class Methods

new() click to toggle source

Create an instance of RawLine::Terminal.

# File lib/rawline/terminal.rb, line 31
def initialize
        @keys = 
                {
                :tab => [?\t.ord],
                :return => [?\r.ord],
                :newline => [?\n.ord],
                :escape => [?\e.ord],

                :ctrl_a => [?\C-a.ord],
                :ctrl_b => [?\C-b.ord],
                :ctrl_c => [?\C-c.ord],
                :ctrl_d => [?\C-d.ord],
                :ctrl_e => [?\C-e.ord],
                :ctrl_f => [?\C-f.ord],
                :ctrl_g => [?\C-g.ord],
                :ctrl_h => [?\C-h.ord],
                :ctrl_i => [?\C-i.ord],
                :ctrl_j => [?\C-j.ord],
                :ctrl_k => [?\C-k.ord],
                :ctrl_l => [?\C-l.ord],
                :ctrl_m => [?\C-m.ord],
                :ctrl_n => [?\C-n.ord],
                :ctrl_o => [?\C-o.ord],
                :ctrl_p => [?\C-p.ord],
                :ctrl_q => [?\C-q.ord],
                :ctrl_r => [?\C-r.ord],
                :ctrl_s => [?\C-s.ord],
                :ctrl_t => [?\C-t.ord],
                :ctrl_u => [?\C-u.ord],
                :ctrl_v => [?\C-v.ord],
                :ctrl_w => [?\C-w.ord],
                :ctrl_x => [?\C-x.ord],
                :ctrl_y => [?\C-y.ord],
                :ctrl_z => [?\C-z.ord]
                }
        @escape_codes = []
        @escape_sequences = []
        update
end

Public Instance Methods

update() click to toggle source

Update the terminal escape sequences. This method is called automatically by RawLine::Editor#bind().

# File lib/rawline/terminal.rb, line 75
def update
        @keys.each_value do |k|
                l = k.length
                if  l > 1 then
                        @escape_sequences << k unless @escape_sequences.include? k
                end
        end
end