ruport 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -3,7 +3,7 @@ require "rake/testtask"
3
3
  require "rake/gempackagetask"
4
4
  #
5
5
 
6
- RUPORT_VERSION = "1.2.0"
6
+ RUPORT_VERSION = "1.2.1"
7
7
 
8
8
  begin
9
9
  require "rubygems"
data/lib/ruport.rb CHANGED
@@ -12,7 +12,7 @@
12
12
 
13
13
  module Ruport #:nodoc:#
14
14
 
15
- VERSION = "1.2.0"
15
+ VERSION = "1.2.1"
16
16
 
17
17
  class FormatterError < RuntimeError #:nodoc:
18
18
  end
@@ -297,6 +297,9 @@ module Ruport
297
297
  data_records.first[method.to_s] = send(method)
298
298
  end
299
299
 
300
+ # Reorder columns to match options[:only]
301
+ self.class.aar_columns = options[:only] if Array === options[:only]
302
+
300
303
  self.class.aar_columns |= data_records.first.keys
301
304
 
302
305
  data_records =
@@ -123,6 +123,14 @@ if Object.const_defined?(:ActiveRecord) && Object.const_defined?(:Mocha)
123
123
  expected = [["Player 1"],["Player 2"]].to_table(%w[name])
124
124
  assert_equal expected, actual
125
125
  end
126
+
127
+ def test_only_option_preserves_column_sort_order
128
+ column_order = %w[name personal_trainer_id team_id]
129
+ actual = Player.report_table(:all, :only => column_order)
130
+ expected = [["Player 1", 1, 1],
131
+ ["Player 2", 2, 1]].to_table(column_order)
132
+ assert_equal expected, actual
133
+ end
126
134
 
127
135
  def test_except_option
128
136
  actual = Player.report_table(:all, :except => 'personal_trainer_id')
@@ -144,6 +152,22 @@ if Object.const_defined?(:ActiveRecord) && Object.const_defined?(:Mocha)
144
152
  ["Player 2", "Trainer 2"]].to_table(%w[name personal_trainer.name])
145
153
  assert_equal expected, actual
146
154
  end
155
+
156
+ def test_column_sorting_works_with_include_option
157
+ actual = Player.report_table(:all,
158
+ :only => %w[name personal_trainer.name],
159
+ :include => { :personal_trainer => { :only => %w[name] } })
160
+ expected = [["Player 1", "Trainer 1"],
161
+ ["Player 2", "Trainer 2"]].to_table(%w[name personal_trainer.name])
162
+ assert_equal expected, actual
163
+
164
+ actual = Player.report_table(:all,
165
+ :only => %w[personal_trainer.name name],
166
+ :include => { :personal_trainer => { :only => %w[name] } })
167
+ expected = [["Trainer 1", "Player 1"],
168
+ ["Trainer 2", "Player 2"]].to_table(%w[personal_trainer.name name])
169
+ assert_equal expected, actual
170
+ end
147
171
 
148
172
  def test_include_has_options
149
173
  actual = Team.report_table(:all, :only => 'name',
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.9.2
2
+ 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.0
7
- date: 2007-08-28 00:00:00 -04:00
6
+ version: 1.2.1
7
+ date: 2007-09-23 00:00:00 -04:00
8
8
  summary: A generalized Ruby report generation and templating engine.
9
9
  require_paths:
10
10
  - lib