Не изначально с диапазоном.Вы можете возиться с его разумом, но вам лучше использовать увеличенное первое значение.Это уродливо, но:
[(1..5).to_s].map{ |s| a,b=s.split('..').map{|i| i.to_i}; (1+a .. b) } #=> [2..5]
или
Range.new(*[(1..5).to_s].map{ |s| a,b=s.split('..').map{|i| i.to_i}; [1+a,b] }.flatten) #=> 2..5
или
irb(main):004:0> asdf = (1..5)
=> 1..5
irb(main):005:0> Range.new(asdf.min.succ, asdf.max)
=> 2..5
Ни один из них не выглядит слишком элегантным.