ruport 1.2.2 → 1.2.3

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/Rakefile CHANGED
@@ -3,7 +3,7 @@ require "rake/testtask"
3
3
  require "rake/gempackagetask"
4
4
  #
5
5
 
6
- RUPORT_VERSION = "1.2.2"
6
+ RUPORT_VERSION = "1.2.3"
7
7
 
8
8
  begin
9
9
  require "rubygems"
@@ -54,7 +54,6 @@ end
54
54
 
55
55
  formats = [:html, :pdf]
56
56
  formats.each do |format|
57
- File.open("roadmap.#{format}","w") do |f|
58
- f << RoadmapRenderer.render(format, :image_file => "roadmap.png")
59
- end
57
+ RoadmapRenderer.render(format, :image_file => "roadmap.png",
58
+ :file => "roadmap.#{format}")
60
59
  end
@@ -12,7 +12,7 @@
12
12
 
13
13
  module Ruport #:nodoc:#
14
14
 
15
- VERSION = "1.2.2"
15
+ VERSION = "1.2.3"
16
16
 
17
17
  class FormatterError < RuntimeError #:nodoc:
18
18
  end
@@ -43,8 +43,7 @@ module Ruport
43
43
  apply_table_format_template(template.table_format)
44
44
  apply_grouping_format_template(template.grouping_format)
45
45
 
46
- options.format_options = template.format_options if
47
- template.format_options
46
+ options.format_options ||= template.format_options
48
47
  end
49
48
 
50
49
  # Generates table header by turning column_names into a CSV row.
@@ -122,16 +121,16 @@ module Ruport
122
121
  end
123
122
 
124
123
  def apply_table_format_template(t)
125
- t = t || {}
126
- options.show_table_headers = t[:show_headings] unless
127
- t[:show_headings].nil?
124
+ t = (t || {}).merge(options.table_format || {})
125
+ options.show_table_headers = t[:show_headings] if
126
+ options.show_table_headers.nil?
128
127
  end
129
128
 
130
129
  def apply_grouping_format_template(t)
131
- t = t || {}
132
- options.style = t[:style] if t[:style]
133
- options.show_group_headers = t[:show_headings] unless
134
- t[:show_headings].nil?
130
+ t = (t || {}).merge(options.grouping_format || {})
131
+ options.style ||= t[:style]
132
+ options.show_group_headers = t[:show_headings] if
133
+ options.show_group_headers.nil?
135
134
  end
136
135
 
137
136
  end
@@ -148,16 +148,16 @@ module Ruport
148
148
  end
149
149
 
150
150
  def apply_table_format_template(t)
151
- t = t || {}
152
- options.show_table_headers = t[:show_headings] unless
153
- t[:show_headings].nil?
151
+ t = (t || {}).merge(options.table_format || {})
152
+ options.show_table_headers = t[:show_headings] if
153
+ options.show_table_headers.nil?
154
154
  end
155
155
 
156
156
  def apply_grouping_format_template(t)
157
- t = t || {}
158
- options.style = t[:style] if t[:style]
159
- options.show_group_headers = t[:show_headings] unless
160
- t[:show_headings].nil?
157
+ t = (t || {}).merge(options.grouping_format || {})
158
+ options.style ||= t[:style]
159
+ options.show_group_headers = t[:show_headings] if
160
+ options.show_group_headers.nil?
161
161
  end
162
162
 
163
163
  end
@@ -194,7 +194,7 @@ module Ruport
194
194
  y = image_opts[:y]
195
195
  width = image_opts[:width]
196
196
  height = image_opts[:height]
197
- info = ::PDF::Writer::Graphics::ImageInfo.new(File.read(path))
197
+ info = ::PDF::Writer::Graphics::ImageInfo.new(File.open(path, "rb"))
198
198
 
199
199
  # reduce the size of the image until it fits into the requested box
200
200
  img_width, img_height =
@@ -554,21 +554,23 @@ module Ruport
554
554
  end
555
555
 
556
556
  def apply_page_format_template(t)
557
- t = t || {}
558
- options.paper_size = t[:size] if t[:size]
559
- options.paper_orientation = t[:layout] if t[:layout]
557
+ t = (t || {}).merge(options.page_format || {})
558
+ options.paper_size ||= t[:size]
559
+ options.paper_orientation ||= t[:layout]
560
560
  end
561
561
 
562
562
  def apply_text_format_template(t)
563
- options.text_format = template.text_format if t
563
+ t = (t || {}).merge(options.text_format || {})
564
+ options.text_format = t unless t.empty?
564
565
  end
565
566
 
566
567
  def apply_table_format_template(t)
567
- options.table_format = template.table_format.dup if t
568
+ t = (t || {}).merge(options.table_format || {})
569
+ options.table_format = t unless t.empty?
568
570
  end
569
571
 
570
572
  def apply_column_format_template(t)
571
- t = t || {}
573
+ t = (t || {}).merge(options.column_format || {})
572
574
  column_opts = {}
573
575
  column_opts.merge!(:justification => t[:alignment]) if t[:alignment]
574
576
  column_opts.merge!(:width => t[:width]) if t[:width]
@@ -587,7 +589,7 @@ module Ruport
587
589
  end
588
590
 
589
591
  def apply_heading_format_template(t)
590
- t = t || {}
592
+ t = (t || {}).merge(options.heading_format || {})
591
593
  heading_opts = {}
592
594
  heading_opts.merge!(:justification => t[:alignment]) if t[:alignment]
593
595
  heading_opts.merge!(:bold => t[:bold]) unless t[:bold].nil?
@@ -619,8 +621,8 @@ module Ruport
619
621
  end
620
622
 
621
623
  def apply_grouping_format_template(t)
622
- t = t || {}
623
- options.style = t[:style] if t[:style]
624
+ t = (t || {}).merge(options.grouping_format || {})
625
+ options.style ||= t[:style]
624
626
  end
625
627
  end
626
628
  end
@@ -7,6 +7,8 @@
7
7
  # This is free software. Please see the LICENSE and COPYING files for details.
8
8
 
9
9
 
10
+ class Ruport::Formatter::TemplateNotDefined < StandardError; end
11
+
10
12
  # This class provides templating functionality for Ruport.
11
13
  # New templates are created using the Template.create method.
12
14
  #
@@ -162,6 +164,6 @@ class Ruport::Formatter::Template < Ruport::Renderer::Options
162
164
 
163
165
  # Returns an existing template with the provided name (label).
164
166
  def self.[](label)
165
- templates[label]
167
+ templates[label] or raise Ruport::Formatter::TemplateNotDefined
166
168
  end
167
- end
169
+ end
@@ -218,24 +218,24 @@ module Ruport
218
218
  private
219
219
 
220
220
  def apply_table_format_template(t)
221
- t = t || {}
222
- options.show_table_headers = t[:show_headings] unless
223
- t[:show_headings].nil?
224
- options.table_width = t[:width] if t[:width]
225
- options.ignore_table_width = t[:ignore_width] unless
226
- t[:ignore_width].nil?
221
+ t = (t || {}).merge(options.table_format || {})
222
+ options.show_table_headers = t[:show_headings] if
223
+ options.show_table_headers.nil?
224
+ options.table_width ||= t[:width]
225
+ options.ignore_table_width = t[:ignore_width] if
226
+ options.ignore_table_width.nil?
227
227
  end
228
228
 
229
229
  def apply_column_format_template(t)
230
- t = t || {}
231
- options.max_col_width = t[:maximum_width] if t[:maximum_width]
232
- options.alignment = t[:alignment] if t[:alignment]
230
+ t = (t || {}).merge(options.column_format || {})
231
+ options.max_col_width ||= t[:maximum_width]
232
+ options.alignment ||= t[:alignment]
233
233
  end
234
234
 
235
235
  def apply_grouping_format_template(t)
236
- t = t || {}
237
- options.show_group_headers = t[:show_headings] unless
238
- t[:show_headings].nil?
236
+ t = (t || {}).merge(options.grouping_format || {})
237
+ options.show_group_headers = t[:show_headings] if
238
+ options.show_group_headers.nil?
239
239
  end
240
240
 
241
241
  end
@@ -524,6 +524,8 @@ class Ruport::Renderer
524
524
  def use_formatter(format)
525
525
  self.formatter = self.class.formats[format].new
526
526
  self.formatter.format = format
527
+ rescue NoMethodError
528
+ raise UnknownFormatError
527
529
  end
528
530
 
529
531
  end
@@ -9,6 +9,19 @@ class TestRenderCSVRow < Test::Unit::TestCase
9
9
  end
10
10
 
11
11
  class TestRenderCSVTable < Test::Unit::TestCase
