diff --git a/lib/method_source/code_helpers.rb b/lib/method_source/code_helpers.rb index 6c1d53e..210100a 100644 --- a/lib/method_source/code_helpers.rb +++ b/lib/method_source/code_helpers.rb @@ -71,8 +71,8 @@ def complete_expression?(str) eval("BEGIN{throw :valid}\n#{str}") end - # Assert that a line which ends with a , or \ is incomplete. - str !~ /[,\\]\s*\z/ + # Assert that a line which ends with a , or \ but not with $\ is incomplete. + str !~ /(?:,|[^\$]\\)\s*\z/ rescue IncompleteExpression false ensure diff --git a/test/test_code_helpers.rb b/test/test_code_helpers.rb index ba83a63..7706630 100644 --- a/test/test_code_helpers.rb +++ b/test/test_code_helpers.rb @@ -38,4 +38,8 @@ }.should.raise(SyntaxError) end end + + it "should consider as complete lines ending with $\\" do + @tester.complete_expression?('$\\').should == true + end end