lib/cyberarm_engine/console/subcommand.rb in cyberarm_engine-0.19.0 vs lib/cyberarm_engine/console/subcommand.rb in cyberarm_engine-0.19.1
- old
+ new
@@ -1,100 +1,100 @@
-# frozen_string_literal: true
-
-module CyberarmEngine
- class Console
- class Command
- class SubCommand
- def initialize(parent, command, type)
- @parent = parent
- @command = command
- @type = type
- end
-
- attr_reader :command
-
- def handle(arguments, console)
- if arguments.size > 1
- console.stdin("to many arguments for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.size)} expected #{Style.notice(1)}.")
- return
- end
-
- case @type
- when :boolean
- case arguments.last
- when "", nil
- var = @parent.get(command.to_sym) || false
- console.stdin("#{command}: #{Style.highlight(var)}")
- when "on"
- var = @parent.set(command.to_sym, true)
- console.stdin("#{command} => #{Style.highlight(var)}")
- when "off"
- var = @parent.set(command.to_sym, false)
- console.stdin("#{command} => #{Style.highlight(var)}")
- else
- console.stdin("Invalid argument for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.last)} expected #{Style.notice('on')}, or #{Style.notice('off')}.")
- end
- when :string
- case arguments.last
- when "", nil
- var = @parent.get(command.to_sym) || "\"\""
- console.stdin("#{command}: #{Style.highlight(var)}")
- else
- var = @parent.set(command.to_sym, arguments.last)
- console.stdin("#{command} => #{Style.highlight(var)}")
- end
- when :integer
- case arguments.last
- when "", nil
- var = @parent.get(command.to_sym) || "nil"
- console.stdin("#{command}: #{Style.highlight(var)}")
- else
- begin
- var = @parent.set(command.to_sym, Integer(arguments.last))
- console.stdin("#{command} => #{Style.highlight(var)}")
- rescue ArgumentError
- console.stdin("Error: #{Style.error("Expected an integer, got '#{arguments.last}'")}")
- end
- end
- when :decimal
- case arguments.last
- when "", nil
- var = @parent.get(command.to_sym) || "nil"
- console.stdin("#{command}: #{Style.highlight(var)}")
- else
- begin
- var = @parent.set(command.to_sym, Float(arguments.last))
- console.stdin("#{command} => #{Style.highlight(var)}")
- rescue ArgumentError
- console.stdin("Error: #{Style.error("Expected a decimal or integer, got '#{arguments.last}'")}")
- end
- end
- else
- raise RuntimeError
- end
- end
-
- def values
- case @type
- when :boolean
- %w[on off]
- else
- []
- end
- end
-
- def usage
- case @type
- when :boolean
- "#{Style.highlight(command)} #{Style.notice('[on|off]')}"
- when :string
- "#{Style.highlight(command)} #{Style.notice('[string]')}"
- when :integer
- "#{Style.highlight(command)} #{Style.notice('[0]')}"
- when :decimal
- "#{Style.highlight(command)} #{Style.notice('[0.0]')}"
- end
- end
- end
- end
- end
+# frozen_string_literal: true
+
+module CyberarmEngine
+ class Console
+ class Command
+ class SubCommand
+ def initialize(parent, command, type)
+ @parent = parent
+ @command = command
+ @type = type
+ end
+
+ attr_reader :command
+
+ def handle(arguments, console)
+ if arguments.size > 1
+ console.stdin("to many arguments for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.size)} expected #{Style.notice(1)}.")
+ return
+ end
+
+ case @type
+ when :boolean
+ case arguments.last
+ when "", nil
+ var = @parent.get(command.to_sym) || false
+ console.stdin("#{command}: #{Style.highlight(var)}")
+ when "on"
+ var = @parent.set(command.to_sym, true)
+ console.stdin("#{command} => #{Style.highlight(var)}")
+ when "off"
+ var = @parent.set(command.to_sym, false)
+ console.stdin("#{command} => #{Style.highlight(var)}")
+ else
+ console.stdin("Invalid argument for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.last)} expected #{Style.notice('on')}, or #{Style.notice('off')}.")
+ end
+ when :string
+ case arguments.last
+ when "", nil
+ var = @parent.get(command.to_sym) || "\"\""
+ console.stdin("#{command}: #{Style.highlight(var)}")
+ else
+ var = @parent.set(command.to_sym, arguments.last)
+ console.stdin("#{command} => #{Style.highlight(var)}")
+ end
+ when :integer
+ case arguments.last
+ when "", nil
+ var = @parent.get(command.to_sym) || "nil"
+ console.stdin("#{command}: #{Style.highlight(var)}")
+ else
+ begin
+ var = @parent.set(command.to_sym, Integer(arguments.last))
+ console.stdin("#{command} => #{Style.highlight(var)}")
+ rescue ArgumentError
+ console.stdin("Error: #{Style.error("Expected an integer, got '#{arguments.last}'")}")
+ end
+ end
+ when :decimal
+ case arguments.last
+ when "", nil
+ var = @parent.get(command.to_sym) || "nil"
+ console.stdin("#{command}: #{Style.highlight(var)}")
+ else
+ begin
+ var = @parent.set(command.to_sym, Float(arguments.last))
+ console.stdin("#{command} => #{Style.highlight(var)}")
+ rescue ArgumentError
+ console.stdin("Error: #{Style.error("Expected a decimal or integer, got '#{arguments.last}'")}")
+ end
+ end
+ else
+ raise RuntimeError
+ end
+ end
+
+ def values
+ case @type
+ when :boolean
+ %w[on off]
+ else
+ []
+ end
+ end
+
+ def usage
+ case @type
+ when :boolean
+ "#{Style.highlight(command)} #{Style.notice('[on|off]')}"
+ when :string
+ "#{Style.highlight(command)} #{Style.notice('[string]')}"
+ when :integer
+ "#{Style.highlight(command)} #{Style.notice('[0]')}"
+ when :decimal
+ "#{Style.highlight(command)} #{Style.notice('[0.0]')}"
+ end
+ end
+ end
+ end
+ end
end
\ No newline at end of file