12
+
13
+ def setup
14
+ Ruport::Formatter::Template.create(:simple) do |t|
15
+ t.table_format = {
16
+ :show_headings => false
17
+ }
18
+ t.grouping_format = {
19
+ :style => :justified,
20
+ :show_headings => false
21
+ }
22
+ t.format_options = { :col_sep => ":" }
23
+ end
24
+ end
12
25
 
13
26
  def test_render_csv_table
14
27
  actual = Ruport::Renderer::Table.render_csv do |r|
@@ -36,17 +49,6 @@ class TestRenderCSVTable < Test::Unit::TestCase
36
49
  end
37
50
 
38
51
  def test_render_with_template
39
- Ruport::Formatter::Template.create(:simple) do |t|
40
- t.table_format = {
41
- :show_headings => false
42
- }
43
- t.grouping_format = {
44
- :style => :justified,
45
- :show_headings => false
46
- }
47
- t.format_options = { :col_sep => ":" }
48
- end
49
-
50
52
  formatter = Ruport::Formatter::CSV.new
51
53
  formatter.options = Ruport::Renderer::Options.new
52
54
  formatter.options.template = :simple
@@ -59,6 +61,49 @@ class TestRenderCSVTable < Test::Unit::TestCase
59
61
 
60
62
  assert_equal ":", formatter.options.format_options[:col_sep]
61
63
  end
64
+
65
+ def test_options_hashes_override_template
66
+ opts = nil
67
+ table = Table(%w[a b c])
68
+ table.to_csv(
69
+ :template => :simple,
70
+ :table_format => {
71
+ :show_headings => true
72
+ },
73
+ :grouping_format => {
74
+ :style => :raw,
75
+ :show_headings => true
76
+ }
77
+ ) do |r|
78
+ opts = r.options
79
+ end
80
+
81
+ assert_equal true, opts.show_table_headers
82
+
83
+ assert_equal :raw, opts.style
84
+ assert_equal true, opts.show_group_headers
85
+ end
86
+
87
+ def test_individual_options_override_template
88
+ opts = nil
89
+ table = Table(%w[a b c])
90
+ table.to_csv(
91
+ :template => :simple,
92
+ :show_table_headers => true,
93
+ :style => :raw,
94
+ :show_group_headers => true,
95
+ :format_options => { :col_sep => ";" }
96
+ ) do |r|
97
+ opts = r.options
98
+ end
99
+
100
+ assert_equal true, opts.show_table_headers
101
+
102
+ assert_equal :raw, opts.style
103
+ assert_equal true, opts.show_group_headers
104
+
105
+ assert_equal ";", opts.format_options[:col_sep]
106
+ end
62
107
  end
63
108
 
64
109
  class TestRenderCSVGroup < Test::Unit::TestCase
@@ -3,6 +3,18 @@ require File.join(File.expand_path(File.dirname(__FILE__)), "helpers")
3
3
 
4
4
  class TestRenderHTMLTable < Test::Unit::TestCase
5
5
 
6
+ def setup
7
+ Ruport::Formatter::Template.create(:simple) do |t|
8
+ t.table_format = {
9
+ :show_headings => false
10
+ }
11
+ t.grouping_format = {
12
+ :style => :justified,
13
+ :show_headings => false
14
+ }
15
+ end
16
+ end
17
+
6
18
  def test_html_table
7
19
  a = Ruport::Formatter::HTML.new
8
20
 
@@ -34,16 +46,6 @@ class TestRenderHTMLTable < Test::Unit::TestCase
34
46
  end
35
47
 
36
48
  def test_render_with_template
37
- Ruport::Formatter::Template.create(:simple) do |t|
38
- t.table_format = {
39
- :show_headings => false
40
- }
41
- t.grouping_format = {
42
- :style => :justified,
43
- :show_headings => false
44
- }
45
- end
46
-
47
49
  formatter = Ruport::Formatter::HTML.new
48
50
  formatter.options = Ruport::Renderer::Options.new
49
51
  formatter.options.template = :simple
@@ -54,6 +56,46 @@ class TestRenderHTMLTable < Test::Unit::TestCase
54
56
  assert_equal :justified, formatter.options.style
55
57
  assert_equal false, formatter.options.show_group_headers
56
58
  end
