@@ -439,44 +439,54 @@ def defaults_hash
439439
440440 version_defaults [ :default ] = Config [ default . send ( :defaults_hash ) ]
441441
442- version_defaults [ 0 ] = Config [ :default ] . dup . update (
442+ version_defaults [ 0 r ] = Config [ :default ] . dup . update (
443443 sasl_ir : false ,
444444 responses_without_block : :silence_deprecation_warning ,
445445 enforce_logindisabled : false ,
446446 parser_use_deprecated_uidplus_data : true ,
447447 parser_max_deprecated_uidplus_data_size : 10_000 ,
448448 ) . freeze
449- version_defaults [ 0.0 ] = Config [ 0 ]
450- version_defaults [ 0.1 ] = Config [ 0 ]
451- version_defaults [ 0.2 ] = Config [ 0 ]
452- version_defaults [ 0.3 ] = Config [ 0 ]
449+ version_defaults [ 0.0 r ] = Config [ 0 r ]
450+ version_defaults [ 0.1 r ] = Config [ 0 r ]
451+ version_defaults [ 0.2 r ] = Config [ 0 r ]
452+ version_defaults [ 0.3 r ] = Config [ 0 r ]
453453
454- version_defaults [ 0.4 ] = Config [ 0.3 ] . dup . update (
454+ version_defaults [ 0.4 r ] = Config [ 0.3 r ] . dup . update (
455455 sasl_ir : true ,
456456 parser_max_deprecated_uidplus_data_size : 1000 ,
457457 ) . freeze
458458
459- version_defaults [ 0.5 ] = Config [ 0.4 ] . dup . update (
459+ version_defaults [ 0.5 r ] = Config [ 0.4 r ] . dup . update (
460460 enforce_logindisabled : true ,
461461 responses_without_block : :warn ,
462462 parser_use_deprecated_uidplus_data : :up_to_max_size ,
463463 parser_max_deprecated_uidplus_data_size : 100 ,
464464 ) . freeze
465465
466- version_defaults [ 0.6 ] = Config [ 0.5 ] . dup . update (
466+ version_defaults [ 0.6 r ] = Config [ 0.5 r ] . dup . update (
467467 responses_without_block : :frozen_dup ,
468468 parser_use_deprecated_uidplus_data : false ,
469469 parser_max_deprecated_uidplus_data_size : 0 ,
470470 ) . freeze
471471
472- version_defaults [ 0.7 ] = Config [ 0.6 ] . dup . update (
472+ version_defaults [ 0.7 r ] = Config [ 0.6 r ] . dup . update (
473473 ) . freeze
474474
475- current = VERSION . to_f
475+ # Safe conversions one way only:
476+ # 0.6r.to_f == 0.6 # => true
477+ # 0.6 .to_r == 0.6r # => false
478+ version_defaults . to_a . each do |k , v |
479+ next unless k in Rational
480+ version_defaults [ k . to_f ] = v
481+ next unless k . to_i . to_r == k
482+ version_defaults [ k . to_i ] = v
483+ end
484+
485+ current = VERSION . to_r
476486 version_defaults [ :original ] = Config [ 0 ]
477487 version_defaults [ :current ] = Config [ current ]
478- version_defaults [ :next ] = Config [ current + 0.1 ]
479- version_defaults [ :future ] = Config [ current + 0.2 ]
488+ version_defaults [ :next ] = Config [ current + 0.1 r ]
489+ version_defaults [ :future ] = Config [ current + 0.2 r ]
480490
481491 version_defaults . freeze
482492
0 commit comments