svg-graph 1.0.3 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +0 -0
 - data/History.txt +16 -9
 - data/Manifest.txt +3 -0
 - data/README.txt +89 -89
 - data/Rakefile +21 -21
 - data/lib/SVG/Graph/DataPoint.rb +39 -0
 - data/lib/SVG/Graph/Graph.rb +4 -1
 - data/lib/SVG/Graph/Plot.rb +4 -6
 - data/lib/svggraph.rb +14 -13
 - data/test/test_data_point.rb +67 -0
 - data/test/test_plot.rb +145 -36
 - data/test/test_svg_graph.rb +19 -18
 - metadata +28 -9
 - metadata.gz.sig +3 -3
 
    
        data.tar.gz.sig
    CHANGED
    
    | 
         Binary file 
     | 
    
        data/History.txt
    CHANGED
    
    | 
         @@ -1,9 +1,16 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            === 1.0. 
     | 
| 
       2 
     | 
    
         
            -
            *  
     | 
| 
       3 
     | 
    
         
            -
            *  
     | 
| 
       4 
     | 
    
         
            -
            *  
     | 
| 
       5 
     | 
    
         
            -
            *  
     | 
| 
       6 
     | 
    
         
            -
            *  
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
      
 1 
     | 
    
         
            +
            === 1.0.4 / 2011-09-03
         
     | 
| 
      
 2 
     | 
    
         
            +
            * Data point shape is configurable based on rule matches on description. It defaults to usual circle with radius 2.5. [pgbossi]
         
     | 
| 
      
 3 
     | 
    
         
            +
            * New shapes can be specified through lambdas that accept parameters x,y (coordinates) and the dataset number.[pgbossi]
         
     | 
| 
      
 4 
     | 
    
         
            +
            * Max x and y values & allow Time objects in TimeSeries data. [pgbossi]
         
     | 
| 
      
 5 
     | 
    
         
            +
            * Popup hovering area is now customizable (it defaults to radius=10). [pgbossi]
         
     | 
| 
      
 6 
     | 
    
         
            +
            * Some DataPoint shapes can be marked as overlays. [pgbossi]
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            === 1.0.3 / 2011-08-04
         
     | 
| 
      
 9 
     | 
    
         
            +
            * Removed unused variables which raises warnings on ruby head
         
     | 
| 
      
 10 
     | 
    
         
            +
            * Bug fix: Test raises error on different order of xml attribute
         
     | 
| 
      
 11 
     | 
    
         
            +
            * Merge pull request #2 from liehann/master
         
     | 
| 
      
 12 
     | 
    
         
            +
            * Max values and improved Time data handling.
         
     | 
| 
      
 13 
     | 
    
         
            +
            * Merge pull request #1 from thinkingbox/master
         
     | 
| 
      
 14 
     | 
    
         
            +
            * Adding scattered plot support with :show_lines =>false Rounding values to integers in popups can be disabled with :round_popups => false Optional description gets shown in popup
         
     | 
| 
      
 15 
     | 
    
         
            +
             
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
    
        data/Manifest.txt
    CHANGED
    
    | 
         @@ -32,6 +32,7 @@ install.rb 
     | 
|
| 
       32 
32 
     | 
    
         
             
            lib/SVG/Graph/Bar.rb
         
     | 
| 
       33 
33 
     | 
    
         
             
            lib/SVG/Graph/BarBase.rb
         
     | 
| 
       34 
34 
     | 
    
         
             
            lib/SVG/Graph/BarHorizontal.rb
         
     | 
| 
      
 35 
     | 
    
         
            +
            lib/SVG/Graph/DataPoint.rb
         
     | 
| 
       35 
36 
     | 
    
         
             
            lib/SVG/Graph/Graph.rb
         
     | 
| 
       36 
37 
     | 
    
         
             
            lib/SVG/Graph/Line.rb
         
     | 
| 
       37 
38 
     | 
    
         
             
            lib/SVG/Graph/Pie.rb
         
     | 
| 
         @@ -49,5 +50,7 @@ test/plot.rb 
     | 
|
| 
       49 
50 
     | 
    
         
             
            test/schedule.rb
         
     | 
| 
       50 
51 
     | 
    
         
             
            test/single.rb
         
     | 
| 
       51 
52 
     | 
    
         
             
            test/test.rb
         
     | 
| 
      
 53 
     | 
    
         
            +
            test/test_data_point.rb
         
     | 
| 
      
 54 
     | 
    
         
            +
            test/test_plot.rb
         
     | 
| 
       52 
55 
     | 
    
         
             
            test/test_svg_graph.rb
         
     | 
| 
       53 
56 
     | 
    
         
             
            test/timeseries.rb
         
     | 
    
        data/README.txt
    CHANGED
    
    | 
         @@ -1,89 +1,89 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            = SVG::Graph
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            http://www.germane-software.com/software/SVG/SVG::Graph/
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            == AUTHOR
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
            Sean E. Russell <serATgermaneHYPHENsoftwareDOTcom>
         
     | 
| 
       8 
     | 
    
         
            -
            Copyright 2004 Sean E. Russell
         
     | 
| 
       9 
     | 
    
         
            -
            This software is available under the Ruby license[LICENSE.txt]
         
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
            == DEVELOPERS
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            * Claudio Bustos <clbustos_AT_gmail_DOT_com
         
     | 
| 
       14 
     | 
    
         
            -
            * Liehann Loots <liehhanl_AT_gmail_DOT_com
         
     | 
| 
       15 
     | 
    
         
            -
            * Piergiuliano Bossi <pgbossi_AT_gmail_DOT_com
         
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
            == DESCRIPTION:
         
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            This is a 
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
            SVG:::Graph is a pure Ruby library for generating charts, which are a type of graph where the values of one axis are not scalar. SVG::Graph has a verry similar API to the Perl library SVG::TT::Graph, and the resulting charts also look the same. This isn't surprising, because SVG::Graph started as a loose port of SVG::TT::Graph, although the internal code no longer resembles the Perl original at all.
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
            == FEATURES
         
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
            * Tested for Ruby versions 1.8.6, 1.8.7 and 1.9.*
         
     | 
| 
       26 
     | 
    
         
            -
             
     | 
| 
       27 
     | 
    
         
            -
            We are not sure that all the parts of the original SVG library work as expected under 1.9.x too. Please notify via github messages or on the Issues section if you find any bug.
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            == LICENSE:
         
     | 
| 
       30 
     | 
    
         
            -
             
     | 
| 
       31 
     | 
    
         
            -
            (The Ruby Licence)
         
     | 
| 
       32 
     | 
    
         
            -
             
     | 
| 
       33 
     | 
    
         
            -
            SVG::Graph is copyrighted free software by Sean Russell <ser@germane-software.com>.
         
     | 
| 
       34 
     | 
    
         
            -
            You can redistribute it and/or modify it under either the terms of the GPL
         
     | 
| 
       35 
     | 
    
         
            -
            (see GPL.txt file), or the conditions below:
         
     | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
              1. You may make and give away verbatim copies of the source form of the
         
     | 
| 
       38 
     | 
    
         
            -
                 software without restriction, provided that you duplicate all of the
         
     | 
| 
       39 
     | 
    
         
            -
                 original copyright notices and associated disclaimers.
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
       41 
     | 
    
         
            -
              2. You may modify your copy of the software in any way, provided that
         
     | 
| 
       42 
     | 
    
         
            -
                 you do at least ONE of the following:
         
     | 
| 
       43 
     | 
    
         
            -
             
     | 
| 
       44 
     | 
    
         
            -
                   a) place your modifications in the Public Domain or otherwise
         
     | 
| 
       45 
     | 
    
         
            -
                      make them Freely Available, such as by posting said
         
     | 
| 
       46 
     | 
    
         
            -
            	  modifications to Usenet or an equivalent medium, or by allowing
         
     | 
| 
       47 
     | 
    
         
            -
            	  the author to include your modifications in the software.
         
     | 
| 
       48 
     | 
    
         
            -
             
     | 
