pbosetti-flotr 1.3.4 → 1.3.5

Sign up to get free protection for your applications and to get access to all the features.
data/README.markdown CHANGED
@@ -18,12 +18,11 @@ The following code produces the flotr.html file located in the root project fold
18
18
 
19
19
  # Push data into the two series
20
20
  100.times do |i|
21
- sin.data << [i, Math::sin(Math::PI / 100 * i)]
22
- cos.data << [i, Math::cos(Math::PI / 100 * i)]
21
+ sin << [i, Math::sin(Math::PI / 100 * i)]
22
+ cos << [i, Math::cos(Math::PI / 100 * i)]
23
23
  end
24
24
 
25
- plot << sin
26
- plot << cos
25
+ plot << sin << cos
27
26
  plot.show
28
27
 
29
28
  At the moment, the Flotr::Plot.plot method automatically opens the plot within a browser window under OS X and Windows. On other platforms (Linux) you have to open the generated file by hands.
data/examples/sincos.rb CHANGED
@@ -10,8 +10,8 @@ sin = Flotr::Data.new(:label => "Sin(x)", :color => "red")
10
10
  cos = Flotr::Data.new(:label => "Cos(x)", :color => "blue")
11
11
 
12
12
  100.times do |i|
13
- cos.data << [i, Math::cos(Math::PI / 100 * i)]
14
- sin.data << [i, Math::sin(Math::PI / 100 * i)]
13
+ cos << [i, Math::cos(Math::PI / 100 * i)]
14
+ sin << [i, Math::sin(Math::PI / 100 * i)]
15
15
  end
16
16
 
17
17
  plot = Flotr::Plot.new("Test plot")
data/lib/flotr.rb CHANGED
@@ -13,16 +13,28 @@ class String
13
13
  end
14
14
  end
15
15
 
16
+ =begin rdoc
17
+ Flotr namespace.
18
+ =end
16
19
  module Flotr
17
20
  BASENAME = File.dirname(__FILE__)
18
21
  OUTPUT_FILE = "flotr.html"
19
22
  STD_TEMPLATE = "zooming.rhtml"
20
23
 
24
+
25
+ =begin rdoc
26
+ Series to be plotted are instance of the Flotr::Data class. Initialize a new
27
+ Data object with a set of OPTIONS, then add points with the << method.
28
+ =end
21
29
  class Data
22
30
  OPTIONS = [:color, :label, :lines, :bars, :points, :hints, :shadowSize]
23
31
  attr_accessor *OPTIONS
24
32
  attr_accessor :data
25
33
 
34
+ =begin rdoc
35
+ Creates a new serie of points. opts is a Hash with a subset of the keys
36
+ given in OPTIONS.
37
+ =end
26
38
  def initialize(opts={})
27
39
  @data = []
28
40
  opts.each do |k,v|
@@ -34,6 +46,9 @@ module Flotr
34
46
  end
35
47
  end
36
48
 
49
+ =begin rdoc
50
+ Provides a JavaScript-formatted description of the data array.
51
+ =end
37
52
  def inspect
38
53
  options = ""
39
54
  OPTIONS.each do |o|
@@ -44,17 +59,32 @@ module Flotr
44
59
  "{ #{options}data: #{@data.inspect}}"
45
60
  end
46
61
 
62
+ =begin rdoc
63
+ Adds other to the data array. other must be a two element array like [0,0].
64
+ =end
47
65
  def <<(other)
66
+ other = other.to_a
67
+ raise ArgumentError unless other[0].kind_of? Numeric
68
+ raise ArgumentError unless other[1].kind_of? Numeric
48
69
  @data << other
49
70
  end
50
71
 
51
72
  end
52
73
 
74
+ =begin rdoc
75
+ The Plot object. Serves as a container for the data series (Data objects)
76
+ and for the plot options. Call the plot/show methods to generate the
77
+ plot file Flotr::OUTPUT_FILE.
78
+ =end
53
79
  class Plot
54
80
  attr_accessor :series, :title, :comment, :template, :options
55
81
  attr_accessor :width, :height
56
82
  attr_accessor :label, :xlim, :ylim
57
83
 
84
+ =begin rdoc
85
+ Creates a new plot. You only have to provide a title for the plot, that
86
+ will (probably) be used as a page title by the active template.
87
+ =end
58
88
  def initialize(title = "Flotr Plot")
59
89
  @title = title
60
90
  @template = "#{BASENAME}/#{STD_TEMPLATE}"
@@ -64,14 +94,28 @@ module Flotr
64
94
  @label = @xlim = @ylim = {}
65
95
  end
66
96
 
97
+ =begin rdoc
98
+ Lists the available standard templates. These are .rhtml files located in
99
+ the lib floder inside the gem. The extension .rhtml is dropped.
100
+ =end
67
101
  def std_templates
68
102
  Dir.glob("#{BASENAME}/*.rhtml").map {|f| File.basename(f, ".rhtml")}
69
103
  end
70
104
 
105
+ =begin rdoc
106
+ Selects the active template. It has to be one of those included in the
107
+ result of the std_templates method.
108
+ =end
71
109
  def std_template=(template)
110
+ raise "Template #{template} does not exist!" unless self.std_templates.include?(template)
72
111
  @template = "#{BASENAME}/#{template}.rhtml"
73
112
  end
74
-
113
+
114
+ =begin rdoc
115
+ Returns the currently selected standard template, or nil if the active
116
+ template is a custom one. Use Plot#template=(full/path/to/template.rhtml)
117
+ to set a custom template.
118
+ =end
75
119
  def std_template
76
120
  if File.dirname(@template) == BASENAME
77
121
  File.basename(@template, ".rhtml")
@@ -80,6 +124,10 @@ module Flotr
80
124
  end
81
125
  end
82
126
 
127
+ =begin rdoc
128
+ Generates the html file containing the plot and fires up a preferred
129
+ browser window with the plot loaded.
130
+ =end
83
131
  def plot
84
132
  eruby = Erubis::Eruby.new(File.read(@template))
85
133
  File.open(OUTPUT_FILE, 'w') do |f|
@@ -97,6 +145,10 @@ module Flotr
97
145
 
98
146
  alias show plot
99
147
 
148
+ =begin rdoc
149
+ Adds a Data serie to the Plot. It also returns self, so multiple calls
150
+ can be concatenated as in plot << series1 << series2 << series3.
151
+ =end
100
152
  def <<(serie)
101
153
  if serie.instance_of? Data
102
154
  @series << serie
@@ -105,6 +157,9 @@ module Flotr
105
157
  end
106
158
  end
107
159
 
160
+ =begin rdoc
161
+ Provides a JavaScript-formatted description of the all the series.
162
+ =end
108
163
  def inspect
109
164
  data = @series.map {|s| s.inspect}
110
165
  "[ #{data*', '} ]"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pbosetti-flotr
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.4
4
+ version: 1.3.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paolo Bosetti
@@ -41,7 +41,7 @@ files:
41
41
  - lib/layout.css
42
42
  - lib/zooming.rhtml
43
43
  - examples/sincos.rb
44
- has_rdoc: false
44
+ has_rdoc: true
45
45
  homepage: http://github.com/pbosetti/flotr
46
46
  post_install_message:
47
47
  rdoc_options: