lib/sycsvpro/spread_sheet.rb
def process(operator, s)
        s = coerce(s) || s
        raise "operand needs to be a SpreadSheet, "+
              "Numeric or Array" unless s.is_a?(SpreadSheet)
        result = []
        rlabel = []
        clabel = []
        s1_row_count, s1_col_count = dim
        s2_row_count, s2_col_count = s.dim
        row_count = [s1_row_count, s2_row_count].max
        col_count = [s1_col_count, s2_col_count].max
        0.upto(row_count - 1) do |r|
          r1 = r % s1_row_count
          r2 = r % s2_row_count
          rlabel << "#{row_labels[r1]}#{operator}#{s.row_labels[r2]}"
          element = []
          0.upto(col_count - 1) do |c|
            c1 = c % s1_col_count
            c2 = c % s2_col_count
            clabel << "#{col_labels[c1]}#{operator}#{s.col_labels[c2]}"
            element << rows[r1][c1].send(operator, s.rows[r2][c2])
          end
          result << element
        end
        SpreadSheet.new(*result, row_labels: rlabel, col_labels: clabel)
      end
def process(operator, s)
        s = coerce(s) || s
        raise "operand needs to be a SpreadSheet, "+
              "Numeric or Array" unless s.is_a?(SpreadSheet)
        result = []
        rlabel = []
        clabel = []
        s1_row_count, s1_col_count = dim
        s2_row_count, s2_col_count = s.dim
        row_count = [s1_row_count, s2_row_count].max
        col_count = [s1_col_count, s2_col_count].max
        0.upto(row_count - 1) do |r|
          r1 = r % s1_row_count
          r2 = r % s2_row_count
          rlabel << "#{row_labels[r1]}#{operator}#{s.row_labels[r2]}"
          element = []
          0.upto(col_count - 1) do |c|
            c1 = c % s1_col_count
            c2 = c % s2_col_count
            clabel << "#{col_labels[c1]}#{operator}#{s.col_labels[c2]}"
            element << rows[r1][c1].send(operator, s.rows[r2][c2])
          end
          result << element
        end
        SpreadSheet.new(*result, row_labels: rlabel, col_labels: clabel)
      end
def process ( operator , s ) s = coerce ( s ) || s raise "operand needs to be a SpreadSheet, " + "Numeric or Array" unless s . is_a? ( SpreadSheet ) result = [ ] rlabel = [ ] clabel = [ ] s1_row_count , s1_col_count = dim s2_row_count , s2_col_count = s . dim row_count = [ s1_row_count , s2_row_count ] . max col_count = [ s1_col_count , s2_col_count ] . max 0 . upto ( row_count - 1 ) do | r | r1 = r % s1_row_count r2 = r % s2_row_count rlabel << "#{row_labels[r1]}#{operator}#{s.row_labels[r2]}" element = [ ] 0 . upto ( col_count - 1 ) do | c | c1 = c % s1_col_count c2 = c % s2_col_count clabel << "#{col_labels[c1]}#{operator}#{s.col_labels[c2]}" element << rows [ r1 ] [ c1 ] . send ( operator , s . rows [ r2 ] [ c2 ] ) end result << element end SpreadSheet . new ( result , row_labels : rlabel , col_labels : clabel ) end
Conducts the calculation of this spread sheet with the provided value
 based on the operator. It s is a number or an array it is coerced into
 a spread sheet
Conducts the calculation of this spread sheet with the provided value based on the operator . It s is a number or an array it is coerced into a spread sheet