| 
       49 
     | 
    
         
            -
                   b) use the modified software only within your corporation or
         
     | 
| 
       50 
     | 
    
         
            -
                      organization.
         
     | 
| 
       51 
     | 
    
         
            -
             
     | 
| 
       52 
     | 
    
         
            -
                   c) rename any non-standard executables so the names do not conflict
         
     | 
| 
       53 
     | 
    
         
            -
            	  with standard executables, which must also be provided.
         
     | 
| 
       54 
     | 
    
         
            -
             
     | 
| 
       55 
     | 
    
         
            -
                   d) make other distribution arrangements with the author.
         
     | 
| 
       56 
     | 
    
         
            -
             
     | 
| 
       57 
     | 
    
         
            -
              3. You may distribute the software in object code or executable
         
     | 
| 
       58 
     | 
    
         
            -
                 form, provided that you do at least ONE of the following:
         
     | 
| 
       59 
     | 
    
         
            -
             
     | 
| 
       60 
     | 
    
         
            -
                   a) distribute the executables and library files of the software,
         
     | 
| 
       61 
     | 
    
         
            -
            	  together with instructions (in the manual page or equivalent)
         
     | 
| 
       62 
     | 
    
         
            -
            	  on where to get the original distribution.
         
     | 
| 
       63 
     | 
    
         
            -
             
     | 
| 
       64 
     | 
    
         
            -
                   b) accompany the distribution with the machine-readable source of
         
     | 
| 
       65 
     | 
    
         
            -
            	  the software.
         
     | 
| 
       66 
     | 
    
         
            -
             
     | 
| 
       67 
     | 
    
         
            -
                   c) give non-standard executables non-standard names, with
         
     | 
| 
       68 
     | 
    
         
            -
                      instructions on where to get the original software distribution.
         
     | 
| 
       69 
     | 
    
         
            -
             
     | 
| 
       70 
     | 
    
         
            -
                   d) make other distribution arrangements with the author.
         
     | 
| 
       71 
     | 
    
         
            -
             
     | 
| 
       72 
     | 
    
         
            -
              4. You may modify and include the part of the software into any other
         
     | 
| 
       73 
     | 
    
         
            -
                 software (possibly commercial).  But some files in the distribution
         
     | 
| 
       74 
     | 
    
         
            -
                 are not written by the author, so that they are not under this terms.
         
     | 
| 
       75 
     | 
    
         
            -
             
     | 
| 
       76 
     | 
    
         
            -
                 They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
         
     | 
| 
       77 
     | 
    
         
            -
                 files under the ./missing directory.  See each file for the copying
         
     | 
| 
       78 
     | 
    
         
            -
                 condition.
         
     | 
| 
       79 
     | 
    
         
            -
             
     | 
| 
       80 
     | 
    
         
            -
              5. The scripts and library files supplied as input to or produced as 
         
     | 
| 
       81 
     | 
    
         
            -
                 output from the software do not automatically fall under the
         
     | 
| 
       82 
     | 
    
         
            -
                 copyright of the software, but belong to whomever generated them, 
         
     | 
| 
       83 
     | 
    
         
            -
                 and may be sold commercially, and may be aggregated with this
         
     | 
| 
       84 
     | 
    
         
            -
                 software.
         
     | 
| 
       85 
     | 
    
         
            -
             
     | 
| 
       86 
     | 
    
         
            -
              6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
         
     | 
| 
       87 
     | 
    
         
            -
                 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
         
     | 
| 
       88 
     | 
    
         
            -
                 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
         
     | 
| 
       89 
     | 
    
         
            -
                 PURPOSE.
         
     | 
| 
      
 1 
     | 
    
         
            +
            = SVG::Graph
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            http://www.germane-software.com/software/SVG/SVG::Graph/
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            == AUTHOR
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            Sean E. Russell <serATgermaneHYPHENsoftwareDOTcom>
         
     | 
| 
      
 8 
     | 
    
         
            +
            Copyright 2004 Sean E. Russell
         
     | 
| 
      
 9 
     | 
    
         
            +
            This software is available under the Ruby license[LICENSE.txt]
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            == DEVELOPERS
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
            * Claudio Bustos <clbustos_AT_gmail_DOT_com
         
     | 
| 
      
 14 
     | 
    
         
            +
            * Liehann Loots <liehhanl_AT_gmail_DOT_com
         
     | 
| 
      
 15 
     | 
    
         
            +
            * Piergiuliano Bossi <pgbossi_AT_gmail_DOT_com
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
            == DESCRIPTION:
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            This is a  revision of the [SVG::Graph library](http://www.germane-software.com/software/SVG/SVG::Graph/) by Sean Russell with touch-ups to make it run on Ruby 1.9.x and be gem-installable. See History.txt for other changes
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            SVG:::Graph is a pure Ruby library for generating charts, which are a type of graph where the values of one axis are not scalar. SVG::Graph has a verry similar API to the Perl library SVG::TT::Graph, and the resulting charts also look the same. This isn't surprising, because SVG::Graph started as a loose port of SVG::TT::Graph, although the internal code no longer resembles the Perl original at all.
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
            == FEATURES
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
            * Tested for Ruby versions 1.8.6, 1.8.7 and 1.9.*
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            We are not sure that all the parts of the original SVG library work as expected under 1.9.x too. Please notify via github messages or on the Issues section if you find any bug.
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            == LICENSE:
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            (The Ruby Licence)
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            SVG::Graph is copyrighted free software by Sean Russell <ser@germane-software.com>.
         
     | 
| 
      
 34 
     | 
    
         
            +
            You can redistribute it and/or modify it under either the terms of the GPL
         
     | 
| 
      
 35 
     | 
    
         
            +
            (see GPL.txt file), or the conditions below:
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
              1. You may make and give away verbatim copies of the source form of the
         
     | 
| 
      
 38 
     | 
    
         
            +
                 software without restriction, provided that you duplicate all of the
         
     | 
| 
      
 39 
     | 
    
         
            +
                 original copyright notices and associated disclaimers.
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              2. You may modify your copy of the software in any way, provided that
         
     | 
| 
      
 42 
     | 
    
         
            +
                 you do at least ONE of the following:
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                   a) place your modifications in the Public Domain or otherwise
         
     | 
| 
      
 45 
     | 
    
         
            +
                      make them Freely Available, such as by posting said
         
     | 
| 
      
 46 
     | 
    
         
            +
            	  modifications to Usenet or an equivalent medium, or by allowing
         
     | 
| 
      
 47 
     | 
    
         
            +
            	  the author to include your modifications in the software.
         
     | 
| 
      
 48 
     | 
    
         
            +
             
     | 
| 
      
 49 
     | 
    
         
            +
                   b) use the modified software only within your corporation or
         
     | 
| 
      
 50 
     | 
    
         
            +
                      organization.
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                   c) rename any non-standard executables so the names do not conflict
         
     | 
| 
      
 53 
     | 
    
         
            +
            	  with standard executables, which must also be provided.
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                   d) make other distribution arrangements with the author.
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
              3. You may distribute the software in object code or executable
         
     | 
| 
      
 58 
     | 
    
         
            +
                 form, provided that you do at least ONE of the following:
         
     | 
| 
      
 59 
     | 
    
         
            +
             
     | 
| 
      
 60 
     | 
    
         
            +
                   a) distribute the executables and library files of the software,
         
     | 
| 
      
 61 
     | 
    
         
            +
            	  together with instructions (in the manual page or equivalent)
         
     | 
| 
      
 62 
     | 
    
         
            +
            	  on where to get the original distribution.
         
     | 
| 
      
 63 
     | 
    
         
            +
             
     | 
| 
      
 64 
     | 
    
         
            +
                   b) accompany the distribution with the machine-readable source of
         
     | 
| 
      
 65 
     | 
    
         
            +
            	  the software.
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                   c) give non-standard executables non-standard names, with
         
     | 
| 
      
 68 
     | 
    
         
            +
                      instructions on where to get the original software distribution.
         
     | 
| 
      
 69 
     | 
    
         
            +
             
     | 
