Even more information, this is reproducible on ruby -v ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-linux], but instead of printing out "30m" after CMD+D it prints out nothing. This seems to be a bug within IRB. Interesting, this beh...snood1205 (Eli Sadoff)
I can reproduce it on Darwin, so I'm switching it back to open. My `ruby -v` is `ruby 2.4.0p0 (2016-12-24 revision 57164) [x86_64-darwin14]` Also it occurs with `irb -f` but not with `ruby -e`snood1205 (Eli Sadoff)
This should be closed as it's seemingly unrelated to ruby core as evidence by the fact that it is happening in `rails console` and nothing would indicate that it's a ruby issue.snood1205 (Eli Sadoff)
I propose leaving the behavior the way it is. A float denominator is filled with possible unexpected behavior. For example, one would hypothesize that `(a/b).to_r == Rational("#{a}/#{b}")` yet `(3.1/2.0).to_r != Rational('3.1/2.0')`. The...snood1205 (Eli Sadoff)
For what it's worth, this result fits in with with `modulo` is documented to be. The documentation states > `x.modulo(y) means x-y*(x/y).floor` I implemented this in C to check if the results held and they did. (Note that `0.0.prev_...snood1205 (Eli Sadoff)
While `Range#sum` exists because it implements `Enumerable#sum`, it is not noted how it works. While it does provide a hint that it is not an alias to `inject(:+)`, it is not explained that `(a..b).sum` implements `(b-a+1)*(a+b)/2` which...snood1205 (Eli Sadoff)
I had read that one of the new features of 2.4.0 is that `Binding#irb` is now a method, so I decided to test this out in a program I was working on. Here is the program ~~~ ruby class Test attr_accessor :x, :y, :z def initializ...snood1205 (Eli Sadoff)
I think that the way it currently exists is logical. As `=~` is an Object method, it is worth while keeping the more permissible behavior whereas errors should be thrown for `match` and `match?` if `nil` is passed. The change that I woul...snood1205 (Eli Sadoff)
I think that a possible middle ground replacement would be to introduce truthy and falsy constants into `TrueClass` and `FalseClass` respectively. You could then do, for example, ~~~ ruby case 1 when true then puts 'This will not ma...snood1205 (Eli Sadoff)