Class: Computering::Cmd
- Inherits:
-
Object
- Object
- Computering::Cmd
- Defined in:
- lib/computering/cmd.rb
Defined Under Namespace
Constant Summary collapse
- CONTROL_C =
3- CONTROL_R =
18- ENTER =
13
Instance Method Summary collapse
- #execute ⇒ Object
-
#initialize(file, stdin = STDIN, stdout = STDOUT) ⇒ Cmd
constructor
A new instance of Cmd.
- #readchars(item) ⇒ Object
Constructor Details
#initialize(file, stdin = STDIN, stdout = STDOUT) ⇒ Cmd
12 13 14 15 16 17 |
# File 'lib/computering/cmd.rb', line 12 def initialize(file, stdin = STDIN, stdout = STDOUT) @file = file @stdin = stdin @stdout = stdout @container = Container.new File.read(file) end |
Instance Method Details
#execute ⇒ Object
19 20 21 22 23 |
# File 'lib/computering/cmd.rb', line 19 def execute @container.items.each do |item| readchars item unless item.blank? end end |
#readchars(item) ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/computering/cmd.rb', line 25 def readchars(item) i = 0 @stdin.noecho do |io| @stdout.write item.padding if item.padding while char = io.getch raise Exit if char.ord == CONTROL_C raise Reload if char.ord == CONTROL_R if char.ord == ENTER @stdout.puts item[i..-1] item.execute @stdout.puts "#{item.padding}#{item.buffer}" if item.buffer @stdout.puts break else if item[i] while item[i] =~ /\s/ @stdout.write item[i] i += 1 end @stdout.write item[i] end i += 1 end end end end |