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