Module Clio::ANSICode
In: lib/clio/ansicode.rb

Methods

clear_line   clear_screen   clr   cls   colors   define_ansicolor_method   display   down   left   move   restore   right   save   uncolored   up  

Constants

ColoredRegexp = /\e\[([34][0-7]|[0-9])m/

Public Class methods

Define color codes.

[Source]

# File lib/clio/ansicode.rb, line 243
    def self.define_ansicolor_method(name,code)
      class_eval "def \#{name.to_s}(string = nil)\nresult = \"\\e[\#{code}m\"\nif block_given?\nresult << yield\nresult << \"\\e[0m\"\nelsif string\nresult << string\nresult << \"\\e[0m\"\nelsif respond_to?(:to_str)\nresult << self\nresult << \"\\e[0m\"\nend\nreturn result\nend\n"
    end

Public Instance methods

Clear to the end of the current line.

[Source]

# File lib/clio/ansicode.rb, line 181
    def clear_line
      "\e[K"
    end

Clear the screen and move cursor to home.

[Source]

# File lib/clio/ansicode.rb, line 174
    def clear_screen
      "\e[2J"
    end
clr()

Alias for clear_line

cls()

Alias for clear_screen

[Source]

# File lib/clio/ansicode.rb, line 314
    def colors
      @@colors.map { |c| c[0] }
    end

Like move but returns to original positon after yielding block or adding string argument.

[Source]

# File lib/clio/ansicode.rb, line 225
    def display( line, column=0, string=nil ) #:yield:
      result = "\e[s"
      result << "\e[#{line.to_i};#{column.to_i}H"
      if block_given?
        result << yield
        result << "\e[u"
      elsif string
        result << string
        result << "\e[u"
      elsif respond_to?(:to_str)
        result << self
        result << "\e[u"
      end
      return result
    end

Move cursor down a specificed number of spaces.

[Source]

# File lib/clio/ansicode.rb, line 206
    def down( spaces=1 )
      "\e[#{spaces.to_i}B"
    end

Move cursor left a specificed number of spaces.

[Source]

# File lib/clio/ansicode.rb, line 212
    def left( spaces=1 )
      "\e[#{spaces.to_i}D"
    end

Move curose to line and column.

[Source]

# File lib/clio/ansicode.rb, line 194
    def move( line, column=0 )
      "\e[#{line.to_i};#{column.to_i}H"
    end

Restore saved cursor positon.

[Source]

# File lib/clio/ansicode.rb, line 168
    def restore
      "\e[u"
    end

Move cursor right a specificed number of spaces.

[Source]

# File lib/clio/ansicode.rb, line 218
    def right( spaces=1 )
      "\e[#{spaces.to_i}C"
    end

Save current cursor positon.

[Source]

# File lib/clio/ansicode.rb, line 162
    def save
      "\e[s"
    end

[Source]

# File lib/clio/ansicode.rb, line 300
    def uncolored(string = nil)
      if block_given?
        yield.gsub(ColoredRegexp, '')
      elsif string
        string.gsub(ColoredRegexp, '')
      elsif respond_to?(:to_str)
        gsub(ColoredRegexp, '')
      else
        ''
      end
    end

Move cursor up a specificed number of spaces.

[Source]

# File lib/clio/ansicode.rb, line 200
    def up( spaces=1 )
      "\e[#{spaces.to_i}A"
    end

[Validate]