Sha256: 9d6375d3f44162c6728fbf8316dd75e7f7ae4a9460adaf6b1e4305b804274b6b

Contents?: true

Size: 968 Bytes

Versions: 4

Compression:

Stored size: 968 Bytes

Contents

module Rorschart
  module GoogleChart
    module Mapper

      require 'rorschart/pivot_data'

      def format_if_needed(data_source)
        data_source.is_a?(String) ? data_source : to_datatable_format(data_source)
      end

      def to_datatable_format(data)

        return data if is_already_converted? data

        if (data.is_a? Rorschart::MultipleSeries)
          pivot = data
        else
          pivot = PivotData.new(data)
          pivot.sort_by_date!
        end

        return  {cols: pivot.cols, rows: add_rows(pivot.rows) }
      end

      def is_already_converted?(data)
        (data.class == Hash) and (data.keys == ["cols", "rows"])
      end

      def add_rows(rows)
        rows.map{|row|
          {"c" => 
            row.map{|col|
              {"v" => col}
            }
          }
        }
      end

      def chart_class_from_string(klass_symbol)
        "google.visualization." + klass_symbol.to_s
      end

    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
rorschart-0.10.2 lib/rorschart/google_chart_mapper.rb
rorschart-0.10.3 lib/rorschart/google_chart_mapper.rb
rorschart-0.10.1 lib/rorschart/google_chart_mapper.rb
rorschart-0.10.0 lib/rorschart/google_chart_mapper.rb