| 
      
 70 
     | 
    
         
            +
                   d) make other distribution arrangements with the author.
         
     | 
| 
      
 71 
     | 
    
         
            +
             
     | 
| 
      
 72 
     | 
    
         
            +
              4. You may modify and include the part of the software into any other
         
     | 
| 
      
 73 
     | 
    
         
            +
                 software (possibly commercial).  But some files in the distribution
         
     | 
| 
      
 74 
     | 
    
         
            +
                 are not written by the author, so that they are not under this terms.
         
     | 
| 
      
 75 
     | 
    
         
            +
             
     | 
| 
      
 76 
     | 
    
         
            +
                 They are gc.c(partly), utils.c(partly), regex.[ch], st.[ch] and some
         
     | 
| 
      
 77 
     | 
    
         
            +
                 files under the ./missing directory.  See each file for the copying
         
     | 
| 
      
 78 
     | 
    
         
            +
                 condition.
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
              5. The scripts and library files supplied as input to or produced as 
         
     | 
| 
      
 81 
     | 
    
         
            +
                 output from the software do not automatically fall under the
         
     | 
| 
      
 82 
     | 
    
         
            +
                 copyright of the software, but belong to whomever generated them, 
         
     | 
| 
      
 83 
     | 
    
         
            +
                 and may be sold commercially, and may be aggregated with this
         
     | 
| 
      
 84 
     | 
    
         
            +
                 software.
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
              6. THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR
         
     | 
| 
      
 87 
     | 
    
         
            +
                 IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
         
     | 
| 
      
 88 
     | 
    
         
            +
                 WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
         
     | 
| 
      
 89 
     | 
    
         
            +
                 PURPOSE.
         
     | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,21 +1,21 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            # -*- ruby -*-
         
     | 
| 
       2 
     | 
    
         
            -
            # -*- coding: utf-8 -*-
         
     | 
| 
       3 
     | 
    
         
            -
            $:.unshift(File.dirname(__FILE__)+"/lib/")
         
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
            require 'rubygems'
         
     | 
| 
       6 
     | 
    
         
            -
            require 'hoe'
         
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
            Hoe.plugin :git
         
     | 
| 
       9 
     | 
    
         
            -
            $:.unshift("./lib")
         
     | 
| 
       10 
     | 
    
         
            -
            require 'svggraph'
         
     | 
| 
       11 
     | 
    
         
            -
            Hoe.spec 'svg-graph' do
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
            end
         
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
            # vim: syntax=ruby
         
     | 
| 
      
 1 
     | 
    
         
            +
            # -*- ruby -*-
         
     | 
| 
      
 2 
     | 
    
         
            +
            # -*- coding: utf-8 -*-
         
     | 
| 
      
 3 
     | 
    
         
            +
            $:.unshift(File.dirname(__FILE__)+"/lib/")
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'hoe'
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
            Hoe.plugin :git
         
     | 
| 
      
 9 
     | 
    
         
            +
            $:.unshift("./lib")
         
     | 
| 
      
 10 
     | 
    
         
            +
            require 'svggraph'
         
     | 
| 
      
 11 
     | 
    
         
            +
            Hoe.spec 'svg-graph' do
         
     | 
| 
      
 12 
     | 
    
         
            +
                self.version=SVG::Graph::VERSION
         
     | 
| 
      
 13 
     | 
    
         
            +
                self.developer('Sean Russell', 'ser_AT_germane-software.com')
         
     | 
| 
      
 14 
     | 
    
         
            +
                self.developer('Claudio Bustos', 'clbustos_AT_gmail.com')
         
     | 
| 
      
 15 
     | 
    
         
            +
                self.developer("Liehann Loots","liehhanl_AT_gmail.com")
         
     | 
| 
      
 16 
     | 
    
         
            +
                self.developer("Piergiuliano Bossi","pgbossi_AT_gmail.com")
         
     | 
| 
      
 17 
     | 
    
         
            +
                self.rubyforge_name = 'ruby-statsample' # if different than 'svg_graph'
         
     | 
| 
      
 18 
     | 
    
         
            +
                self.remote_rdoc_dir = 'svg-graph'
         
     | 
| 
      
 19 
     | 
    
         
            +
            end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
            # vim: syntax=ruby
         
     | 
| 
         @@ -0,0 +1,39 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            class DataPoint
         
     | 
| 
      
 2 
     | 
    
         
            +
              OVERLAY = "OVERLAY" unless defined?(OVERLAY)
         
     | 
| 
      
 3 
     | 
    
         
            +
              DEFAULT_SHAPE = lambda{|x,y,line| ["circle", {
         
     | 
| 
      
 4 
     | 
    
         
            +
                      "cx" => x,
         
     | 
| 
      
 5 
     | 
    
         
            +
                      "cy" => y,
         
     | 
| 
      
 6 
     | 
    
         
            +
                      "r" => "2.5",
         
     | 
| 
      
 7 
     | 
    
         
            +
                      "class" => "dataPoint#{line}"
         
     | 
| 
      
 8 
     | 
    
         
            +
                    }]
         
     | 
| 
      
 9 
     | 
    
         
            +
                  } unless defined? DEFAULT_SHAPE
         
     | 
| 
      
 10 
     | 
    
         
            +
              CRITERIA = [] unless defined? CRITERIA
         
     | 
| 
      
 11 
     | 
    
         
            +
              def DataPoint.configure_shape_criteria(*matchers)
         
     | 
| 
      
 12 
     | 
    
         
            +
                CRITERIA.push(*matchers)
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
              def DataPoint.reset_shape_criteria
         
     | 
| 
      
 15 
     | 
    
         
            +
                CRITERIA.clear
         
     | 
| 
      
 16 
     | 
    
         
            +
              end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
              def initialize(x, y, line)
         
     | 
| 
      
 19 
     | 
    
         
            +
                @x = x
         
     | 
| 
      
 20 
     | 
    
         
            +
                @y = y
         
     | 
| 
      
 21 
     | 
    
         
            +
                @line = line
         
     | 
| 
      
 22 
     | 
    
         
            +
              end
         
     | 
| 
      
 23 
     | 
    
         
            +
              def shape(description=nil)
         
     | 
| 
      
 24 
     | 
    
         
            +
                shapes = CRITERIA.select {|criteria|
         
     | 
| 
      
 25 
     | 
    
         
            +
                  criteria.size == 2
         
     | 
| 
      
 26 
     | 
    
         
            +
                }.collect {|regexp, proc|
         
     | 
| 
      
 27 
     | 
    
         
            +
                  proc.call(@x, @y, @line) if description =~ regexp
         
     | 
| 
      
 28 
     | 
    
         
            +
                }.compact
         
     | 
| 
      
 29 
     | 
    
         
            +
                shapes = [DEFAULT_SHAPE.call(@x, @y, @line)] if shapes.empty?
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                overlays = CRITERIA.select { |criteria|
         
     | 
| 
      
 32 
     | 
    
         
            +
                  criteria.last == OVERLAY
         
     | 
| 
      
 33 
     | 
    
         
            +
                }.collect { |regexp, proc|
         
     | 
| 
      
 34 
     | 
    
         
            +
                  proc.call(@x, @y, @line) if description =~ regexp
         
     | 
| 
      
 35 
     | 
    
         
            +
                }.compact
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                return shapes + overlays
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
    
        data/lib/SVG/Graph/Graph.rb
    CHANGED
    
    | 
         @@ -341,6 +341,8 @@ module SVG 
     | 
|
| 
       341 
341 
     | 
    
         
             
                  attr_accessor :no_css
         
     | 
| 
       342 
342 
     | 
    
         
             
                  # Add popups for the data points on some graphs
         
     | 
| 
       343 
343 
     | 
    
         
             
                  attr_accessor :add_popups
         
     | 
| 
      
 344 
     | 
    
         
            +
                  # Customize popup radius
         
     | 
| 
      
 345 
     | 
    
         
            +
                  attr_accessor :popup_radius
         
     | 
| 
       344 
346 
     | 
    
         | 
| 
       345 
347 
     | 
    
         | 
| 
       346 
