The Artima Developer Community
Sponsored Link

Ruby Buzz Forum
Ruport Graphs

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Matt Williams

Posts: 466
Nickname: aetherical
Registered: Feb, 2008

Matt Williams is a jack-of-all trades living in Columbus, OH.
Ruport Graphs Posted: Feb 12, 2008 10:08 AM
Reply to this message Reply

This post originated from an RSS feed registered with Ruby Buzz by Matt Williams.
Original Post: Ruport Graphs
Feed Title: Ruby Blender
Feed URL: http://feeds2.feedburner.com/RubyBlender
Feed Description: This blog contains short-ish ruby tips, hints, and techniques.
Latest Ruby Buzz Posts
Latest Ruby Buzz Posts by Matt Williams
Latest Posts From Ruby Blender

Advertisement

ruport comes with an extension, ruport-util which adds, among other things, the ability to create graphs from reports. However, it's hardcoded to do line graphs. This is a code snippet which will (for png and jpg graphs, the others should follow) allow you to create other types -- it's just bar graphs, but the others would follow....

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

require 'ruport'
require 'ruport/util'
require 'entry'

class Ruport::Formatter
  module Graph

    class Gruff < Ruport::Formatter

      def build_graph
        height = "#{options.width || 600}"
        width = "#{options.height || 800}"
        dimensions = "#{width}x#{height}"
        type = options.graph_type || :line

        graph = case type
          when :line
           ::Gruff::Line.new(dimensions)
          when :bar
           ::Gruff::Bar.new(dimensions)
        end
                graph.title = options.title if options.title
        graph.labels = options.labels if options.labels
        data.each do |r|
          graph.data(r.gid,r.to_a)
        end

        graph.maximum_value = options.max if options.max
        graph.minimum_value = options.min if options.min

        output << graph.to_blob(format.to_s)

      end

    end
  end
end

As I said, it's nothing special, but might be of some utility.

Read: Ruport Graphs

Topic: Great Article on Effective Web Design Previous Topic   Next Topic Topic: A Brief Guide To The Visual Rails Workbench

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use