Skip to content

Fixed "undefined method `=~' for an instance of Array (NoMethodError)" on Ruby 3.2+#17

Open
sue445 wants to merge 1 commit intotslocke:masterfrom
sue445:ruby3.2
Open

Fixed "undefined method `=~' for an instance of Array (NoMethodError)" on Ruby 3.2+#17
sue445 wants to merge 1 commit intotslocke:masterfrom
sue445:ruby3.2

Conversation

@sue445
Copy link

@sue445 sue445 commented Jun 9, 2024

Since Ruby 3.2, "undefined method `=~' for an instance of Array (NoMethodError)" occurs when a test fails in rubydoctest.

So I fixed.

Example

test.md

>> [1, 3, 2].sort_by(&:itself)
=> [1, 2, 3]

Ruby 3.1 + rubydoctest v1.1.5

$ ruby -v
ruby 3.1.4p223 (2023-03-30 revision 957bb7cb81) [arm64-darwin23]

$ ./bin/rubydoctest /tmp/test.md
=== Testing '/tmp/test.md'...
1.  FAIL | Default Test
           Got:      [1, 2, 3]
           Expected: [1, 3, 2]
             from /tmp/test.md:3
1 comparisons, 1 doctests, 1 failures, 0 errors

Ruby 3.2 + rubydoctest v1.1.5 (Unintentional error!)

$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]

$ ./bin/rubydoctest /tmp/test.md
=== Testing '/tmp/test.md'...
/Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:139:in `block in run': undefined method `=~' for [1, 2, 3]:Array (NoMethodError)
	from /Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:124:in `each'
	from /Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:124:in `each_with_index'
	from /Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:124:in `run'
	from -e:8:in `<main>'

Ruby 3.2 + my patch

$ ruby -v
ruby 3.2.2 (2023-03-30 revision e51014f9c0) [arm64-darwin22]

$ ./bin/rubydoctest /tmp/test.md
=== Testing '/tmp/test.md'...
1.  FAIL | Default Test
           Got:      [1, 2, 3]
           Expected: [1, 3, 2]
             from /tmp/test.md:3
1 comparisons, 1 doctests, 1 failures, 0 errors

…" on Ruby 3.2+

```
/Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:139:in `block in run': undefined method `=~' for [1, 2, 3]:Array (NoMethodError)
	from /Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:124:in `each'
	from /Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:124:in `each_with_index'
	from /Users/sue445/workspace/github.com/tslocke/rubydoctest/lib/runner.rb:124:in `run'
	from -e:8:in `<main>'
```
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant