Project

General

Profile

Actions

Bug #16957

closed

Documentation example for enum.chunk doesn't match actual output.

Added by CryptoRAT (Luke Elliot) almost 4 years ago. Updated almost 4 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x86_64-darwin19]
[ruby-core:98765]

Description

I was experimenting with chunk, ruby 2.7.1, using the documentation sample, also 2.7.1:

open("/usr/share/dict/words", "r:iso-8859-1") { |f|
  f.chunk { |line| line.ord }.each { |ch, lines| p [ch.chr, lines.length] }
}
#=> ["\n", 1]
#   ["A", 1327]
#   ["B", 1372]
#   ["C", 1507]
#   ["D", 791]
#   ...

While doing this noticed that my output was significantly different.

#=> ["A", 1]
#   ["a", 5]
#   ["A", 1]
#   ["a", 2]
#   ["A", 7]
#   ...

I am fairly new to ruby, though not to programming. I played around some and found that by using line.upcase.ord I can get something more like what was expected, minus the '\n'.

open('/usr/share/dict/words', 'r:iso-8859-1') { |f|
  f.chunk { |line| line.upcase.ord }.each { |ch, lines| p [ch.chr, lines.length] }
}
#=> ["A", 17096]
#   ["B", 11070]
#   ["C", 19901]
#   ["D", 10896]

This can be fixed by either updating the doc to show the actual output or update the code to make align the output with the code. I have a patch I will attach as I go through the documentation on how to do that in this project.

I also opened a ticket on github, perhaps in error. https://github.com/documenting-ruby/ruby/issues/93


Files

00093.patch (1.17 KB) 00093.patch CryptoRAT (Luke Elliot), 06/12/2020 03:54 PM

Updated by jeremyevans0 (Jeremy Evans) almost 4 years ago

The existing example code assumes the words in /usr/share/dict/word will be already upcased, which isn't true in your case (MacOS) and looks like it isn't true in my case either (OpenBSD). I think your patch is a good way to handle the issue; I'll merge it shortly.

Actions #2

Updated by jeremyevans (Jeremy Evans) almost 4 years ago

  • Status changed from Open to Closed

Applied in changeset git|b212c7c7d136dad7391874c5c9ba0b77df5653e2.


Update example code in Enumerator#chunk documentation [ci skip]

The code assumed that /usr/share/dict/words did not use mixed
case, and it does at least on a few operating systems.

From CryptoRAT (Luke Elliot)

Fixes [Bug #16957]

Actions

Also available in: Atom PDF

Like0
Like0Like0