From: Thomas Wieczorek Date: 2008-02-08T18:55:30+09:00 Subject: Re: convert String to range I tried to monkey patch the Range class, but it doesn't seem to work, so I patched the String class: class String def to_range case self.count('.') when 2 elements = self.split('..') return Range.new(elements[0].to_i, elements[1].to_i) when 3 elements = self.split('...') return Range.new(elements[0].to_i, elements[1].to_i-1) else raise ArgumentError.new("Couldn't convert to Range: #{str}") end end end p "1..2".to_range p "1...2".to_range p "1.2".to_range output: 1..2 1..1 rng.test:11:in `to_range': undefined local variable or method `str' for "1.2":String (NameError) from rng.test:18