348 
     | 
    
         
             
                  protected
         
     | 
| 
         @@ -355,6 +357,7 @@ module SVG 
     | 
|
| 
       355 
357 
     | 
    
         
             
                    config.each { |key, value|
         
     | 
| 
       356 
358 
     | 
    
         
             
                        self.send( key.to_s+"=", value ) if self.respond_to?  key
         
     | 
| 
       357 
359 
     | 
    
         
             
                    }
         
     | 
| 
      
 360 
     | 
    
         
            +
                    @popup_radius ||= 10
         
     | 
| 
       358 
361 
     | 
    
         
             
                  end
         
     | 
| 
       359 
362 
     | 
    
         | 
| 
       360 
363 
     | 
    
         
             
                  attr_accessor :top_align, :top_font, :right_align, :right_font
         
     | 
| 
         @@ -424,7 +427,7 @@ module SVG 
     | 
|
| 
       424 
427 
     | 
    
         
             
                    @foreground.add_element( "circle", {
         
     | 
| 
       425 
428 
     | 
    
         
             
                      "cx" => x.to_s,
         
     | 
| 
       426 
429 
     | 
    
         
             
                      "cy" => y.to_s,
         
     | 
| 
       427 
     | 
    
         
            -
                      "r" => " 
     | 
| 
      
 430 
     | 
    
         
            +
                      "r" => "#{@popup_radius}",
         
     | 
| 
       428 
431 
     | 
    
         
             
                      "style" => "opacity: 0",
         
     | 
| 
       429 
432 
     | 
    
         
             
                      "onmouseover" => 
         
     | 
| 
       430 
433 
     | 
    
         
             
                        "document.getElementById(#{t.object_id}).setAttribute('visibility', 'visible' )",
         
     | 
    
        data/lib/SVG/Graph/Plot.rb
    CHANGED
    
    | 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'SVG/Graph/Graph'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'SVG/Graph/DataPoint'
         
     | 
| 
       2 
3 
     | 
    
         | 
| 
       3 
4 
     | 
    
         
             
            module SVG
         
     | 
| 
       4 
5 
     | 
    
         
             
              module Graph
         
     | 
| 
         @@ -334,12 +335,9 @@ module SVG 
     | 
|
| 
       334 
335 
     | 
    
         
             
                          x = (x_points[idx] -  x_min) * x_step
         
     | 
| 
       335 
336 
     | 
    
         
             
                          y = @graph_height - (y_points[idx] -  y_min) * y_step
         
     | 
| 
       336 
337 
     | 
    
         
             
                          if show_data_points
         
     | 
| 
       337 
     | 
    
         
            -
                             
     | 
| 
       338 
     | 
    
         
            -
                               
     | 
| 
       339 
     | 
    
         
            -
             
     | 
| 
       340 
     | 
    
         
            -
                              "r" => "2.5",
         
     | 
| 
       341 
     | 
    
         
            -
                              "class" => "dataPoint#{line}"
         
     | 
| 
       342 
     | 
    
         
            -
                            })
         
     | 
| 
      
 338 
     | 
    
         
            +
                            DataPoint.new(x, y, line).shape(data[:description][idx]).each{|s|
         
     | 
| 
      
 339 
     | 
    
         
            +
                              @graph.add_element( *s )
         
     | 
| 
      
 340 
     | 
    
         
            +
                            }
         
     | 
| 
       343 
341 
     | 
    
         
             
                            add_popup(x, y, format( x_points[idx], y_points[idx], data[:description][idx])) if add_popups
         
     | 
| 
       344 
342 
     | 
    
         
             
                          end
         
     | 
| 
       345 
343 
     | 
    
         
             
                          make_datapoint_text( x, y-6, y_points[idx] ) if show_data_values
         
     | 
    
        data/lib/svggraph.rb
    CHANGED
    
    | 
         @@ -1,13 +1,14 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            module SVG
         
     | 
| 
       2 
     | 
    
         
            -
            module Graph
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
             
     | 
| 
       5 
     | 
    
         
            -
             
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
            end
         
     | 
| 
      
 1 
     | 
    
         
            +
            module SVG
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Graph
         
     | 
| 
      
 3 
     | 
    
         
            +
                VERSION = '1.0.4'
         
     | 
| 
      
 4 
     | 
    
         
            +
                autoload(:Bar, 'SVG/Graph/Bar')
         
     | 
| 
      
 5 
     | 
    
         
            +
                autoload(:BarBase, 'SVG/Graph/BarBase')
         
     | 
| 
      
 6 
     | 
    
         
            +
                autoload(:BarHorizontal, 'SVG/Graph/BarHorizontal')
         
     | 
| 
      
 7 
     | 
    
         
            +
                autoload(:Line, 'SVG/Graph/Line')
         
     | 
| 
      
 8 
     | 
    
         
            +
                autoload(:Pie, 'SVG/Graph/Pie')
         
     | 
| 
      
 9 
     | 
    
         
            +
                autoload(:Plot, 'SVG/Graph/Plot')
         
     | 
| 
      
 10 
     | 
    
         
            +
                autoload(:Schedule, 'SVG/Graph/Schedule')
         
     | 
| 
      
 11 
     | 
    
         
            +
                autoload(:TimeSeries, 'SVG/Graph/TimeSeries')
         
     | 
| 
      
 12 
     | 
    
         
            +
                autoload(:DataPoint, 'SVG/Graph/DataPoint')
         
     | 
| 
      
 13 
     | 
    
         
            +
              end
         
     | 
| 
      
 14 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,67 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            $: << File.dirname(__FILE__) + '/../lib'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require "test/unit"
         
     | 
| 
      
 3 
     | 
    
         
            +
            require "SVG/Graph/DataPoint"
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            class TestDataPoint < Test::Unit::TestCase
         
     | 
| 
      
 6 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 7 
     | 
    
         
            +
                DataPoint.reset_shape_criteria
         
     | 
| 
      
 8 
     | 
    
         
            +
              end
         
     | 
| 
      
 9 
     | 
    
         
            +
              def teardown
         
     | 
| 
      
 10 
     | 
    
         
            +
                DataPoint.reset_shape_criteria
         
     | 
| 
      
 11 
     | 
    
         
            +
              end
         
     | 
| 
      
 12 
     | 
    
         
            +
              def test_default_shape_is_circle_with_2_point_5_radius
         
     | 
| 
      
 13 
     | 
    
         
            +
                assert_equal([['circle', {
         
     | 
| 
      
 14 
     | 
    
         
            +
                    "cx" => 100.0,
         
     | 
| 
      
 15 
     | 
    
         
            +
                    "cy" => 100.0,
         
     | 
| 
      
 16 
     | 
    
         
            +
                    "r" => "2.5",
         
     | 
| 
      
 17 
     | 
    
         
            +
                    "class" => "dataPoint1"
         
     | 
| 
      
 18 
     | 
    
         
            +
                }]], DataPoint.new(100.0, 100.0, 1).shape)
         
     | 
| 
      
 19 
     | 
    
         
            +
              end
         
     | 
| 
      
 20 
     | 
    
         
            +
              def test_default_shape_based_on_description_without_criteria_is_circle_with_2_point_5_radius
         
     | 
| 
      
 21 
     | 
    
         
            +
                assert_equal([['circle', {
         
     | 
| 
      
 22 
     | 
    
         
            +
                    "cx" => 100.0,
         
     | 
| 
      
 23 
     | 
    
         
            +
                    "cy" => 100.0,
         
     | 
| 
      
 24 
     | 
    
         
            +
                    "r" => "2.5",
         
     | 
| 
      
 25 
     | 
    
         
            +
                    "class" => "dataPoint1"
         
     | 
| 
      
 26 
     | 
    
         
            +
                }]], DataPoint.new(100.0, 100.0, 1).shape("description"))
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
              def test_shape_for_matching_regular_expression_is_lambda_value
         
     | 