59
+
60
+ def test_options_hashes_override_template
61
+ opts = nil
62
+ table = Table(%w[a b c])
63
+ table.to_html(
64
+ :template => :simple,
65
+ :table_format => {
66
+ :show_headings => true
67
+ },
68
+ :grouping_format => {
69
+ :style => :inline,
70
+ :show_headings => true
71
+ }
72
+ ) do |r|
73
+ opts = r.options
74
+ end
75
+
76
+ assert_equal true, opts.show_table_headers
77
+
78
+ assert_equal :inline, opts.style
79
+ assert_equal true, opts.show_group_headers
80
+ end
81
+
82
+ def test_individual_options_override_template
83
+ opts = nil
84
+ table = Table(%w[a b c])
85
+ table.to_html(
86
+ :template => :simple,
87
+ :show_table_headers => true,
88
+ :style => :inline,
89
+ :show_group_headers => true
90
+ ) do |r|
91
+ opts = r.options
92
+ end
93
+
94
+ assert_equal true, opts.show_table_headers
95
+
96
+ assert_equal :inline, opts.style
97
+ assert_equal true, opts.show_group_headers
98
+ end
57
99
  end
58
100
 
59
101
 
@@ -2,6 +2,33 @@
2
2
  require File.join(File.expand_path(File.dirname(__FILE__)), "helpers")
3
3
 
4
4
  class TestRenderPDFTable < Test::Unit::TestCase
5
+
6
+ def setup
7
+ Ruport::Formatter::Template.create(:simple) do |t|
8
+ t.page_format = {
9
+ :size => "LETTER",
10
+ :layout => :landscape
11
+ }
12
+ t.text_format = {
13
+ :font_size => 16
14
+ }
15
+ t.table_format = {
16
+ :show_headings => false
17
+ }
18
+ t.column_format = {
19
+ :alignment => :center,
20
+ :width => 50
21
+ }
22
+ t.heading_format = {
23
+ :alignment => :right,
24
+ :bold => false,
25
+ :title => "Test"
26
+ }
27
+ t.grouping_format = {
28
+ :style => :separated
29
+ }
30
+ end
31
+ end
5
32
 
6
33
  def test_render_pdf_basic
7
34
  # can't render without column names
@@ -35,31 +62,6 @@ class TestRenderPDFTable < Test::Unit::TestCase
35
62
  end
36
63
 
37
64
  def test_render_with_template
38
- Ruport::Formatter::Template.create(:simple) do |t|
39
- t.page_format = {
40
- :size => "LETTER",
41
- :layout => :landscape
42
- }
43
- t.text_format = {
44
- :font_size => 16
45
- }
46
- t.table_format = {
47
- :show_headings => false
48
- }
49
- t.column_format = {
50
- :alignment => :center,
51
- :width => 50
52
- }
53
- t.heading_format = {
54
- :alignment => :right,
55
- :bold => false,
56
- :title => "Test"
57
- }
58
- t.grouping_format = {
59
- :style => :separated
60
- }
61
- end
62
-
63
65
  formatter = Ruport::Formatter::PDF.new
64
66
  formatter.options = Ruport::Renderer::Options.new
65
67
  formatter.options.template = :simple
@@ -87,6 +89,98 @@ class TestRenderPDFTable < Test::Unit::TestCase
87
89
  assert_equal :separated, formatter.options.style
88
90
  end
89
91
 
92
+ def test_options_hashes_override_template
93
+ opts = nil
94
+ table = Table(%w[a b c])
95
+ table.to_pdf(
96
+ :template => :simple,
97
+ :page_format => {
98
+ :size => "LEGAL",
99
+ :layout => :portrait
100
+ },
101
+ :text_format => {
102
+ :font_size => 20
103
+ },
104
+ :table_format => {
105
+ :show_headings => true
106
+ },
107
+ :column_format => {
108
+ :alignment => :left,
109
+ :width => 25
110
+ },
111
+ :heading_format => {
112
+ :alignment => :left,
113
+ :bold => true,
114
+ :title => "Replace"
115
+ },
116
+ :grouping_format => {
117
+ :style => :inline
118
+ }
119
+ ) do |r|
120
+ opts = r.options
121
+ end
122
+
123
+ assert_equal "LEGAL", opts.paper_size
124
+ assert_equal :portrait, opts.paper_orientation
125
+
126
+ assert_equal 20, opts.text_format[:font_size]
127
+
128
+ assert_equal true, opts.table_format[:show_headings]
129
+
130
+ assert_equal :left, opts.table_format[:column_options][:justification]
131
+ assert_equal 25, opts.table_format[:column_options][:width]
132
+
133
+ assert_equal :left,
134
+ opts.table_format[:column_options][:heading][:justification]
135
+ assert_equal true, opts.table_format[:column_options][:heading][:bold]
136
+ assert_equal "Replace", opts.table_format[:column_options][:heading][:title]
137
+
138
+ assert_equal :inline, opts.style
139
+ end
140
+
141
+ def test_individual_options_override_template
142
+ opts = nil
143
+ table = Table(%w[a b c])
144
+ table.to_pdf(
145
+ :template => :simple,
146
+ :paper_size => "LEGAL",
147
+ :paper_orientation => :portrait,
148
+ :text_format => { :font_size => 20 },
149
+ :table_format => {
150
+ :show_headings => true,
151
+ :column_options => {
152
+ :justification => :left,
153
+ :width => 25,
154
+ :heading => {
155
+ :justification => :left,
156
+ :bold => true,
157
+ :title => "Replace"
158
+ }
159
+ }
160
+ },
161
+ :style => :inline
162
+ ) do |r|
163
+ opts = r.options
164
+ end
165
+
166
+ assert_equal "LEGAL", opts.paper_size
167
+ assert_equal :portrait, opts.paper_orientation
168
+
169
+ assert_equal 20, opts.text_format[:font_size]
170
+
171
+ assert_equal true, opts.table_format[:show_headings]
172
+
173
+ assert_equal :left, opts.table_format[:column_options][:justification]
174
+ assert_equal 25, opts.table_format[:column_options][:width]
175
+
176
+ assert_equal :left,
177
+ opts.table_format[:column_options][:heading][:justification]
178
+ assert_equal true, opts.table_format[:column_options][:heading][:bold]
179
+ assert_equal "Replace", opts.table_format[:column_options][:heading][:title]
180
+
181
+ assert_equal :inline, opts.style
182
+ end
183
+
90
184
  #--------BUG TRAPS--------#
91
185
 
92
186
  # PDF::SimpleTable does not handle symbols as column names
@@ -105,7 +199,7 @@ class TestRenderPDFTable < Test::Unit::TestCase
105
199
  f.draw_table [[1,2,3],[4,5,6]].to_table(%w[a b c])
106
200
  assert_equal({ :justification => :center },
107
201
  f.options[:table_format][:column_options][:heading])
108
- end
202
+ end
109
203
 
110
204
  end
111
205
 
@@ -215,7 +215,6 @@ require File.join(File.expand_path(File.dirname(__FILE__)), "helpers")
215
215
  def setup_mock_dbi(count, options={})
216
216
  sql = options[:sql] || @sql[0]
217
217
  source = options[:source] || :default
218
- returns = options[:returns] || Proc.new { @datasets.shift }
219
218
  resultless = options[:resultless]
220
219
  params = options[:params] || []
221
220
 
@@ -233,9 +232,13 @@ require File.join(File.expand_path(File.dirname(__FILE__)), "helpers")
233
232
  @dbh.stubs(:sth__).returns(@sth)
234
233
  @sth.expects(:finish).with().times(count)
235
234
  unless resultless
236
- @sth.stubs(:fetchable?).returns(true)
237
- @sth.stubs(:column_names).returns(@columns)
238
- @sth.expects(:data__).returns(returns).times(count)
235
+ @sth.stubs(:fetchable?).returns(true)
236
+ @sth.stubs(:column_names).returns(@columns)
237
+ if options[:returns]
238
+ @sth.expects(:data__).returns(options[:returns]).times(count)
239
+ else
240
+ @sth.expects(:data__).returns(*@datasets).times(count)
241
+ end
239
242
  else
240
243
  @sth.stubs(:fetchable?).returns(false)
241
244
  @sth.stubs(:column_names).returns([])
@@ -77,6 +77,12 @@ class TestRenderer < Test::Unit::TestCase
77
77
  Table(%w[a b c]).to_csv(:template => :stub) do |r|
78
78
  r.formatter.expects(:apply_template)
79
79
  end
80
+ end
81
+
82
+ def specify_undefined_template_should_throw_sensible_error
83
+ assert_raises(Ruport::Formatter::TemplateNotDefined) do
84
+ Table(%w[a b c]).to_csv(:template => :sub)
85
+ end
80
86
  end
81
87
  end
82
88
 
@@ -560,4 +566,17 @@ class TestRendererHooks < Test::Unit::TestCase
560
566
 
561
567
  end
562
568
 
569
+ context "when attempting to render a format that doesn't exist" do
570
+
571
+ def specify_an_unknown_format_error_should_be_raised
572
+
573
+ assert_raises(Ruport::Renderer::UnknownFormatError) do
574
+ Ruport::Renderer.render_foo
575
+ end
576
+
577
+ end
578
+ end
579
+
580
+
581
+
563
582
  end
@@ -3,6 +3,23 @@ require File.join(File.expand_path(File.dirname(__FILE__)), "helpers")
3
3
 
4
4
  class TestRenderTextTable < Test::Unit::TestCase
5
5
 
6
+ def setup
7
+ Ruport::Formatter::Template.create(:simple) do |t|
8
+ t.table_format = {
9
+ :show_headings => false,
10
+ :width => 50,
11
+ :ignore_width => true
12
+ }
13
+ t.column_format = {
14
+ :maximum_width => [5,5,7],
15
+ :alignment => :center
16
+ }
17
+ t.grouping_format = {
18
+ :show_headings => false
19
+ }
20
+ end
21
+ end
22
+
6
23
  def test_basic
7
24
 
8
25
  tf = "+-------+\n"
@@ -63,21 +80,6 @@ class TestRenderTextTable < Test::Unit::TestCase
63
80
  end
64
81
 
65
82
  def test_render_with_template
66
- Ruport::Formatter::Template.create(:simple) do |t|
67
- t.table_format = {
68
- :show_headings => false,
69
- :width => 50,
70
- :ignore_width => true
71
- }
72
- t.column_format = {
73
- :maximum_width => 5,
74
- :alignment => :center
75
- }
76
- t.grouping_format = {
77
- :show_headings => false
78
- }
79
- end
80
-
81
83
  formatter = Ruport::Formatter::Text.new
82
84
  formatter.options = Ruport::Renderer::Options.new
83
85
  formatter.options.template = :simple
@@ -87,11 +89,67 @@ class TestRenderTextTable < Test::Unit::TestCase
87
89
  assert_equal 50, formatter.options.table_width
88
90
  assert_equal true, formatter.options.ignore_table_width
89
91
 
90
- assert_equal 5, formatter.options.max_col_width
92
+ assert_equal [5,5,7], formatter.options.max_col_width
91
93
  assert_equal :center, formatter.options.alignment
92
94
 
93
95
  assert_equal false, formatter.options.show_group_headers
94
96
  end
97
+
98
+ def test_options_hashes_override_template
99
+ opts = nil
100
+ table = Table(%w[a b c])
101
+ table.to_text(
102
+ :template => :simple,
103
+ :table_format => {
104
+ :show_headings => true,
105
+ :width => 25,
106
+ :ignore_width => false
107
+ },
108
+ :column_format => {
109
+ :maximum_width => [10,10,10],
110
+ :alignment => :left
111
+ },
112
+ :grouping_format => {
113
+ :show_headings => true
114
+ }
115
+ ) do |r|
116
+ opts = r.options
117
+ end
118
+
119
+ assert_equal true, opts.show_table_headers
120
+ assert_equal 25, opts.table_width
121
+ assert_equal false, opts.ignore_table_width
122
+
123
+ assert_equal [10,10,10], opts.max_col_width
124
+ assert_equal :left, opts.alignment
125
+
126
+ assert_equal true, opts.show_group_headers
127
+ end
128
+
129
+ def test_individual_options_override_template
130
+ opts = nil
131
+ table = Table(%w[a b c])
132
+ table.to_text(
133
+ :template => :simple,
134
+ :show_table_headers => true,
135
+ :table_width => 75,
136
+ :ignore_table_width => false,
137
+ :max_col_width => [4,4,4],
138
+ :alignment => :left,
139
+ :show_group_headers => true
140
+ ) do |r|
141
+ opts = r.options
142
+ end
143
+
144
+ assert_equal true, opts.show_table_headers
145
+ assert_equal 75, opts.table_width
146
+ assert_equal false, opts.ignore_table_width
147
+
148
+ assert_equal [4,4,4], opts.max_col_width
149
+ assert_equal :left, opts.alignment
150
+
151
+ assert_equal true, opts.show_group_headers
152
+ end
95
153
 
96
154
  # -- BUG TRAPS ------------------------------
97
155
 
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4
3
3
  specification_version: 1
4
4
  name: ruport
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.2.2
7
- date: 2007-10-29 00:00:00 -04:00
6
+ version: 1.2.3
7
+ date: 2007-11-24 00:00:00 -05:00
8
8
  summary: A generalized Ruby report generation and templating engine.
9
9
  require_paths:
10
10
  - lib