lib/ppcurses/actions/GetEnumeratedStringAction.rb in ppcurses-0.0.20 vs lib/ppcurses/actions/GetEnumeratedStringAction.rb in ppcurses-0.0.21

- old
+ new

@@ -1,62 +1,64 @@ require_relative 'BaseAction.rb' +#noinspection RubyResolve module PPCurses class GetEnumeratedStringAction < PromptAction # enumeration is a list of possible values # i.e. CD, Vinyl, MP3 def initialize(prompt, enumeration) super(prompt) # verify enumeration is an array - if ( enumeration.respond_to?('each_with_index') == false ) then + unless enumeration.respond_to?('each_with_index') then raise end + @options = enumeration - @currOption = 0 + @current_option = 0 end - def printPrompt() + def print_prompt super() @options.each_with_index do |option, index| @win.addstr(option) - if ( index == @currOption ) then - @win.addstr(" [X] ") + if index == @current_option then + @win.addstr(' [X] ') else - @win.addstr(" [ ] ") + @win.addstr(' [ ] ') end end end - def execute() - printPrompt() + def execute + print_prompt() # Enables reading arrow keys in getch @win.keypad(true) - while(1) + while 1 noecho c = @win.getch - if c == KEY_LEFT then @currOption = @currOption-1 end - if c == KEY_RIGHT then @currOption= @currOption+1 end + if c == KEY_LEFT then @current_option = @current_option-1 end + if c == KEY_RIGHT then @current_option= @current_option+1 end if c == 10 then break end - if (@currOption < 0 ) then @currOption = @options.length-1 end - if (@currOption > @options.length-1 ) then @currOption = 0 end + if @current_option < 0 then @current_option = @options.length-1 end + if @current_option > @options.length-1 then @current_option = 0 end echo - printPrompt() + print_prompt() end echo # Go to next line so that further actions to overwrite # the choice - @win.setpos(@win.cury() + 1, xPadding()) + @win.setpos(@win.cury() + 1, x_padding()) end def data - @options[@currOption] + @options[@current_option] end end end