| 
      
 29 
     | 
    
         
            +
                DataPoint.configure_shape_criteria(
         
     | 
| 
      
 30 
     | 
    
         
            +
                  [/angle/, lambda{|x,y,line| ['rect', {
         
     | 
| 
      
 31 
     | 
    
         
            +
                      "x" => x,
         
     | 
| 
      
 32 
     | 
    
         
            +
                      "y" => y,
         
     | 
| 
      
 33 
     | 
    
         
            +
                      "width" => "5",
         
     | 
| 
      
 34 
     | 
    
         
            +
                      "height" => "5",
         
     | 
| 
      
 35 
     | 
    
         
            +
                      "class" => "dataPoint#{line}"
         
     | 
| 
      
 36 
     | 
    
         
            +
                    }]
         
     | 
| 
      
 37 
     | 
    
         
            +
                  }]
         
     | 
| 
      
 38 
     | 
    
         
            +
                )
         
     | 
| 
      
 39 
     | 
    
         
            +
                assert_equal([['rect', {
         
     | 
| 
      
 40 
     | 
    
         
            +
                    "x" => 100.0,
         
     | 
| 
      
 41 
     | 
    
         
            +
                    "y" => 50.0,
         
     | 
| 
      
 42 
     | 
    
         
            +
                    "width" => "5",
         
     | 
| 
      
 43 
     | 
    
         
            +
                    "height" => "5",
         
     | 
| 
      
 44 
     | 
    
         
            +
                    "class" => "dataPoint2"
         
     | 
| 
      
 45 
     | 
    
         
            +
                }]], DataPoint.new(100.0, 50.0, 2).shape("rectangle"))
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
              def test_multiple_criteria_generate_shapes_in_order
         
     | 
| 
      
 48 
     | 
    
         
            +
                DataPoint.configure_shape_criteria(
         
     | 
| 
      
 49 
     | 
    
         
            +
                  [/3/, lambda{|x,y,line| "three" }],
         
     | 
| 
      
 50 
     | 
    
         
            +
                  [/2/, lambda{|x,y,line| "two" }],
         
     | 
| 
      
 51 
     | 
    
         
            +
                  [/1/, lambda{|x,y,line| "one" }]
         
     | 
| 
      
 52 
     | 
    
         
            +
                )
         
     | 
| 
      
 53 
     | 
    
         
            +
                assert_equal(["three", "two", "one"], DataPoint.new(100.0, 50.0, 2).shape("1 3 2"))
         
     | 
| 
      
 54 
     | 
    
         
            +
              end
         
     | 
| 
      
 55 
     | 
    
         
            +
              def test_overlay_match_is_last_and_does_not_prevent_default
         
     | 
| 
      
 56 
     | 
    
         
            +
                DataPoint.configure_shape_criteria(
         
     | 
| 
      
 57 
     | 
    
         
            +
                  [/3/, lambda{|x,y,line| "three" }, DataPoint::OVERLAY]
         
     | 
| 
      
 58 
     | 
    
         
            +
                )
         
     | 
| 
      
 59 
     | 
    
         
            +
                default_circle = ['circle', {
         
     | 
| 
      
 60 
     | 
    
         
            +
                    "cx" => 100.0,
         
     | 
| 
      
 61 
     | 
    
         
            +
                    "cy" => 50.0,
         
     | 
| 
      
 62 
     | 
    
         
            +
                    "r" => "2.5",
         
     | 
| 
      
 63 
     | 
    
         
            +
                    "class" => "dataPoint2"
         
     | 
| 
      
 64 
     | 
    
         
            +
                }]
         
     | 
| 
      
 65 
     | 
    
         
            +
                assert_equal([default_circle, "three"], DataPoint.new(100.0, 50.0, 2).shape("1 3 2"))
         
     | 
| 
      
 66 
     | 
    
         
            +
              end
         
     | 
| 
      
 67 
     | 
    
         
            +
            end
         
     | 
    
        data/test/test_plot.rb
    CHANGED
    
    | 
         @@ -1,40 +1,47 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            $: << File.dirname(__FILE__) + '/../lib'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require "test/unit"
         
     | 
| 
       3 
3 
     | 
    
         
             
            require "svggraph"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "SVG/Graph/DataPoint"
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
            class TestSvgGraphPlot < Test::Unit::TestCase
         
     | 
| 
       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 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
              def setup
         
     | 
| 
      
 8 
     | 
    
         
            +
                DataPoint.reset_shape_criteria
         
     | 
| 
      
 9 
     | 
    
         
            +
              end
         
     | 
| 
      
 10 
     | 
    
         
            +
              def teardown
         
     | 
