ruport 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -23,7 +23,7 @@ end
23
23
 
24
24
  spec = Gem::Specification.new do |spec|
25
25
  spec.name = LEAN ? "lean-ruport" : "ruport"
26
- spec.version = "0.8.1"
26
+ spec.version = "0.8.2"
27
27
  spec.platform = Gem::Platform::RUBY
28
28
  spec.summary = "A generalized Ruby report generation and templating engine."
29
29
  spec.files = Dir.glob("{examples,lib,test,bin}/**/**/*") +
@@ -0,0 +1,38 @@
1
+ require "ruport"
2
+ table = Table(%w[jan feb mar apr may jun jul]) do |t|
3
+ t << [5,7,9,12,14,16,18]
4
+ t << [21,3,8,19,13,15,1]
5
+ end
6
+
7
+ table[0].tag :ghosts
8
+ table[1].tag "pirates"
9
+
10
+ results = Ruport::Renderer::Graph.render_svg do |r|
11
+
12
+ r.data = table
13
+
14
+ r.options.title = "Simple Line Graph"
15
+
16
+ r.layout do |l|
17
+ l.width = 700
18
+ l.height = 500
19
+ l.theme = r.plugin.themes[:keynote]
20
+ l.style = :line
21
+ end
22
+ end
23
+
24
+ File.open("line_graph.svg","w") { |f| f << results }
25
+
26
+ PAGE = <<-END_HTML
27
+ <html>
28
+ <body>
29
+ <embed
30
+ src="line_graph.svg"
31
+ width="700"
32
+ height="500"
33
+ />
34
+ </body>
35
+ <html>
36
+ END_HTML
37
+
38
+ File.open("line_graph.html","w") { |f| f << PAGE }
data/lib/ruport.rb CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  module Ruport
14
14
 
15
- VERSION = "0.8.1"
15
+ VERSION = "0.8.2"
16
16
 
17
17
  # This method is Ruport's logging and error interface. It can generate
18
18
  # warnings or raise fatal errors, logging +message+ to the file defined by
@@ -184,21 +184,37 @@ module Ruport::Format
184
184
  pdf_writer.add_object(wm, :all_pages)
185
185
  end
186
186
  end
187
-
188
- def move_cursor(n)
189
- pdf_writer.y += n
187
+
188
+ # moves the PDF::Writer cursor by dy points
189
+ # NOTE: In PDF::Writer, 0 is at the bottom of the page.
190
+ def move_cursor(dy)
191
+ pdf_writer.y += dy
190
192
  end
191
193
 
192
- def move_cursor_to(n)
193
- pdf_writer.y = n
194
+ # moves the PDF::Writer cursor to the y position specified
195
+ def move_cursor_to(y)
196
+ pdf_writer.y = y
194
197
  end
195
198
 
196
- def pad(y,&block)
197
- move_cursor -y
199
+ # moves the cursor down by dy, executes the block, and moves the cursor
200
+ # again.
201
+ #
202
+ # Example:
203
+ #
204
+ # # Add a padding of 5 to a text element
205
+ #
206
+ # pad(5) { add_text "hello" }
207
+ #
208
+ def pad(dy,&block)
209
+ move_cursor -dy
198
210
  block.call
199
- move_cursor -y
211
+ move_cursor -dy
200
212
  end
201
213
 
214
+ # Used by Renderer::Table to draw a SimpleTable.
215
+ # table_width, max_table_width and orientation can all be set via the
216
+ # <tt>layout</tt> object
217
+ #
202
218
  def draw_table
203
219
  m = "Sorry, cant build PDFs from array like things (yet)"
204
220
  raise m if data.column_names.empty?
@@ -35,13 +35,12 @@ module Ruport::Format
35
35
  @graph.title ||= options.title
36
36
  @graph.theme = layout.theme if layout.theme
37
37
  @graph.point_markers ||= data.column_names
38
-
39
38
  end
40
39
 
41
40
  # Generates an SVG using Scruffy.
42
41
  def build_graph
43
42
  data.each_with_index do |r,i|
44
- add_line(r.to_a,r.tags.to_a[0] || "series #{i+1}")
43
+ add_line(r.to_a,r.tags.to_a[0].to_s || "series #{i+1}")
45
44
  end
