pdf-wrapper 0.4.1 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,16 @@
1
+ v0.4.4 (19th November 2010)
2
+ * packaging improvements, switch to bundler for development
3
+ * require ruby-gnome2 0.90.5 or greater. The gnome2 gems are still
4
+ fairly new, Kou seems to be improving them rapidly
5
+
6
+ v0.4.3 (25th October 2010)
7
+ * simplify the way I require the various gnome2 gems for maximum bundler
8
+ compatibility
9
+
10
+ v0.4.2 (24th October 2010)
11
+ * Siwtch back to using the ruby-gnome2 gems to satisfy dependencies
12
+ * the latest versions can be installed without root permissions
13
+
1
14
  v0.4.1 (12th October 2010)
2
15
  * Stop using the ruby-gnome2 gems to satisfy dependencies
3
16
  * They can't be installed by non-root users, so don't play nice
data/README.rdoc CHANGED
@@ -50,21 +50,15 @@ James Healy <jimmy@deefa.com>
50
50
 
51
51
  = Dependencies
52
52
 
53
- * ruby/cairo[http://cairographics.org/rcairo/]
54
- * ruby/pango[http://ruby-gnome2.sourceforge.jp/] (optional, required to add text)
55
- * ruby/rsvg2[http://ruby-gnome2.sourceforge.jp/] (optional, required for SVG support)
56
- * ruby/gdkpixbuf[http://ruby-gnome2.sourceforge.jp/] (optional, required for GIF/JPG support)
57
- * ruby/poppler[http://ruby-gnome2.sourceforge.jp/] (optional, required for embedding PDF images)
58
-
59
- These are all ruby bindings to C libraries. On Debian/Ubuntu based systems
60
- (which I develop on) you can get them by running:
61
-
62
- aptitude install libcairo-ruby libpango1-ruby librsvg2-ruby libpoppler-glib-ruby
53
+ As of September 2010 all these dependencies are satisfied by gems. All of them are bindings
54
+ to C libraries, so you will need the libraries and headers installed on your system
55
+ before installing them.
63
56
 
64
- For users of other systems, I'd love to receive info on how you set these bindings up.
65
-
66
- ruby/cairo is also available as a gem (cairo), which may be installable if you have a copy
67
- of the cairo source available on your system.
57
+ * ruby/cairo[http://cairographics.org/rcairo/]
58
+ * ruby/pango[http://ruby-gnome2.sourceforge.jp/]
59
+ * ruby/rsvg2[http://ruby-gnome2.sourceforge.jp/]
60
+ * ruby/gdkpixbuf[http://ruby-gnome2.sourceforge.jp/]
61
+ * ruby/poppler[http://ruby-gnome2.sourceforge.jp/]
68
62
 
69
63
  = Compatibility
70
64
 
data/Rakefile CHANGED
@@ -1,45 +1,20 @@
1
1
  require "rubygems"
2
+ require "bundler"
3
+ Bundler.setup
4
+
2
5
  require 'rake'
3
- require 'rake/clean'
4
6
  require 'rake/rdoctask'
5
- require 'rake/testtask'
6
- require "rake/gempackagetask"
7
- require 'spec/rake/spectask'
7
+ require 'rspec/core/rake_task'
8
8
  require 'roodi'
9
9
  require 'roodi_task'
10
10
 
11
-
12
- PKG_VERSION = "0.4.1"
13
- PKG_NAME = "pdf-wrapper"
14
- PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
15
-
16
11
  desc "Default Task"
17
12
  task :default => [ :spec ]
18
13
 
19
14
  # run all rspecs
20
15
  desc "Run all rspec files"
21
- Spec::Rake::SpecTask.new("spec") do |t|
22
- # spec files listed explicitly so that load_spec is the first one run
23
- t.spec_files = ['specs/load_spec.rb','specs/image_spec.rb','specs/graphics_spec.rb','specs/tables_spec.rb','specs/text_spec.rb','specs/wrapper_spec.rb']
24
- t.spec_opts = ['-c']
25
- t.libs << File.dirname(__FILE__) + "/specs"
26
- end
27
-
28
- # generate specdocs
29
- desc "Generate Specdocs"
30
- Spec::Rake::SpecTask.new("specdocs") do |t|
31
- t.spec_files = FileList['specs/**/*.rb']
32
- t.spec_opts = ["--format", "rdoc"]
33
- t.out = (ENV['CC_BUILD_ARTIFACTS'] || 'doc') + '/specdoc.rd'
34
- end
35
-
36
- # generate failing spec report
37
- desc "Generate failing spec report"
38
- Spec::Rake::SpecTask.new("spec_report") do |t|
39
- t.spec_files = FileList['specs/**/*.rb']
40
- t.spec_opts = ["--format", "html", "--diff"]
41
- t.out = (ENV['CC_BUILD_ARTIFACTS'] || 'doc') + '/spec_report.html'
42
- t.fail_on_error = false
16
+ RSpec::Core::RakeTask.new("spec") do |t|
17
+ t.rspec_opts = ['-c']
43
18
  end
44
19
 
45
20
  # Genereate the RDoc documentation
@@ -54,40 +29,4 @@ Rake::RDocTask.new("doc") do |rdoc|
54
29
  rdoc.options << "--inline-source"
55
30
  end
56
31
 
57
- desc "Publish rdocs to rubyforge"
58
- task :publish_rdoc => [ :doc ] do
59
- rdoc_dir = File.dirname(__FILE__) + "/doc/rdoc/"
60
- `scp -r #{rdoc_dir} yob@rubyforge.org:/var/www/gforge-projects/pdf-wrapper/`
61
- end
62
-
63
- # a gemspec for packaging this library
64
- spec = Gem::Specification.new do |spec|
65
- spec.name = PKG_NAME
66
- spec.version = PKG_VERSION
67
- spec.platform = Gem::Platform::RUBY
68
- spec.summary = "A PDF generating library built on top of cairo"
69
- spec.files = Dir.glob("{examples,lib,specs}/**/**/*") + ["Rakefile"]
70
- spec.require_path = "lib"
71
- spec.has_rdoc = true
72
- spec.extra_rdoc_files = %w{README.rdoc CHANGELOG TODO}
73
- spec.rdoc_options << '--title' << 'PDF::Wrapper Documentation' << '--main' << 'README.rdoc' << '-q'
74
- spec.author = "James Healy"
75
- spec.homepage = "http://pdf-wrapper.rubyforge.org/"
76
- spec.email = "jimmy@deefa.com"
77
- spec.rubyforge_project = "pdf-wrapper"
78
- spec.description = "A unicode aware PDF writing library that uses the ruby bindings to various c libraries ( like cairo, pango, poppler and rsvg ) to do the heavy lifting."
79
- spec.add_dependency("cairo", "~>1.8")
80
- #spec.add_dependency("pango")
81
- #spec.add_dependency("poppler")
82
- #spec.add_dependency("gdkpixbuf")
83
- # TODO - add rsvg2
84
- end
85
-
86
- # package the library into a gem
87
- desc "Generate a gem for pdf-wrapper"
88
- Rake::GemPackageTask.new(spec) do |pkg|
89
- pkg.need_zip = true
90
- pkg.need_tar = true
91
- end
92
-
93
32
  RoodiTask.new 'roodi', ['lib/**/*.rb']
data/lib/pdf/wrapper.rb CHANGED
@@ -8,7 +8,6 @@ require 'fileutils'
8
8
 
9
9
  require "pdf/wrapper/graphics"
10
10
  require "pdf/wrapper/images"
11
- require "pdf/wrapper/loading"
12
11
  require "pdf/wrapper/text_cell"
13
12
  require "pdf/wrapper/text_image_cell"
14
13
  require "pdf/wrapper/table"
@@ -16,6 +15,18 @@ require "pdf/wrapper/text"
16
15
  require "pdf/wrapper/page"
17
16
 
18
17
  require 'cairo'
18
+ require 'pango'
19
+ require 'gdk_pixbuf2'
20
+
21
+ begin
22
+ require 'gtk2'
23
+ rescue Gtk::InitError
24
+ # ignore this error, it's thrown when gtk2 is loaded with no xsession available.
25
+ # as advised at http://www.ruby-forum.com/topic/182949
26
+ end
27
+
28
+ require 'poppler'
29
+ require 'rsvg2'
19
30
 
20
31
  module PDF
21
32
  # Create PDF files by using the cairo and pango libraries.
@@ -125,7 +125,6 @@ module PDF
125
125
 
126
126
  def draw_pdf(filename, opts = {})
127
127
  # based on a similar function in rabbit. Thanks Kou.
128
- load_libpoppler
129
128
  x, y = current_point
130
129
  page = Poppler::Document.new(filename).get_page(0)
131
130
  w, h = page.size
@@ -141,7 +140,6 @@ module PDF
141
140
 
142
141
  def draw_pixbuf(filename, opts = {})
143
142
  # based on a similar function in rabbit. Thanks Kou.
144
- load_libpixbuf
145
143
  x, y = current_point
146
144
  pixbuf = Gdk::Pixbuf.new(filename)
147
145
  if opts[:rotate]
@@ -181,7 +179,6 @@ module PDF
181
179
 
182
180
  def draw_svg(filename, opts = {})
183
181
  # based on a similar function in rabbit. Thanks Kou.
184
- load_librsvg
185
182
  x, y = current_point
186
183
  handle = RSVG::Handle.new_from_file(filename)
187
184
  width, height = calc_image_dimensions(opts[:width], opts[:height], handle.width, handle.height, opts[:proportional])
@@ -200,18 +197,15 @@ module PDF
200
197
 
201
198
  case detect_image_type(filename)
202
199
  when :pdf then
203
- load_libpoppler
204
200
  page = Poppler::Document.new(filename).get_page(0)
205
201
  return page.size
206
202
  when :png then
207
203
  img_surface = Cairo::ImageSurface.from_png(filename)
208
204
  return img_surface.width, img_surface.height
209
205
  when :svg then
210
- load_librsvg
211
206
  handle = RSVG::Handle.new_from_file(filename)
212
207
  return handle.width, handle.height
213
208
  else
214
- load_libpixbuf
215
209
  begin
216
210
  pixbuf = Gdk::Pixbuf.new(filename)
217
211
  return pixbuf.width, pixbuf.height
@@ -283,9 +283,6 @@ module PDF
283
283
  end
284
284
  end
285
285
 
286
- # The pango way:
287
- load_libpango
288
-
289
286
  # create a new Pango layout that our text will be added to
290
287
  layout = @context.create_pango_layout
291
288
  if options[:markup] == :pango
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -2,11 +2,11 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- context "The PDF::Wrapper class" do
5
+ describe "The PDF::Wrapper class" do
6
6
 
7
7
  before(:each) { create_pdf }
8
8
 
9
- specify "should be able to draw a single line onto the canvas" do
9
+ it "should be able to draw a single line onto the canvas" do
10
10
  x0 = y0 = 100
11
11
  x1 = y1 = 200
12
12
  @pdf.line(x0,y0,x1,y1)
@@ -22,7 +22,7 @@ context "The PDF::Wrapper class" do
22
22
  receiver.first_occurance_of(:append_line)[:args].should eql([x1, 641.89])
23
23
  end
24
24
 
25
- specify "should be able to draw a single line onto the canvas with a width of 5" do
25
+ it "should be able to draw a single line onto the canvas with a width of 5" do
26
26
  x0 = y0 = 100
27
27
  x1 = y1 = 200
28
28
  width = 5
@@ -41,9 +41,9 @@ context "The PDF::Wrapper class" do
41
41
  receiver.first_occurance_of(:append_line)[:args].should eql([x1, 641.89])
42
42
  end
43
43
 
44
- specify "should be able to draw a cubic bezier spline onto the canvas"
44
+ it "should be able to draw a cubic bezier spline onto the canvas"
45
45
 
46
- specify "should be able to draw an empty rectangle onto the canvas" do
46
+ it "should be able to draw an empty rectangle onto the canvas" do
47
47
  x = y = 100
48
48
  w = h = 200
49
49
  @pdf.rectangle(x,y,w,h)
@@ -60,7 +60,7 @@ context "The PDF::Wrapper class" do
60
60
  callbacks.shift[:args].should eql([100, 741.89, 200, -200])
61
61
  end
62
62
 
63
- specify "should be able to draw an empty rectangle onto the canvas with a line width of 5" do
63
+ it "should be able to draw an empty rectangle onto the canvas with a line width of 5" do
64
64
  x = y = 100
65
65
  w = h = 200
66
66
  width = 5
@@ -82,7 +82,7 @@ context "The PDF::Wrapper class" do
82
82
  callbacks.shift[:args].should eql([100, 741.89, 200, -200])
83
83
  end
84
84
 
85
- specify "should be able to draw a filled rectangle onto the canvas"
85
+ it "should be able to draw a filled rectangle onto the canvas"
86
86
  =begin
87
87
  do
88
88
  x = y = 100
@@ -97,7 +97,7 @@ context "The PDF::Wrapper class" do
97
97
  end
98
98
  =end
99
99
 
100
- specify "should be able to draw an empty rounded rectangle onto the canvas"
100
+ it "should be able to draw an empty rounded rectangle onto the canvas"
101
101
  =begin
102
102
  do
103
103
  x = y = 100
@@ -113,7 +113,7 @@ context "The PDF::Wrapper class" do
113
113
  end
114
114
  =end
115
115
 
116
- specify "should be able to draw an empty rounded rectangle onto the canvas with a line width of 5"
116
+ it "should be able to draw an empty rounded rectangle onto the canvas with a line width of 5"
117
117
  =begin
118
118
  do
119
119
  x = y = 100
@@ -130,7 +130,7 @@ context "The PDF::Wrapper class" do
130
130
  end
131
131
  =end
132
132
 
133
- specify "should be able to draw a filled rounded rectangle onto the canvas"
133
+ it "should be able to draw a filled rounded rectangle onto the canvas"
134
134
  =begin
135
135
  do
136
136
  x = y = 100
@@ -146,7 +146,7 @@ context "The PDF::Wrapper class" do
146
146
  end
147
147
  =end
148
148
 
149
- specify "should be able to draw an empty circle onto the canvas"
149
+ it "should be able to draw an empty circle onto the canvas"
150
150
  =begin
151
151
  do
152
152
  x = 100
@@ -162,7 +162,7 @@ context "The PDF::Wrapper class" do
162
162
  end
163
163
  =end
164
164
 
165
- specify "should be able to draw an empty circle onto the canvas with a line width of 5"
165
+ it "should be able to draw an empty circle onto the canvas with a line width of 5"
166
166
  =begin
167
167
  do
168
168
  x = 100
@@ -179,7 +179,7 @@ context "The PDF::Wrapper class" do
179
179
  end
180
180
  =end
181
181
 
182
- specify "should be able to draw a filled circle onto the canvas"
182
+ it "should be able to draw a filled circle onto the canvas"
183
183
  =begin
184
184
  do
185
185
  x = 100
@@ -2,11 +2,11 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- context "The PDF::Wrapper class" do
5
+ describe "The PDF::Wrapper class" do
6
6
 
7
7
  before(:each) { create_pdf }
8
8
 
9
- specify "should be able to detect the filetype of an image" do
9
+ it "should be able to detect the filetype of an image" do
10
10
  @pdf.detect_image_type(File.dirname(__FILE__) + "/data/google.png").should eql(:png)
11
11
  @pdf.detect_image_type(File.dirname(__FILE__) + "/data/zits.gif").should eql(:gif)
12
12
  @pdf.detect_image_type(File.dirname(__FILE__) + "/data/orc.svg").should eql(:svg)
@@ -14,7 +14,7 @@ context "The PDF::Wrapper class" do
14
14
  @pdf.detect_image_type(File.dirname(__FILE__) + "/data/shipsail.jpg").should eql(:jpg)
15
15
  end
16
16
 
17
- specify "should be able to determine image dimensions correctly" do
17
+ it "should be able to determine image dimensions correctly" do
18
18
  @pdf.image_dimensions(File.dirname(__FILE__) + "/data/google.png").should eql([166,55])
19
19
  @pdf.image_dimensions(File.dirname(__FILE__) + "/data/zits.gif").should eql([525,167])
20
20
  @pdf.image_dimensions(File.dirname(__FILE__) + "/data/orc.svg").should eql([734, 772])
@@ -22,19 +22,19 @@ context "The PDF::Wrapper class" do
22
22
  @pdf.image_dimensions(File.dirname(__FILE__) + "/data/shipsail.jpg").should eql([192,128])
23
23
  end
24
24
 
25
- specify "should be able to calculate scaled image dimensions correctly" do
25
+ it "should be able to calculate scaled image dimensions correctly" do
26
26
  @pdf.calc_image_dimensions(100, 100, 200, 200).should eql([100.0,100.0])
27
27
  @pdf.calc_image_dimensions(nil, nil, 200, 200).should eql([200.0,200.0])
28
28
  @pdf.calc_image_dimensions(150, 200, 200, 200, true).should eql([150.0,150.0])
29
29
  @pdf.calc_image_dimensions(300, 250, 200, 200, true).should eql([250.0,250.0])
30
30
  end
31
31
 
32
- specify "should be able to draw rotated images correctly" do
32
+ it "should be able to draw rotated images correctly" do
33
33
  @pdf.image(File.dirname(__FILE__) + "/data/shipsail.jpg", :rotate => :clockwise)
34
34
  @pdf.image(File.dirname(__FILE__) + "/data/shipsail.jpg", :rotate => :counterclockwise)
35
35
  @pdf.image(File.dirname(__FILE__) + "/data/shipsail.jpg", :rotate => :upsidedown)
36
36
  @pdf.image(File.dirname(__FILE__) + "/data/shipsail.jpg", :rotate => :none)
37
37
  end
38
38
 
39
- specify "should be able to draw an image with padding correctly"
39
+ it "should be able to draw an image with padding correctly"
40
40
  end
@@ -1,14 +1,12 @@
1
1
  # coding: utf-8
2
2
 
3
- $LOAD_PATH.unshift(File.dirname(__FILE__) + '/../lib')
3
+ require "rubygems"
4
+ require "bundler"
5
+ Bundler.setup
4
6
 
5
7
  require 'pdf/wrapper'
6
- require 'tempfile'
7
- require 'rubygems'
8
-
9
- gem "pdf-reader", ">=0.7.3"
10
-
11
8
  require 'pdf/reader'
9
+ require 'tempfile'
12
10
 
13
11
  def create_pdf
14
12
  @output = StringIO.new
@@ -26,10 +24,6 @@ class PDF::Wrapper
26
24
  public :draw_png
27
25
  public :draw_svg
28
26
  public :image_dimensions
29
- public :load_librsvg
30
- public :load_libpixbuf
31
- public :load_libpango
32
- public :load_libpoppler
33
27
  public :user_x_to_device_x
34
28
  public :user_y_to_device_y
35
29
  public :device_x_to_user_x
@@ -2,11 +2,11 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- context PDF::Wrapper do
5
+ describe PDF::Wrapper do
6
6
 
7
7
  before(:each) { create_pdf }
8
8
 
9
- specify "should be able to draw a table on the canvas using an array of data" do
9
+ it "should be able to draw a table on the canvas using an array of data" do
10
10
  data = [%w{data1 data2}, %w{data3 data4}]
11
11
  @pdf.table(data)
12
12
  @pdf.finish
@@ -20,7 +20,7 @@ context PDF::Wrapper do
20
20
  receiver.content.first.include?("data4").should be_true
21
21
  end
22
22
 
23
- specify "should be able to draw a table on the canvas using an array of TextCells" do
23
+ it "should be able to draw a table on the canvas using an array of TextCells" do
24
24
  data = [
25
25
  [ PDF::Wrapper::TextCell.new("data1"), PDF::Wrapper::TextCell.new("data2")],
26
26
  [ PDF::Wrapper::TextCell.new("data3"), PDF::Wrapper::TextCell.new("data4")]
@@ -37,7 +37,7 @@ context PDF::Wrapper do
37
37
  receiver.content.first.include?("data4").should be_true
38
38
  end
39
39
 
40
- specify "should be able to draw a table on the canvas using an array of TextImageCells" do
40
+ it "should be able to draw a table on the canvas using an array of TextImageCells" do
41
41
  filename = File.dirname(__FILE__) + "/data/orc.svg"
42
42
  data = [
43
43
  [ "data1", PDF::Wrapper::TextImageCell.new("data2", filename, 100, 100)],
@@ -55,7 +55,7 @@ context PDF::Wrapper do
55
55
  receiver.content.first.include?("data4").should be_true
56
56
  end
57
57
 
58
- specify "should be able to draw a table on the canvas using a PDF::Wrapper::Table object" do
58
+ it "should be able to draw a table on the canvas using a PDF::Wrapper::Table object" do
59
59
  table = PDF::Wrapper::Table.new do |t|
60
60
  t.data = [%w{data1 data2}, %w{data3 data4}]
61
61
  end
@@ -72,7 +72,7 @@ context PDF::Wrapper do
72
72
  receiver.content.first.include?("data4").should be_true
73
73
  end
74
74
 
75
- specify "should be able to draw a table on the canvas with no headings" do
75
+ it "should be able to draw a table on the canvas with no headings" do
76
76
 
77
77
  table = PDF::Wrapper::Table.new do |t|
78
78
  t.data = (1..50).collect { [1,2] }
@@ -90,7 +90,7 @@ context PDF::Wrapper do
90
90
  receiver.content.first.include?("col2").should be_false
91
91
  end
92
92
 
93
- specify "should be able to draw a table on the canvas with headers on the first page only" do
93
+ it "should be able to draw a table on the canvas with headers on the first page only" do
94
94
 
95
95
  table = PDF::Wrapper::Table.new do |t|
96
96
  t.data = (1..50).collect { [1,2] }
@@ -110,7 +110,7 @@ context PDF::Wrapper do
110
110
  receiver.content[1].include?("col2").should be_false
111
111
  end
112
112
 
113
- specify "should be able to draw a table on the canvas with headers on all pages" do
113
+ it "should be able to draw a table on the canvas with headers on all pages" do
114
114
 
115
115
  table = PDF::Wrapper::Table.new do |t|
116
116
  t.data = (1..50).collect { [1,2] }
@@ -130,21 +130,21 @@ context PDF::Wrapper do
130
130
  receiver.content[1].include?("col2").should be_true
131
131
  end
132
132
 
133
- specify "should leave the cursor in the bottom left when adding a table" do
133
+ it "should leave the cursor in the bottom left when adding a table" do
134
134
  data = [%w{head1 head2},%w{data1 data2}]
135
135
  @pdf.table(data, :left => @pdf.margin_left)
136
136
  x,y = @pdf.current_point
137
137
  x.to_i.should eql(@pdf.margin_left)
138
138
  end
139
139
 
140
- specify "should default to using as much available space when adding a table that isn't left aligned with the left margin" do
140
+ it "should default to using as much available space when adding a table that isn't left aligned with the left margin" do
141
141
  data = [%w{head1 head2},%w{data1 data2}]
142
142
  @pdf.table(data, :left => 100)
143
143
  x,y = @pdf.current_point
144
144
  x.to_i.should eql(100)
145
145
  end
146
146
 
147
- specify "should be able to draw a table with escaped content markup on the canvas" do
147
+ it "should be able to draw a table with escaped content markup on the canvas" do
148
148
  table = PDF::Wrapper::Table.new(:markup => :pango) do |t|
149
149
  t.data = [%w{data1 data2}, %w{data3 data4&amp;5}]
150
150
  end
@@ -162,15 +162,15 @@ context PDF::Wrapper do
162
162
 
163
163
  end
164
164
 
165
- context PDF::Wrapper, "data= method" do
165
+ describe PDF::Wrapper, "data= method" do
166
166
 
167
- specify "should raise an exception if given rows of uneven size" do
167
+ it "should raise an exception if given rows of uneven size" do
168
168
  data = [%w{head1 head2},%w{data1}]
169
169
  table = PDF::Wrapper::Table.new
170
170
  lambda { table.data = data }.should raise_error(ArgumentError)
171
171
  end
172
172
 
173
- specify "should convert all non cell objects to TextCells" do
173
+ it "should convert all non cell objects to TextCells" do
174
174
  data = [%w{head1 head2},%w{data1 data2}]
175
175
  table = PDF::Wrapper::Table.new
176
176
  table.data = data
@@ -179,7 +179,7 @@ context PDF::Wrapper, "data= method" do
179
179
  end
180
180
  end
181
181
 
182
- specify "should leave existing TextCells unchanged" do
182
+ it "should leave existing TextCells unchanged" do
183
183
  manual_cell_one = PDF::Wrapper::TextCell.new("data1")
184
184
  manual_cell_two = PDF::Wrapper::TextCell.new("data2")
185
185
  data = [[manual_cell_one, manual_cell_two]]
@@ -195,7 +195,7 @@ context PDF::Wrapper, "data= method" do
195
195
  (cells[1] === manual_cell_two).should be_true
196
196
  end
197
197
 
198
- specify "should leave existing TextImageCells unchanged" do
198
+ it "should leave existing TextImageCells unchanged" do
199
199
  manual_cell_one = PDF::Wrapper::TextImageCell.new("data1", "image.png", 100, 100)
200
200
  manual_cell_two = PDF::Wrapper::TextImageCell.new("data2", "image.png", 100, 100)
201
201
  data = [[manual_cell_one, manual_cell_two]]
@@ -211,7 +211,7 @@ context PDF::Wrapper, "data= method" do
211
211
  (cells[1] === manual_cell_two).should be_true
212
212
  end
213
213
 
214
- specify "should set the default table options on all cells" do
214
+ it "should set the default table options on all cells" do
215
215
  data = [%w{head1 head2},%w{data1 data2}]
216
216
  table = PDF::Wrapper::Table.new(:markup => :pango)
217
217
 
@@ -223,9 +223,9 @@ context PDF::Wrapper, "data= method" do
223
223
  end
224
224
  end
225
225
 
226
- context PDF::Wrapper, "headers method" do
226
+ describe PDF::Wrapper, "headers method" do
227
227
 
228
- specify "should raise an exception if given cell count does not match existing data" do
228
+ it "should raise an exception if given cell count does not match existing data" do
229
229
  data = [%w{data1 data2},%w{data1 data2}]
230
230
  headers = %w{head1}
231
231
 
@@ -235,7 +235,7 @@ context PDF::Wrapper, "headers method" do
235
235
  lambda { table.headers(headers) }.should raise_error(ArgumentError)
236
236
  end
237
237
 
238
- specify "should wrap non-cell objects in a TextCell" do
238
+ it "should wrap non-cell objects in a TextCell" do
239
239
  headers = [["head1","head2"]]
240
240
 
241
241
  table = PDF::Wrapper::Table.new
@@ -247,7 +247,7 @@ context PDF::Wrapper, "headers method" do
247
247
  end
248
248
  end
249
249
 
250
- specify "should leave TextCell objects untouched" do
250
+ it "should leave TextCell objects untouched" do
251
251
  manual_cell_one = PDF::Wrapper::TextCell.new("data1")
252
252
  manual_cell_two = PDF::Wrapper::TextCell.new("data2")
253
253
  headers = [manual_cell_one, manual_cell_two]
@@ -260,7 +260,7 @@ context PDF::Wrapper, "headers method" do
260
260
  (set_headers[1] === manual_cell_two).should be_true
261
261
  end
262
262
 
263
- specify "should leave TextImageCell objects untouched" do
263
+ it "should leave TextImageCell objects untouched" do
264
264
  manual_cell_one = PDF::Wrapper::TextImageCell.new("data1", "image.png", 100, 100)
265
265
  manual_cell_two = PDF::Wrapper::TextImageCell.new("data2", "image.png", 100, 100)
266
266
  headers = [manual_cell_one, manual_cell_two]
@@ -273,7 +273,7 @@ context PDF::Wrapper, "headers method" do
273
273
  (set_headers[1] === manual_cell_two).should be_true
274
274
  end
275
275
 
276
- specify "should set options on all cells" do
276
+ it "should set options on all cells" do
277
277
  headers = ["head1","head2"]
278
278
 
279
279
  table = PDF::Wrapper::Table.new
@@ -285,7 +285,7 @@ context PDF::Wrapper, "headers method" do
285
285
  end
286
286
  end
287
287
 
288
- specify "should set default table options on all cells" do
288
+ it "should set default table options on all cells" do
289
289
  headers = ["head1","head2"]
290
290
 
291
291
  table = PDF::Wrapper::Table.new(:markup => :pango)
@@ -298,9 +298,9 @@ context PDF::Wrapper, "headers method" do
298
298
  end
299
299
  end
300
300
 
301
- context PDF::Wrapper, "cell method" do
301
+ describe PDF::Wrapper, "cell method" do
302
302
 
303
- specify "should return the appropriate cell" do
303
+ it "should return the appropriate cell" do
304
304
  data = [%w{data1 data2},%w{data3 data4}]
305
305
  headers = %w{head1}
306
306
 
@@ -315,9 +315,9 @@ context PDF::Wrapper, "cell method" do
315
315
  end
316
316
  end
317
317
 
318
- context PDF::Wrapper, "cell_options method" do
318
+ describe PDF::Wrapper, "cell_options method" do
319
319
 
320
- specify "should set options on the appropriate cell" do
320
+ it "should set options on the appropriate cell" do
321
321
  data = [%w{data1 data2},%w{data3 data4}]
322
322
 
323
323
  table = PDF::Wrapper::Table.new
@@ -328,9 +328,9 @@ context PDF::Wrapper, "cell_options method" do
328
328
  end
329
329
  end
330
330
 
331
- context PDF::Wrapper, "col_options method" do
331
+ describe PDF::Wrapper, "col_options method" do
332
332
 
333
- specify "should set options on all cells in the appropriate column" do
333
+ it "should set options on all cells in the appropriate column" do
334
334
  data = [%w{data1 data2},%w{data3 data4}]
335
335
 
336
336
  table = PDF::Wrapper::Table.new
@@ -344,9 +344,9 @@ context PDF::Wrapper, "col_options method" do
344
344
  end
345
345
  end
346
346
 
347
- context PDF::Wrapper, "row_options method" do
347
+ describe PDF::Wrapper, "row_options method" do
348
348
 
349
- specify "should set options on all cells in the appropriate row" do
349
+ it "should set options on all cells in the appropriate row" do
350
350
  data = [%w{data1 data2},%w{data3 data4}]
351
351
 
352
352
  table = PDF::Wrapper::Table.new