| 
      
 11 
     | 
    
         
            +
                DataPoint.reset_shape_criteria
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
              def test_plot
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
                  projection = [
         
     | 
| 
      
 16 
     | 
    
         
            +
                   6, 11,    0, 5,   18, 7,   1, 11,   13, 9,   1, 2,   19, 0,   3, 13,
         
     | 
| 
      
 17 
     | 
    
         
            +
                   7, 9
         
     | 
| 
      
 18 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 19 
     | 
    
         
            +
                  actual = [
         
     | 
| 
      
 20 
     | 
    
         
            +
                   0, 18,    8, 15,    9, 4,   18, 14,   10, 2,   11, 6,  14, 12,
         
     | 
| 
      
 21 
     | 
    
         
            +
                   15, 6,   4, 17,   2, 12
         
     | 
| 
      
 22 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                  graph = SVG::Graph::Plot.new({
         
     | 
| 
      
 25 
     | 
    
         
            +
                  :height => 500,
         
     | 
| 
      
 26 
     | 
    
         
            +
                      :width => 300,
         
     | 
| 
      
 27 
     | 
    
         
            +
                   :key => true,
         
     | 
| 
      
 28 
     | 
    
         
            +
                   :scale_x_integers => true,
         
     | 
| 
      
 29 
     | 
    
         
            +
                   :scale_y_integerrs => true,
         
     | 
| 
      
 30 
     | 
    
         
            +
                  })
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  graph.add_data({
         
     | 
| 
      
 33 
     | 
    
         
            +
                  :data => projection,
         
     | 
| 
      
 34 
     | 
    
         
            +
                    :title => 'Projected',
         
     | 
| 
      
 35 
     | 
    
         
            +
                  })
         
     | 
| 
      
 36 
     | 
    
         
            +
             
     | 
| 
      
 37 
     | 
    
         
            +
                  graph.add_data({
         
     | 
| 
      
 38 
     | 
    
         
            +
                  :data => actual,
         
     | 
| 
      
 39 
     | 
    
         
            +
                    :title => 'Actual',
         
     | 
| 
      
 40 
     | 
    
         
            +
                  })
         
     | 
| 
      
 41 
     | 
    
         
            +
             
     | 
| 
      
 42 
     | 
    
         
            +
                  out=graph.burn()
         
     | 
| 
      
 43 
     | 
    
         
            +
                  assert(out=~/Created with SVG::Graph/)
         
     | 
| 
      
 44 
     | 
    
         
            +
              end
         
     | 
| 
       38 
45 
     | 
    
         
             
              def test_default_plot_emits_polyline_connecting_data_points
         
     | 
| 
       39 
46 
     | 
    
         
             
                actual = [
         
     | 
| 
       40 
47 
     | 
    
         
             
                 0, 18,    8, 15,    9, 4,   18, 14,   10, 2,   11, 6,  14, 12,
         
     | 
| 
         @@ -57,7 +64,7 @@ class TestSvgGraphPlot < Test::Unit::TestCase 
     | 
|
| 
       57 
64 
     | 
    
         
             
                assert_match(/path.*class='line1'/, out)
         
     | 
| 
       58 
65 
     | 
    
         
             
              end
         
     | 
| 
       59 
66 
     | 
    
         | 
| 
       60 
     | 
    
         
            -
              def  
     | 
| 
      
 67 
     | 
    
         
            +
              def test_disabling_show_lines_does_not_emit_polyline_connecting_data_points
         
     | 
| 
       61 
68 
     | 
    
         
             
                actual = [
         
     | 
| 
       62 
69 
     | 
    
         
             
                 0, 18,    8, 15,    9, 4,   18, 14,   10, 2,   11, 6,  14, 12,
         
     | 
| 
       63 
70 
     | 
    
         
             
                 15, 6,   4, 17,   2, 12
         
     | 
| 
         @@ -80,7 +87,7 @@ class TestSvgGraphPlot < Test::Unit::TestCase 
     | 
|
| 
       80 
87 
     | 
    
         
             
                out=graph.burn()
         
     | 
| 
       81 
88 
     | 
    
         
             
                assert_no_match(/path class='line1' d='M.* L.*'/, out)
         
     | 
| 
       82 
89 
     | 
    
         
             
              end
         
     | 
| 
       83 
     | 
    
         
            -
              def  
     | 
| 
      
 90 
     | 
    
         
            +
              def test_popup_values_round_to_integer_by_default_in_popups
         
     | 
| 
       84 
91 
     | 
    
         
             
                actual = [
         
     | 
| 
       85 
92 
     | 
    
         
             
                 0.1, 18,    8.55, 15.1234,    9.09876765, 4,
         
     | 
| 
       86 
93 
     | 
    
         
             
                ]
         
     | 
| 
         @@ -107,7 +114,7 @@ class TestSvgGraphPlot < Test::Unit::TestCase 
     | 
|
| 
       107 
114 
     | 
    
         
             
                assert_no_match(/\(9.09876765, 4\)/, out)
         
     | 
| 
       108 
115 
     | 
    
         
             
                assert_match(/\(9, 4\)/, out)
         
     | 
| 
       109 
116 
     | 
    
         
             
              end
         
     | 
| 
       110 
     | 
    
         
            -
              def  
     | 
| 
      
 117 
     | 
    
         
            +
              def test_do_not_round_popup_values_shows_decimal_values_in_popups
         
     | 
| 
       111 
118 
     | 
    
         
             
                actual = [
         
     | 
| 
       112 
119 
     | 
    
         
             
                 0.1, 18,    8.55, 15.1234,    9.09876765, 4,
         
     | 
| 
       113 
120 
     | 
    
         
             
                ]
         
     | 
| 
         @@ -135,7 +142,7 @@ class TestSvgGraphPlot < Test::Unit::TestCase 
     | 
|
| 
       135 
142 
     | 
    
         
             
                assert_match(/\(9.09876765, 4\)/, out)
         
     | 
| 
       136 
143 
     | 
    
         
             
                assert_no_match(/\(9, 4\)/, out)
         
     | 
| 
       137 
144 
     | 
    
         
             
              end
         
     | 
| 
       138 
     | 
    
         
            -
              def  
     | 
| 
      
 145 
     | 
    
         
            +
              def test_description_is_shown_in_popups_if_provided
         
     | 
| 
       139 
146 
     | 
    
         
             
                actual = [
         
     | 
| 
       140 
147 
     | 
    
         
             
                 8.55, 15.1234,    9.09876765, 4,     0.1, 18,
         
     | 
| 
       141 
148 
     | 
    
         
             
                ]
         
     | 
| 
         @@ -167,4 +174,106 @@ class TestSvgGraphPlot < Test::Unit::TestCase 
     | 
|
| 
       167 
174 
     | 
    
         
             
                assert_match(/\(0.1, 18, third\)/, out)
         
     | 
| 
       168 
175 
     | 
    
         
             
                assert_no_match(/\(0.1, 18\)/, out)
         
     | 
| 
       169 
176 
     | 
    
         
             
              end
         
     | 
| 
      
 177 
     | 
    
         
            +
              def test_combine_different_shapes_based_on_description
         
     | 
| 
      
 178 
     | 
    
         
            +
                actual = [
         
     | 
| 
      
 179 
     | 
    
         
            +
                 8.55, 15.1234,         9.09876765, 4,                  2.1, 18,
         
     | 
| 
      
 180 
     | 
    
         
            +
                ]
         
     | 
| 
      
 181 
     | 
    
         
            +
                description = [
         
     | 
| 
      
 182 
     | 
    
         
            +
                 'one is a circle',     'two is a rectangle',           'three is a rectangle with strikethrough',
         
     | 
| 
      
 183 
     | 
    
         
            +
                ]
         
     | 
| 
      
 184 
     | 
    
         
            +
             
     | 
| 
      
 185 
     | 
    
         
            +
                DataPoint.configure_shape_criteria(
         
     | 
| 
      
 186 
     | 
    
         
            +
                  [/^t.*/, lambda{|x,y,line| ['polygon', {
         
     | 
| 
      
 187 
     | 
    
         
            +
                      "points" => "#{x-1.5},#{y+2.5} #{x+1.5},#{y+2.5} #{x+1.5},#{y-2.5} #{x-1.5},#{y-2.5}",
         
     | 
| 
      
 188 
     | 
    
         
            +
                      "class" => "dataPoint#{line}"
         
     | 
| 
      
 189 
     | 
    
         
            +
                    }]
         
     | 
| 
      
 190 
     | 
    
         
            +
                  }],
         
     | 
| 
      
 191 
     | 
    
         
            +
                  [/^three.*/, lambda{|x,y,line| ['line', {
         
     | 
| 
      
 192 
     | 
    
         
            +
                      "x1" => "#{x-4}",
         
     | 
| 
      
 193 
     | 
    
         
            +
                      "y1" => y.to_s,
         
     | 
| 
      
 194 
     | 
    
         
            +
                      "x2" => "#{x+4}",
         
     | 
| 
      
 195 
     | 
    
         
            +
                      "y2" => y.to_s,
         
     | 
| 
      
 196 
     | 
    
         
            +
                      "class" => "axis"
         
     | 
| 
      
 197 
     | 
    
         
            +
                    }]
         
     | 
| 
      
 198 
     | 
    
         
            +
                  }]
         
     | 
| 
      
 199 
     | 
    
         
            +
                )
         
     | 
| 
      
 200 
     | 
    
         
            +
                graph = SVG::Graph::Plot.new({
         
     | 
| 
      
 201 
     | 
    
         
            +
                  :height => 500,
         
     | 
| 
      
 202 
     | 
    
         
            +
                  :width => 300,
         
     | 
| 
      
 203 
     | 
    
         
            +
                  :key => true,
         
     | 
| 
      
 204 
     | 
    
         
            +
                  :scale_x_integers => true,
         
     | 
| 
      
 205 
     | 
    
         
            +
                  :scale_y_integers => true,
         
     | 
| 
      
 206 
     | 
    
         
            +
                  :add_popups => true,
         
     | 
| 
      
 207 
     | 
    
         
            +
                  :round_popups => false,
         
     | 
| 
      
 208 
     | 
    
         
            +
                })
         
     | 
| 
      
 209 
     | 
    
         
            +
             
     | 
| 
      
 210 
     | 
    
         
            +
                graph.add_data({
         
     | 
| 
      
 211 
     | 
    
         
            +
                  :data => actual,
         
     | 
| 
      
 212 
     | 
    
         
            +
                  :title => 'Actual',
         
     | 
| 
      
 213 
     | 
    
         
            +
                  :description => description,
         
     | 
| 
      
 214 
     | 
    
         
            +
                })
         
     | 
| 
      
 215 
     | 
    
         
            +
             
     | 
| 
      
 216 
     | 
    
         
            +
                out=graph.burn()
         
     | 
| 
      
 217 
     | 
    
         
            +
                assert_match(/polygon.*points/, out)
         
     | 
| 
      
 218 
     | 
    
         
            +
                assert_match(/line.*axis/, out)
         
     | 
| 
      
 219 
     | 
    
         
            +
              end
         
     | 
| 
      
 220 
     | 
    
         
            +
              def test_popup_radius_is_10_by_default
         
     | 
| 
      
 221 
     | 
    
         
            +
                actual = [
         
     | 
| 
      
 222 
     | 
    
         
            +
                 1, 1,    5, 5,     10, 10,
         
     | 
| 
      
 223 
     | 
    
         
            +
                ]
         
     | 
| 
      
 224 
     | 
    
         
            +
                description = [
         
     | 
| 
      
 225 
     | 
    
         
            +
                 'first',    'second',          'third',
         
     | 
| 
      
 226 
     | 
    
         
            +
                ]
         
     | 
| 
      
 227 
     | 
    
         
            +
             
     | 
| 
      
 228 
     | 
    
         
            +
                graph = SVG::Graph::Plot.new({
         
     | 
| 
      
 229 
     | 
    
         
            +
                  :height => 500,
         
     | 
| 
      
 230 
     | 
    
         
            +
                  :width => 300,
         
     | 
| 
      
 231 
     | 
    
         
            +
                  :key => true,
         
     | 
| 
      
 232 
     | 
    
         
            +
                  :scale_x_integers => true,
         
     | 
| 
      
 233 
     | 
    
         
            +
                  :scale_y_integers => true,
         
     | 
| 
      
 234 
     | 
    
         
            +
                  :add_popups => true,
         
     | 
| 
      
 235 
     | 
    
         
            +
                  :round_popups => false,
         
     | 
| 
      
 236 
     | 
    
         
            +
                })
         
     | 
| 
      
 237 
     | 
    
         
            +
             
     | 
| 
      
 238 
     | 
    
         
            +
                graph.add_data({
         
     | 
| 
      
 239 
     | 
    
         
            +
                  :data => actual,
         
     | 
| 
      
 240 
     | 
    
         
            +
                  :title => 'Actual',
         
     | 
| 
      
 241 
     | 
    
         
            +
                  :description => description,
         
     | 
| 
      
 242 
     | 
    
         
            +
                })
         
     | 
| 
      
 243 
     | 
    
         
            +
             
     | 
| 
      
 244 
     | 
    
         
            +
                out=graph.burn()
         
     | 
| 
      
 245 
     | 
    
         
            +
                assert_match(/circle .* r='10'/, out)
         
     | 
| 
      
 246 
     | 
    
         
            +
                assert_match(/circle .* onmouseover=.*/, out)
         
     | 
| 
      
 247 
     | 
    
         
            +
                
         
     | 
| 
      
 248 
     | 
    
         
            +
              end
         
     | 
| 
      
 249 
     | 
    
         
            +
              def test_popup_radius_is_overridable
         
     | 
| 
      
 250 
     | 
    
         
            +
                actual = [
         
     | 
| 
      
 251 
     | 
    
         
            +
                 1, 1,    5, 5,     10, 10,
         
     | 
| 
      
 252 
     | 
    
         
            +
                ]
         
     | 
| 
      
 253 
     | 
    
         
            +
                description = [
         
     | 
| 
      
 254 
     | 
    
         
            +
                 'first',    'second',          'third',
         
     | 
| 
      
 255 
     | 
    
         
            +
                ]
         
     | 
| 
      
 256 
     | 
    
         
            +
             
     | 
| 
      
 257 
     | 
    
         
            +
                graph = SVG::Graph::Plot.new({
         
     | 
| 
      
 258 
     | 
    
         
            +
                  :height => 500,
         
     | 
| 
      
 259 
     | 
    
         
            +
                  :width => 300,
         
     | 
| 
      
 260 
     | 
    
         
            +
                  :key => true,
         
     | 
| 
      
 261 
     | 
    
         
            +
                  :scale_x_integers => true,
         
     | 
| 
      
 262 
     | 
    
         
            +
                  :scale_y_integers => true,
         
     | 
| 
      
 263 
     | 
    
         
            +
                  :add_popups => true,
         
     | 
| 
      
 264 
     | 
    
         
            +
                  :round_popups => false,
         
     | 
| 
      
 265 
     | 
    
         
            +
                  :popup_radius => 1.23
         
     | 
| 
      
 266 
     | 
    
         
            +
                })
         
     | 
| 
      
 267 
     | 
    
         
            +
             
     | 
| 
      
 268 
     | 
    
         
            +
                graph.add_data({
         
     | 
| 
      
 269 
     | 
    
         
            +
                  :data => actual,
         
     | 
| 
      
 270 
     | 
    
         
            +
                  :title => 'Actual',
         
     | 
| 
      
 271 
     | 
    
         
            +
                  :description => description,
         
     | 
| 
      
 272 
     | 
    
         
            +
                })
         
     | 
| 
      
 273 
     | 
    
         
            +
             
     | 
| 
      
 274 
     | 
    
         
            +
                out=graph.burn()
         
     | 
| 
      
 275 
     | 
    
         
            +
                assert_match(/circle .* r='1.23'/, out)
         
     | 
| 
      
 276 
     | 
    
         
            +
                assert_match(/circle .* onmouseover=.*/, out)
         
     | 
| 
      
 277 
     | 
    
         
            +
                
         
     | 
| 
      
 278 
     | 
    
         
            +
              end
         
     | 
| 
       170 
279 
     | 
    
         
             
            end
         
     | 
    
        data/test/test_svg_graph.rb
    CHANGED
    
    | 
         @@ -1,24 +1,25 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            $: << File.dirname(__FILE__) + '/../lib'
         
     | 
| 
       2 
2 
     | 
    
         
             
            require "test/unit"
         
     | 
| 
       3 
3 
     | 
    
         
             
            require "svggraph"
         
     | 
| 
      
 4 
     | 
    
         
            +
            require "SVG/Graph/DataPoint"
         
     | 
| 
       4 
5 
     | 
    
         | 
| 
       5 
6 
     | 
    
         
             
            class TestSvgGraph < Test::Unit::TestCase
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
             
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
      
 7 
     | 
    
         
            +
              def test_bar_line_and_pie
         
     | 
| 
      
 8 
     | 
    
         
            +
                  fields = %w(Jan Feb Mar);
         
     | 
| 
      
 9 
     | 
    
         
            +
                  data_sales_02 = [12, 45, 21]
         
     | 
| 
      
 10 
     | 
    
         
            +
                  [SVG::Graph::Bar, SVG::Graph::BarHorizontal, SVG::Graph::Line, SVG::Graph::Pie].each do
         
     | 
| 
      
 11 
     | 
    
         
            +
                      |klass|
         
     | 
| 
      
 12 
     | 
    
         
            +
                      graph = klass.new(
         
     | 
| 
      
 13 
     | 
    
         
            +
                      :height => 500,
         
     | 
| 
      
 14 
     | 
    
         
            +
                      :width => 300,
         
     | 
| 
      
 15 
     | 
    
         
            +
                      :fields => fields
         
     | 
| 
      
 16 
     | 
    
         
            +
                      )
         
     | 
| 
      
 17 
     | 
    
         
            +
                      graph.add_data(
         
     | 
| 
      
 18 
     | 
    
         
            +
                      :data => data_sales_02,
         
     | 
| 
      
 19 
     | 
    
         
            +
                      :title => 'Sales 2002'
         
     | 
| 
      
 20 
     | 
    
         
            +
                      )
         
     | 
| 
      
 21 
     | 
    
         
            +
                      out=graph.burn
         
     | 
| 
      
 22 
     | 
    
         
            +
                      assert(out=~/Created with SVG::Graph/)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
       24 
25 
     | 
    
         
             
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,8 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: svg-graph
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
               
     | 
| 
       5 
     | 
    
         
            -
               
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 31
         
     | 
| 
      
 5 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 6 
     | 
    
         
            +
              segments: 
         
     | 
| 
      
 7 
     | 
    
         
            +
              - 1
         
     | 
| 
      
 8 
     | 
    
         
            +
              - 0
         
     | 
| 
      
 9 
     | 
    
         
            +
              - 4
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 1.0.4
         
     | 
| 
       6 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       7 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       8 
13 
     | 
    
         
             
            - Sean Russell
         
     | 
| 
         @@ -34,7 +39,7 @@ cert_chain: 
     | 
|
| 
       34 
39 
     | 
    
         
             
              rpP0jjs0
         
     | 
| 
       35 
40 
     | 
    
         
             
              -----END CERTIFICATE-----
         
     | 
| 
       36 
41 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
            date: 2011- 
     | 
| 
      
 42 
     | 
    
         
            +
            date: 2011-10-03 00:00:00 -03:00
         
     | 
| 
       38 
43 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       39 
44 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       40 
45 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -45,12 +50,17 @@ dependencies: 
     | 
|
| 
       45 
50 
     | 
    
         
             
                requirements: 
         
     | 
| 
       46 
51 
     | 
    
         
             
                - - ">="
         
     | 
| 
       47 
52 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
      
 53 
     | 
    
         
            +
                    hash: 47
         
     | 
| 
      
 54 
     | 
    
         
            +
                    segments: 
         
     | 
| 
      
 55 
     | 
    
         
            +
                    - 2
         
     | 
| 
      
 56 
     | 
    
         
            +
                    - 8
         
     | 
| 
      
 57 
     | 
    
         
            +
                    - 0
         
     | 
| 
       48 
58 
     | 
    
         
             
                    version: 2.8.0
         
     | 
| 
       49 
59 
     | 
    
         
             
              type: :development
         
     | 
| 
       50 
60 
     | 
    
         
             
              version_requirements: *id001
         
     | 
| 
       51 
61 
     | 
    
         
             
            description: |-
         
     | 
| 
       52 
     | 
    
         
            -
              This is a 
     | 
| 
       53 
     | 
    
         
            -
              
         
     | 
| 
      
 62 
     | 
    
         
            +
              This is a  revision of the [SVG::Graph library](http://www.germane-software.com/software/SVG/SVG::Graph/) by Sean Russell with touch-ups to make it run on Ruby 1.9.x and be gem-installable. See History.txt for other changes
         
     | 
| 
      
 63 
     | 
    
         
            +
              
         
     | 
| 
       54 
64 
     | 
    
         
             
              SVG:::Graph is a pure Ruby library for generating charts, which are a type of graph where the values of one axis are not scalar. SVG::Graph has a verry similar API to the Perl library SVG::TT::Graph, and the resulting charts also look the same. This isn't surprising, because SVG::Graph started as a loose port of SVG::TT::Graph, although the internal code no longer resembles the Perl original at all.
         
     | 
| 
       55 
65 
     | 
    
         
             
            email: 
         
     | 
| 
       56 
66 
     | 
    
         
             
            - ser_AT_germane-software.com
         
     | 
| 
         @@ -102,6 +112,7 @@ files: 
     | 
|
| 
       102 
112 
     | 
    
         
             
            - lib/SVG/Graph/Bar.rb
         
     | 
| 
       103 
113 
     | 
    
         
             
            - lib/SVG/Graph/BarBase.rb
         
     | 
| 
       104 
114 
     | 
    
         
             
            - lib/SVG/Graph/BarHorizontal.rb
         
     | 
| 
      
 115 
     | 
    
         
            +
            - lib/SVG/Graph/DataPoint.rb
         
     | 
| 
       105 
116 
     | 
    
         
             
            - lib/SVG/Graph/Graph.rb
         
     | 
| 
       106 
117 
     | 
    
         
             
            - lib/SVG/Graph/Line.rb
         
     | 
| 
       107 
118 
     | 
    
         
             
            - lib/SVG/Graph/Pie.rb
         
     | 
| 
         @@ -119,11 +130,12 @@ files: 
     | 
|
| 
       119 
130 
     | 
    
         
             
            - test/schedule.rb
         
     | 
| 
       120 
131 
     | 
    
         
             
            - test/single.rb
         
     | 
| 
       121 
132 
     | 
    
         
             
            - test/test.rb
         
     | 
| 
      
 133 
     | 
    
         
            +
            - test/test_data_point.rb
         
     | 
| 
      
 134 
     | 
    
         
            +
            - test/test_plot.rb
         
     | 
| 
       122 
135 
     | 
    
         
             
            - test/test_svg_graph.rb
         
     | 
| 
       123 
136 
     | 
    
         
             
            - test/timeseries.rb
         
     | 
| 
       124 
     | 
    
         
            -
            - test/test_plot.rb
         
     | 
| 
       125 
137 
     | 
    
         
             
            has_rdoc: true
         
     | 
| 
       126 
     | 
    
         
            -
            homepage: http://www.germane-software.com/software/SVG/SVG::Graph/
         
     | 
| 
      
 138 
     | 
    
         
            +
            homepage: http://www.germane-software.com/software/SVG/SVG::Graph/
         
     | 
| 
       127 
139 
     | 
    
         
             
            licenses: []
         
     | 
| 
       128 
140 
     | 
    
         | 
| 
       129 
141 
     | 
    
         
             
            post_install_message: 
         
     | 
| 
         @@ -137,20 +149,27 @@ required_ruby_version: !ruby/object:Gem::Requirement 
     | 
|
| 
       137 
149 
     | 
    
         
             
              requirements: 
         
     | 
| 
       138 
150 
     | 
    
         
             
              - - ">="
         
     | 
| 
       139 
151 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 152 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 153 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 154 
     | 
    
         
            +
                  - 0
         
     | 
| 
       140 
155 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       141 
156 
     | 
    
         
             
            required_rubygems_version: !ruby/object:Gem::Requirement 
         
     | 
| 
       142 
157 
     | 
    
         
             
              none: false
         
     | 
| 
       143 
158 
     | 
    
         
             
              requirements: 
         
     | 
| 
       144 
159 
     | 
    
         
             
              - - ">="
         
     | 
| 
       145 
160 
     | 
    
         
             
                - !ruby/object:Gem::Version 
         
     | 
| 
      
 161 
     | 
    
         
            +
                  hash: 3
         
     | 
| 
      
 162 
     | 
    
         
            +
                  segments: 
         
     | 
| 
      
 163 
     | 
    
         
            +
                  - 0
         
     | 
| 
       146 
164 
     | 
    
         
             
                  version: "0"
         
     | 
| 
       147 
165 
     | 
    
         
             
            requirements: []
         
     | 
| 
       148 
166 
     | 
    
         | 
| 
       149 
167 
     | 
    
         
             
            rubyforge_project: ruby-statsample
         
     | 
| 
       150 
     | 
    
         
            -
            rubygems_version: 1. 
     | 
| 
      
 168 
     | 
    
         
            +
            rubygems_version: 1.3.7
         
     | 
| 
       151 
169 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       152 
170 
     | 
    
         
             
            specification_version: 3
         
     | 
| 
       153 
     | 
    
         
            -
            summary: This is a minor revision of the [SVG::Graph library](http://www.germane-software.com/software/SVG/SVG::Graph/) by Sean Russell with few minor touch-ups to make it run on Ruby 1.9.x and to have it gem-installable
         
     | 
| 
       154 
171 
     | 
    
         | 
| 
       155 
172 
     | 
    
         
             
            SVG:::Graph is a pure Ruby library for generating charts, which are a type of graph where the values of one axis are not scalar
         
     | 
| 
      
 173 
     | 
    
         
            +
            summary: This is a  revision of the [SVG::Graph library](http://www.germane-software.com/software/SVG/SVG::Graph/) by Sean Russell with touch-ups to make it run on Ruby 1.9.x and be gem-installable
         
     | 
| 
       156 
174 
     | 
    
         
             
            test_files: 
         
     | 
| 
      
 175 
     | 
    
         
            +
            - test/test_data_point.rb
         
     | 
| 
       157 
176 
     | 
    
         
             
            - test/test_svg_graph.rb
         
     | 
| 
       158 
177 
     | 
    
         
             
            - test/test_plot.rb
         
     | 
    
        metadata.gz.sig
    CHANGED
    
    | 
         @@ -1,2 +1,3 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
             
     | 
| 
       2 
     | 
    
         
            -
            � 
     | 
| 
       3 
     | 
    
         
            -
            � 
     | 
| 
      
 1 
     | 
    
         
            +
            D����5O�,R��Xd�*p�F����҆
         
     | 
| 
      
 2 
     | 
    
         
            +
            �b�1��0��B��b|�v�,V�\�gw�r�mJ�G2�B=���q��>���8�K4o�� �6mD9�� �x�`{��;�d�SP� �6
         
     | 
| 
      
 3 
     | 
    
         
            +
            �6��;��^��H���
         
     |