]> projects.mako.cc - selectricity/blobdiff - app/controllers/sparklines_controller.rb
Added Sparklines controller and dependency, see README. Created method and table...
[selectricity] / app / controllers / sparklines_controller.rb
diff --git a/app/controllers/sparklines_controller.rb b/app/controllers/sparklines_controller.rb
new file mode 100644 (file)
index 0000000..eb5e6a6
--- /dev/null
@@ -0,0 +1,43 @@
+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
+    
+    def spark_pie
+      send_data(Sparklines.plot( ))
+    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
\ No newline at end of file

Benjamin Mako Hill || Want to submit a patch?