Report abuse


			
    #here's the grammar in BNF
    #dyn      ::= 
    #columns  ::=  '+'  | 
    #column   ::=  ':'  | 
    #range    ::=    | 
    #range_op ::= '..' | ','
    #numeral  ::= the set of integer numbers
    def translate_composite(row, spec)
      result = ''
      columns = spec.split('+')
      columns.each do |unparsed_column|
        col_and_range = unparsed_column.split(':')
        column = col_and_range[0].to_i
        result << if col_and_range.length > 1 
                    slicer(row[column].strip, col_and_range[1])
                  else
                    row[column].to_s
                  end
      end
      result.blank? ? nil : result
    end