From: "midnight (Sarun R)" Date: 2022-06-05T10:17:31+00:00 Subject: [ruby-core:108773] [Ruby master Feature#18817] SecureRandom::choose is not being exposed Issue #18817 has been reported by midnight (Sarun R). ---------------------------------------- Feature #18817: SecureRandom::choose is not being exposed https://bugs.ruby-lang.org/issues/18817 * Author: midnight (Sarun R) * Status: Open * Priority: Normal ---------------------------------------- I read through [the doc of `SecureRandom`](https://ruby-doc.org/stdlib-3.1.2/libdoc/securerandom/rdoc/SecureRandom.html) and found that it has the `choose` method. So, I spin up `irb` for a quick test. ~~~ > ::SecureRandom.choose([*('0'..'9'), *('A'..'Z')], 25) (irb):47:in `
': private method `choose' called for SecureRandom:Module (NoMethodError) ::SecureRandom.choose([*('0'..'9'), *('A'..'Z')], 25) ^^^^^^^ ~~~ The method is marked as private. So, I forcefully call the method with success. ~~~ > ::SecureRandom.send(:choose, [*('0'..'9'), *('A'..'Z')], 25) => "5FHY5PXLT184GIVISCVESTMGO" ~~~ I did not test for uniformity of the randomness, though. I wonder why the method has been marked as private? Is it not ready for production uses? -- https://bugs.ruby-lang.org/ Unsubscribe: