 
 This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
| Adding Graphical Context with Sparklines | ||
|---|---|---|
| Code | Expected | Actual | 
| require 'rubygems'
require 'sparklines'
require 'base64'
def embedded_sparkline
  %{<img src="data:image/png;base64,#{Base64.encode64(yield)}">}
end | This method scales data so that the smallest item becomes 0 and the largest becomes 100. | |
| def scale(data)
  min, max = data.min, data.max
  data.collect { |x| (x - min) / (max - min) * 100}
end | Randomly generate closing prices for the past month. | |
| prices = [rand(10)]
30.times { prices << prices.last + (rand - 0.5) } | Generate HTML containing a stock graph as an embedded sparkline. | |
| sparkline = embedded_sparkline { Sparklines.plot(scale(prices)) }
open('stock.html', 'w') do |f|
  f << "Is EvilCorp (NASDAQ:EVIL #{sparkline}) poised for a comeback?"
end
agree_percentages = [ 55, 71, 44, 55, 81, 68 ]
speech = %{This country faces a crisis and a crossroads. %s Our taxes
are too high %s and our poodles are too well-groomed. %s Our children
learn less in school %s and listen to louder music at home. %s The
Internet scares me. %s}
open('speech.html', 'w') do |f|
  sparklines = agree_percentages.collect do |p| 
    embedded_sparkline do
      Sparklines.plot([p], :type => 'pie', :remain_color => 'pink',
                           :share_color=>'blue',
                           :background_color=>'transparent')
    end
  end
  f << speech % sparklines
end
This country faces a crisis and a crossroads. 
<%= sparkline_tag [55, 10, 10, 20, 30], :type => "pie", :remain_color=>"pink",
:share_color => "blue", :background_color => "transparent" %>
This country faces a crisis and a crossroads. 
<img 
src="/sparklines?share_color=blue&remain_color=pink&results=55&type=pie&background_color=transparent"
class="sparkline" alt="Sparkline Graph" /> | ... | SyntaxError: compile error (irb):33: parse error, unexpected tOP_ASGN, expecting $ <%= sparkline_tag [55, 10, 10, 20, 30], :type => "pie", :remain_color=>"pink", ^ from (irb):33 from :0 |