Sha256: 646c865f9978768f6af08c4da477e564c5e1f63f7a153fdc0737ce3d8f319ba4

Contents?: true

Size: 658 Bytes

Versions: 12

Compression:

Stored size: 658 Bytes

Contents

module Conveyor
	module Input
		class Console
	    include Singleton

	    def initialize
	    end

			def listen
				save_tty_settings
	      while line = Readline.readline('> ', true)
	        handle line
	      end
	    rescue Interrupt => e	
	    	restore_tty_settings
	    	exit
	 		end

			def handle(line)
				cmd = line.split(/\s+/)
        return if cmd.empty?

				if Commands.respond_to? cmd.first
					Commands.send(cmd.shift, cmd.join(' '))
				else
					Commands.unknown(*cmd)
				end
			end

			def save_tty_settings
	      @stty_save = `stty -g`.chomp
			end

			def restore_tty_settings
				system('stty', @stty_save);
			end
		end
	end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gina-conveyor-1.0.1 lib/conveyor/input/console.rb
gina-conveyor-1.0.0 lib/conveyor/input/console.rb
gina-conveyor-0.2.4 lib/conveyor/input/console.rb
gina-conveyor-0.2.3 lib/conveyor/input/console.rb
gina-conveyor-0.2.2 lib/conveyor/input/console.rb
gina-conveyor-0.2.1 lib/conveyor/input/console.rb
gina-conveyor-0.2.0 lib/conveyor/input/console.rb
gina-conveyor-0.1.3 lib/conveyor/input/console.rb
gina-conveyor-0.1.2 lib/conveyor/input/console.rb
gina-conveyor-0.1.1 lib/conveyor/input/console.rb
gina-conveyor-0.1.0 lib/conveyor/input/console.rb
gina-conveyor-0.0.2 lib/conveyor/input/console.rb