46
45
 
47
46
  output << @graph.render(:size => [layout.width, layout.height])
@@ -69,8 +69,11 @@ module Ruport
69
69
 
70
70
  # Truncates a string so that it does not exceed Text#width
71
71
  def fit_to_width(s)
72
+ # workaround for Rails setting terminal_width to 1
73
+ width < 2 ? max_width = 80 : max_width = width
74
+
72
75
  s.split("\n").each { |r|
73
- r.gsub!(/\A.{#{width+1},}/) { |m| m[0,width-2] + ">>" }
76
+ r.gsub!(/\A.{#{max_width+1},}/) { |m| m[0,max_width-2] + ">>" }
74
77
  }.join("\n") + "\n"
75
78
  end
76
79
 
@@ -38,9 +38,7 @@ module Ruport
38
38
  end
39
39
 
40
40
  prepare :graph
41
-
42
41
  stage :graph
43
-
44
42
  finalize :graph
45
43
 
46
44
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.1
2
+ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: ruport
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.8.1
7
- date: 2007-02-08 00:00:00 -05:00
6
+ version: 0.8.2
7
+ date: 2007-02-11 00:00:00 -05:00
8
8
  summary: A generalized Ruby report generation and templating engine.
9
9
  require_paths:
10
10
  - lib
@@ -29,126 +29,127 @@ post_install_message:
29
29
  authors:
30
30
  - Gregory Brown
31
31
  files:
32
+ - examples/rope_examples
33
+ - examples/RWEmerson.jpg
32
34
  - examples/centered_pdf_text_box.rb
33
- - examples/invoice.rb
34
- - examples/invoice_report.rb
35
35
  - examples/line_plotter.rb
36
+ - examples/invoice_report.rb
37
+ - examples/line_graph.rb
36
38
  - examples/pdf_complex_report.rb
39
+ - examples/invoice.rb
37
40
  - examples/pdf_table_with_title.rb
38
- - examples/rope_examples
39
- - examples/RWEmerson.jpg
40
- - examples/rope_examples/itunes
41
41
  - examples/rope_examples/sales_report
42
- - examples/rope_examples/itunes/config
43
- - examples/rope_examples/itunes/data
44
- - examples/rope_examples/itunes/lib
45
- - examples/rope_examples/itunes/log
46
- - examples/rope_examples/itunes/output
47
- - examples/rope_examples/itunes/Rakefile
48
- - examples/rope_examples/itunes/README
49
- - examples/rope_examples/itunes/sql
50
- - examples/rope_examples/itunes/templates
51
- - examples/rope_examples/itunes/test
52
- - examples/rope_examples/itunes/util
53
- - examples/rope_examples/itunes/config/ruport_config.rb
54
- - examples/rope_examples/itunes/data/mix.txt
55
- - examples/rope_examples/itunes/lib/helpers.rb
56
- - examples/rope_examples/itunes/lib/init.rb
57
- - examples/rope_examples/itunes/lib/reports
58
- - examples/rope_examples/itunes/lib/reports.rb
59
- - examples/rope_examples/itunes/lib/reports/playlist.rb
60
- - examples/rope_examples/itunes/log/ruport.log
61
- - examples/rope_examples/itunes/test/test_playlist.rb
62
- - examples/rope_examples/itunes/util/build
63
- - examples/rope_examples/itunes/util/sql_exec
42
+ - examples/rope_examples/itunes
43
+ - examples/rope_examples/sales_report/sql
44
+ - examples/rope_examples/sales_report/test
45
+ - examples/rope_examples/sales_report/output
46
+ - examples/rope_examples/sales_report/log
64
47
  - examples/rope_examples/sales_report/config
65
- - examples/rope_examples/sales_report/data
66
48
  - examples/rope_examples/sales_report/lib
67
- - examples/rope_examples/sales_report/log
68
- - examples/rope_examples/sales_report/output
49
+ - examples/rope_examples/sales_report/data
50
+ - examples/rope_examples/sales_report/util
51
+ - examples/rope_examples/sales_report/templates
69
52
  - examples/rope_examples/sales_report/Rakefile
70
53
  - examples/rope_examples/sales_report/README
71
- - examples/rope_examples/sales_report/sql
72
- - examples/rope_examples/sales_report/templates
73
- - examples/rope_examples/sales_report/test
74
- - examples/rope_examples/sales_report/util
54
+ - examples/rope_examples/sales_report/test/test_sales.rb
55
+ - examples/rope_examples/sales_report/output/books.pdf
56
+ - examples/rope_examples/sales_report/output/books.txt
57
+ - examples/rope_examples/sales_report/log/ruport.log
75
58
  - examples/rope_examples/sales_report/config/ruport_config.rb
76
- - examples/rope_examples/sales_report/lib/helpers.rb
77
- - examples/rope_examples/sales_report/lib/init.rb
78
59
  - examples/rope_examples/sales_report/lib/reports
79
60
  - examples/rope_examples/sales_report/lib/reports.rb
61
+ - examples/rope_examples/sales_report/lib/helpers.rb
62
+ - examples/rope_examples/sales_report/lib/init.rb
80
63
  - examples/rope_examples/sales_report/lib/reports/sales.rb
81
- - examples/rope_examples/sales_report/log/ruport.log
82
- - examples/rope_examples/sales_report/output/books.pdf
83
- - examples/rope_examples/sales_report/output/books.txt
84
- - examples/rope_examples/sales_report/test/test_sales.rb
85
64
  - examples/rope_examples/sales_report/util/build
86
65
  - examples/rope_examples/sales_report/util/sql_exec
66
+ - examples/rope_examples/itunes/sql
67
+ - examples/rope_examples/itunes/test
68
+ - examples/rope_examples/itunes/output
69
+ - examples/rope_examples/itunes/log
70
+ - examples/rope_examples/itunes/config
71
+ - examples/rope_examples/itunes/lib
72
+ - examples/rope_examples/itunes/data
73
+ - examples/rope_examples/itunes/util
74
+ - examples/rope_examples/itunes/templates
75
+ - examples/rope_examples/itunes/Rakefile
76
+ - examples/rope_examples/itunes/README
77
+ - examples/rope_examples/itunes/test/test_playlist.rb
78
+ - examples/rope_examples/itunes/log/ruport.log
79
+ - examples/rope_examples/itunes/config/ruport_config.rb
80
+ - examples/rope_examples/itunes/lib/reports
81
+ - examples/rope_examples/itunes/lib/reports.rb
82
+ - examples/rope_examples/itunes/lib/helpers.rb
83
+ - examples/rope_examples/itunes/lib/init.rb
84
+ - examples/rope_examples/itunes/lib/reports/playlist.rb
85
+ - examples/rope_examples/itunes/data/mix.txt
86
+ - examples/rope_examples/itunes/util/build
87
+ - examples/rope_examples/itunes/util/sql_exec
87
88
  - lib/ruport
88
- - lib/ruport.rb
89
89
  - lib/uport.rb
90
- - lib/ruport/attempt.rb
91
- - lib/ruport/config.rb
92
- - lib/ruport/data
93
- - lib/ruport/data.rb
90
+ - lib/ruport.rb
94
91
  - lib/ruport/format
95
- - lib/ruport/format.rb
96
- - lib/ruport/generator.rb
92
+ - lib/ruport/query
93
+ - lib/ruport/renderer
94
+ - lib/ruport/data
95
+ - lib/ruport/report
97
96
  - lib/ruport/layout
98
97
  - lib/ruport/layout.rb
99
- - lib/ruport/mailer.rb
100
- - lib/ruport/query
98
+ - lib/ruport/attempt.rb
99
+ - lib/ruport/generator.rb
100
+ - lib/ruport/format.rb
101
+ - lib/ruport/system_extensions.rb
101
102
  - lib/ruport/query.rb
102
- - lib/ruport/renderer
103
+ - lib/ruport/config.rb
103
104
  - lib/ruport/renderer.rb
104
- - lib/ruport/report
105
+ - lib/ruport/mailer.rb
106
+ - lib/ruport/data.rb
105
107
  - lib/ruport/report.rb
106
- - lib/ruport/system_extensions.rb
107
- - lib/ruport/data/groupable.rb
108
- - lib/ruport/data/record.rb
109
- - lib/ruport/data/table.rb
110
- - lib/ruport/data/taggable.rb
111
- - lib/ruport/format/csv.rb
112
- - lib/ruport/format/html.rb
113
108
  - lib/ruport/format/latex.rb
114
- - lib/ruport/format/pdf.rb
115
109
  - lib/ruport/format/plugin.rb
116
110
  - lib/ruport/format/svg.rb
117
- - lib/ruport/format/text.rb
118
111
  - lib/ruport/format/xml.rb
119
- - lib/ruport/layout/component.rb
112
+ - lib/ruport/format/html.rb
113
+ - lib/ruport/format/text.rb
114
+ - lib/ruport/format/pdf.rb
115
+ - lib/ruport/format/csv.rb
120
116
  - lib/ruport/query/sql_split.rb
121
117
  - lib/ruport/renderer/graph.rb
122
118
  - lib/ruport/renderer/table.rb
119
+ - lib/ruport/data/record.rb
120
+ - lib/ruport/data/groupable.rb
121
+ - lib/ruport/data/taggable.rb
122
+ - lib/ruport/data/table.rb
123
123
  - lib/ruport/report/graph.rb
124
- - test/_test_database.rb
124
+ - lib/ruport/layout/component.rb
125
125
  - test/samples
126
- - test/test_config.rb
127
- - test/test_format_text.rb
128
- - test/test_graph_renderer.rb
126
+ - test/test_record.rb
129
127
  - test/test_groupable.rb
130
- - test/test_mailer.rb
128
+ - test/test_table.rb
129
+ - test/test_graph_renderer.rb
130
+ - test/test_ruport.rb
131
+ - test/test_format_text.rb
132
+ - test/_test_database.rb
131
133
  - test/test_query.rb
132
- - test/test_record.rb
134
+ - test/test_config.rb
135
+ - test/test_taggable.rb
133
136
  - test/test_renderer.rb
134
- - test/test_report.rb
135
- - test/test_ruport.rb
137
+ - test/test_mailer.rb
136
138
  - test/test_sql_split.rb
137
- - test/test_table.rb
139
+ - test/test_report.rb
138
140
  - test/test_table_renderer.rb
139
- - test/test_taggable.rb
140
- - test/samples/addressbook.csv
141
+ - test/samples/test.yaml
142
+ - test/samples/query_test.sql
141
143
  - test/samples/data.csv
144
+ - test/samples/foo.rtxt
142
145
  - test/samples/data.tsv
143
- - test/samples/dates.csv
144
- - test/samples/document.xml
145
146
  - test/samples/erb_test.sql
146
- - test/samples/foo.rtxt
147
- - test/samples/query_test.sql
148
- - test/samples/ruport_test.sql
149
147
  - test/samples/stonecodeblog.sql
148
+ - test/samples/ruport_test.sql
149
+ - test/samples/addressbook.csv
150
+ - test/samples/dates.csv
151
+ - test/samples/document.xml
150
152
  - test/samples/test.sql
151
- - test/samples/test.yaml
152
153
  - bin/rope
153
154
  - Rakefile
154
155
  - setup.rb
@@ -157,20 +158,20 @@ files:
157
158
  - TODO
158
159
  - AUTHORS
159
160
  test_files:
160
- - test/test_config.rb
161
- - test/test_format_text.rb
162
- - test/test_graph_renderer.rb
161
+ - test/test_record.rb
163
162
  - test/test_groupable.rb
164
- - test/test_mailer.rb
163
+ - test/test_table.rb
164
+ - test/test_graph_renderer.rb
165
+ - test/test_ruport.rb
166
+ - test/test_format_text.rb
165
167
  - test/test_query.rb
166
- - test/test_record.rb
168
+ - test/test_config.rb
169
+ - test/test_taggable.rb
167
170
  - test/test_renderer.rb
168
- - test/test_report.rb
169
- - test/test_ruport.rb
171
+ - test/test_mailer.rb
170
172
  - test/test_sql_split.rb
171
- - test/test_table.rb
173
+ - test/test_report.rb
172
174
  - test/test_table_renderer.rb
173
- - test/test_taggable.rb
174
175
  rdoc_options:
175
176
  - --title
176
177
  - Ruport Documentation