class Rangifier
Given an input of something like mon1-mon288 will return %w(mon1 mon2 … mon288) when values
is called
Constants
- TRAILING_DIGITS_REGEXP
Public Class Methods
new(input)
click to toggle source
# File lib/sas2yaml/rangifier.rb, line 5 def initialize(input) @input = input end
Public Instance Methods
values()
click to toggle source
# File lib/sas2yaml/rangifier.rb, line 9 def values @values ||= get_values end
Private Instance Methods
get_values()
click to toggle source
# File lib/sas2yaml/rangifier.rb, line 14 def get_values parts = @input.sub(/;/, '').strip.split('-').map(&:strip) return [@input] unless parts.first =~ TRAILING_DIGITS_REGEXP puts "Rangifying #@input => #{parts}" first = parts.first.match(TRAILING_DIGITS_REGEXP)[1].to_i last = parts.last.match(TRAILING_DIGITS_REGEXP)[1].to_i prefix = parts.first.sub(TRAILING_DIGITS_REGEXP, '') puts "Ranging #{prefix} from #{first} - #{last}" (first..last).map { |i| "#{prefix}#{i}"} end