class ZTK::GoogleChart::Base

GoogleChart Base Class

Public Class Methods

new(configuration={}) click to toggle source

@param [Hash] configuration Configuration options hash.

Calls superclass method ZTK::Base::new
# File lib/ztk/google_chart/base.rb, line 25
def initialize(configuration={})
  super({ :id => generate_id }, configuration)

  @id = config.id.to_s.underscore.gsub(/ /, '')
  @chart_name_tag = "chart_#{@id}"
  @chart_data_tag = "#{@chart_name_tag}_data"
  @chart_options_tag = "#{@chart_name_tag}_options"
  @chart_draw_tag = "#{@chart_name_tag}_draw"
  @chart_div_tag = "#{@chart_name_tag}_div"
  @chart_type_tag = config.type
end

Public Instance Methods

body(&block) click to toggle source
# File lib/ztk/google_chart/base.rb, line 48
      def body(&block)
        <<-EOCHART
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
<script type="text/javascript">
  var #{@chart_data_tag};
  var #{@chart_name_tag};

  google.load('visualization', '1', {'packages':['corechart']});
  google.load('visualization', '1.1', {'packages':['annotationchart']});
  google.load('visualization', '1.1', {'packages':['sankey']});
  google.setOnLoadCallback(#{@chart_draw_tag});

#{block.call.chomp}
</script>
<div id="#{@chart_div_tag}"></div>
EOCHART
      end
generate_id() click to toggle source
# File lib/ztk/google_chart/base.rb, line 66
def generate_id
  generated_id = Array.new

  generated_id << SecureRandom.hex(16)

  generated_id.join('_')
end
render(content=nil) click to toggle source
# File lib/ztk/google_chart/base.rb, line 37
def render(content=nil)
  case @chart_method
  when :data_table
    data_table_render
  when :array_to_data_table
    array_to_data_table_render
  else
    raise "You must supply chart data via DataTable or ArrayToDataTable!"
  end
end