RosettaCodeData/Task/Range-expansion/Ruby/range-expansion.rb

12 lines
221 B
Ruby
Raw Permalink Normal View History

2013-04-10 23:57:08 -07:00
def range_expand(rng)
2015-11-18 06:14:39 +00:00
rng.split(',').flat_map do |part|
2013-04-10 23:57:08 -07:00
if part =~ /^(-?\d+)-(-?\d+)$/
($1.to_i .. $2.to_i).to_a
else
Integer(part)
end
2015-11-18 06:14:39 +00:00
end
2013-04-10 23:57:08 -07:00
end
p range_expand('-6,-3--1,3-5,7-11,14,15,17-20')