def one_of *ndcs
      options = Hash === ndcs.last ? ndcs.pop : {}

      # Ruby 1.8 compatibility mode.
      #
      ndcs = ndcs.first if Array === ndcs.first

      NationalSplitters::Variable.new options[:max_length], ndcs.map(&:freeze)
    end
def one_of *ndcs
      options = Hash === ndcs.last ? ndcs.pop : {}

      # Ruby 1.8 compatibility mode.
      #
      ndcs = ndcs.first if Array === ndcs.first

      NationalSplitters::Variable.new options[:max_length], ndcs.map(&:freeze)
    end
If you have a number of (possibly) variable length NDCs
 that cannot be well expressed via regexp, use this.

 @param [Array<String>] ndcs A list of NDCs of variable length. Can contain :max_length => number to denote a maximum NDC length.

 @return NationalSplitters::Variable A variable size national splitter.

 @example With two NDCs
   country '51',
     # If it's either 103 or 105, then split ...
     one_of('103', '105') >> split(3,3)