class SparklinesController < ApplicationController # Handles requests for sparkline graphs from views. # # Params are generated by the sparkline_tag helper method. # def index # Make array from comma-delimited list of data values ary = [] if params.has_key?('results') && !params['results'].nil? params['results'].split(',').each do |s| ary << s.to_i end end send_data( Sparklines.plot( ary, params ), :disposition => 'inline', :type => 'image/png', :filename => "spark_#{params[:type]}.png" ) end # Use this type of method for sparklines that can be cached. (Doesn't work with the helper.) # # To make caching easier, add a line like this to config/routes.rb: # map.sparklines "sparklines/:action/:id/image.png", :controller => "sparklines" # # Then reference it with the named route: # image_tag sparklines_url(:action => 'show', :id => 42) def show send_data(Sparklines.plot( [42, 37, 89, 74, 70, 50, 40, 30, 40, 50], :type => 'bar', :above_color => 'orange' ), :disposition => 'inline', :type => 'image/png', :filename => "sparkline.png") end end