From e02f06ec83a79628929ee3277f946d6726315b8f Mon Sep 17 00:00:00 2001 From: Stan Lo Date: Wed, 13 Dec 2023 15:31:01 +0100 Subject: [PATCH] Address feedback --- lib/irb.rb | 10 +++++----- test/irb/test_irb.rb | 3 ++- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/irb.rb b/lib/irb.rb index 9e11c874d..677e63413 100644 --- a/lib/irb.rb +++ b/lib/irb.rb @@ -1106,12 +1106,12 @@ def each_top_level_statement end COMMAND_FLAG_REGEXP = /(?-[a-zA-Z]+( +\S+)*)/ - COMMAND_ARG_REGEXP = /(?[^-]\S*)/ + COMMAND_ARG_REGEXP = /(?[^- ]\S*)/ COMMAND_NAME_REGEXP = /(?\S+)/ - SIMPLE_COMMAND_REGEXP = /^#{COMMAND_NAME_REGEXP}$/ - COMMAND_WITH_ARGS_REGEXP = /^#{COMMAND_NAME_REGEXP} +#{COMMAND_ARG_REGEXP}$/ - COMMAND_WITH_FLAGS_REGEXP = /^#{COMMAND_NAME_REGEXP} +#{COMMAND_FLAG_REGEXP}$/ - COMMAND_WITH_ARGS_AND_FLAGS_REGEXP = /^#{COMMAND_NAME_REGEXP} +#{COMMAND_ARG_REGEXP} +#{COMMAND_FLAG_REGEXP}$/ + SIMPLE_COMMAND_REGEXP = /^#{COMMAND_NAME_REGEXP}\z/ + COMMAND_WITH_ARGS_REGEXP = /^#{COMMAND_NAME_REGEXP} +#{COMMAND_ARG_REGEXP}\z/ + COMMAND_WITH_FLAGS_REGEXP = /^#{COMMAND_NAME_REGEXP} +#{COMMAND_FLAG_REGEXP}\z/ + COMMAND_WITH_ARGS_AND_FLAGS_REGEXP = /^#{COMMAND_NAME_REGEXP} +#{COMMAND_ARG_REGEXP} +#{COMMAND_FLAG_REGEXP}\z/ COMMAND_REGEXP = Regexp.union( SIMPLE_COMMAND_REGEXP, diff --git a/test/irb/test_irb.rb b/test/irb/test_irb.rb index d0e73036b..d407a2a09 100644 --- a/test/irb/test_irb.rb +++ b/test/irb/test_irb.rb @@ -820,7 +820,8 @@ def test_irb_distinguihes_commands_and_non_commands_correctly "info if foo", "info ? foo : bar", "info ; foo", - "info ,other = expr" + "info ,other = expr", + "info -" # when an input is not a command nor Ruby code, we want to make it Ruby so it raises syntax error ].each do |input| statement = irb.build_statement(input) assert_equal(IRB::Statement::Expression, statement.class, "Expected #{input} to not be a command")