pdfmult 1.3.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -68,7 +68,7 @@ As of now, `pdfmult` has only been tested on a Linux system.
68
68
  Documentation
69
69
  -------------
70
70
 
71
- `pdfmult --help` prints a brief help message.
71
+ Use `pdfmult --help` to display a brief help message.
72
72
 
73
73
  If you installed `pdfmult` using `rake install` you can read
74
74
  its man page with `man pdfmult`.
data/Rakefile CHANGED
@@ -1,9 +1,15 @@
1
1
  # rakefile for the pdfmult script.
2
2
  #
3
- # Copyright (C) 2012 Marcus Stollsteimer
3
+ # Copyright (C) 2011-2013 Marcus Stollsteimer
4
4
 
5
5
  require 'rake/testtask'
6
6
 
7
+ require './lib/pdfmult'
8
+
9
+ PROGNAME = Pdfmult::PROGNAME
10
+ HOMEPAGE = Pdfmult::HOMEPAGE
11
+ TAGLINE = Pdfmult::TAGLINE
12
+
7
13
  BINDIR = '/usr/local/bin'
8
14
  MANDIR = '/usr/local/man/man1'
9
15
 
@@ -52,9 +58,11 @@ desc 'Create man page'
52
58
  task :man => [MANPAGE]
53
59
 
54
60
  file MANPAGE => [BINARY, H2MFILE] do
55
- sh "#{HELP2MAN} --no-info --include=#{H2MFILE} -o #{MANPAGE} ./#{BINARY}"
61
+ sh "#{HELP2MAN} --no-info --name='#{TAGLINE}' --include=#{H2MFILE} -o #{MANPAGE} ./#{BINARY}"
56
62
  sh "#{SED} -i '/\.PP/{N;s/\.PP\\nOptions/.SH OPTIONS/}' #{MANPAGE}"
57
63
  sh "#{SED} -i 's/^License GPL/.br\\nLicense GPL/;s/There is NO WARRANTY/.br\\nThere is NO WARRANTY/' #{MANPAGE}"
64
+ sh "#{SED} -i 's!%HOMEPAGE%!#{HOMEPAGE}!g' #{MANPAGE}"
65
+ sh "#{SED} -i 's!%PROGNAME%!#{PROGNAME}!g' #{MANPAGE}"
58
66
  end
59
67
 
60
68
 
@@ -1,4 +1,4 @@
1
- #!/usr/bin/ruby -w
1
+ #!/usr/bin/env ruby
2
2
 
3
3
  require 'pdfmult'
4
4
 
@@ -1,78 +1,40 @@
1
- #!/usr/bin/ruby -w
1
+ #!/usr/bin/env ruby
2
2
  # == Name
3
3
  #
4
4
  # pdfmult - put multiple copies of a PDF page on one page
5
5
  #
6
- # == Synopsis
7
- #
8
- # pdfmult [options] file
9
- #
10
6
  # == Description
11
7
  #
12
8
  # +pdfmult+ rearranges multiple copies of a PDF page (shrunken) on one page.
13
9
  #
14
- # The paper size of the produced PDF file is A4,
15
- # the input file is also assumed to be in A4 format.
16
- # The input PDF file may consist of several pages.
17
- # If +pdfmult+ succeeds in obtaining the page count it will rearrange all pages,
18
- # if not, only the first page is processed
19
- # (unless the page count was specified via command line option).
20
- #
21
- # +pdfmult+ uses +pdflatex+ with the +pdfpages+ package,
22
- # so both have to be installed on the system.
23
- # If the --latex option is used, though, +pdflatex+ is not run
24
- # and a LaTeX file is created instead of a PDF.
25
- #
26
- # == Options
27
- #
28
- # -n, --number:: Number of copies to put on one page: 2 (default), 4, 8, 9, 16.
29
- #
30
- # -f, --[no-]force:: Do not prompt before overwriting.
31
- #
32
- # -l, --latex:: Create a LaTeX file instead of a PDF file (default: infile_NUMBER.tex).
33
- #
34
- # -o, --output:: Output file (default: infile_NUMBER.pdf).
35
- # Use - to output to stdout.
36
- #
37
- # -p, --pages:: Number of pages to convert.
38
- # If given, +pdfmult+ does not try to obtain the page count from the source PDF.
39
- #
40
- # -s, --[no-]silent:: Do not output progress information.
41
- #
42
- # -h, --help:: Prints a brief help message and exits.
10
+ # == See also
43
11
  #
44
- # -v, --version:: Prints a brief version information and exits.
12
+ # Use <tt>pdfmult --help</tt> to display a brief help message.
45
13
  #
46
- # == Examples
47
- #
48
- # pdfmult sample.pdf # => sample_2.pdf (2 copies)
49
- # pdfmult -n 4 sample.pdf # => sample_4.pdf (4 copies)
50
- # pdfmult sample.pdf -o outfile.pdf # => outfile.pdf (2 copies)
51
- # pdfmult sample.pdf -p 3 # => processes 3 pages
52
- # pdfmult sample.pdf -o - | lpr # => sends output via stdout to print command
14
+ # The full documentation for +pdfmult+ is available on the
15
+ # project home page.
53
16
  #
54
17
  # == Author
55
18
  #
56
- # Copyright (C) 2011-2012 Marcus Stollsteimer
19
+ # Copyright (C) 2011-2013 Marcus Stollsteimer
57
20
  #
58
21
  # License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
59
- #
60
-
61
22
 
62
23
  require 'optparse'
63
24
  require 'tempfile'
64
- require 'fileutils'
65
25
  require 'open3'
26
+ require 'erb'
66
27
 
67
28
  # This module contains the classes for the +pdfmult+ tool.
68
29
  module Pdfmult
69
30
 
70
31
  PROGNAME = 'pdfmult'
71
- VERSION = '1.3.0'
72
- DATE = '2012-09-22'
32
+ VERSION = '1.3.1'
33
+ DATE = '2013-01-04'
73
34
  HOMEPAGE = 'https://github.com/stomar/pdfmult/'
35
+ TAGLINE = 'puts multiple copies of a PDF page on one page'
74
36
 
75
- COPYRIGHT = "Copyright (C) 2011-2012 Marcus Stollsteimer.\n" +
37
+ COPYRIGHT = "Copyright (C) 2011-2013 Marcus Stollsteimer.\n" +
76
38
  "License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.\n" +
77
39
  "This is free software: you are free to change and redistribute it.\n" +
78
40
  "There is NO WARRANTY, to the extent permitted by law."
@@ -126,14 +88,14 @@ module Pdfmult
126
88
 
127
89
  # process --version and --help first,
128
90
  # exit successfully (GNU Coding Standards)
129
- opt.on_tail('-h', '--help', 'Prints a brief help message and exits.') do
91
+ opt.on_tail('-h', '--help', 'Print a brief help message and exit.') do
130
92
  puts opt_parser
131
93
  puts "\nReport bugs on the #{PROGNAME} home page: <#{HOMEPAGE}>"
132
94
  exit
133
95
  end
134
96
 
135
97
  opt.on_tail('-v', '--version',
136
- 'Prints a brief version information and exits.') do
98
+ 'Print a brief version information and exit.') do
137
99
  puts "#{PROGNAME} #{VERSION}"
138
100
  puts COPYRIGHT
139
101
  exit
@@ -173,7 +135,7 @@ module Pdfmult
173
135
  opt_parser.parse!(argv)
174
136
 
175
137
  # only input file should be left in argv
176
- raise(ArgumentError, 'wrong number of arguments') if (argv.size != 1 || argv[0] == '')
138
+ raise(ArgumentError, 'wrong number of arguments') if (argv.size != 1 || argv[0].empty?)
177
139
 
178
140
  options[:infile] = argv.pop
179
141
 
@@ -186,6 +148,33 @@ module Pdfmult
186
148
  end
187
149
  end
188
150
 
151
+ # Class for the page layout.
152
+ #
153
+ # Create an instance with Layout.new, specifying
154
+ # the number of pages to put on one page.
155
+ # Layout#geometry returns the geometry string.
156
+ class Layout
157
+
158
+ attr_reader :pages, :geometry
159
+
160
+ GEOMETRY = {
161
+ 2 => '2x1',
162
+ 4 => '2x2',
163
+ 8 => '4x2',
164
+ 9 => '3x3',
165
+ 16 => '4x4'
166
+ }
167
+
168
+ def initialize(pages)
169
+ @pages = pages
170
+ @geometry = GEOMETRY[pages]
171
+ end
172
+
173
+ def landscape?
174
+ ['2x1', '4x2'].include?(geometry)
175
+ end
176
+ end
177
+
189
178
  # Class for the LaTeX document.
190
179
  #
191
180
  # Create an instance with LaTeXDocument.new, specifying
@@ -195,62 +184,50 @@ module Pdfmult
195
184
  # The method +to_s+ returns the document as multiline string.
196
185
  class LaTeXDocument
197
186
 
198
- attr_accessor :infile, :number, :page_count
199
-
200
- HEADER =
201
- "\\documentclass[CLASSOPTIONS]{article}\n" +
202
- "\\usepackage{pdfpages}\n" +
203
- "\\pagestyle{empty}\n" +
204
- "\\setlength{\\parindent}{0pt}\n" +
205
- "\\begin{document}%\n"
206
-
207
- CONTENT =
208
- "\\includepdf[pages={PAGES},nup=GEOMETRY]{FILENAME}%\n"
209
-
210
- FOOTER =
211
- "\\end{document}\n"
187
+ TEMPLATE = %q(
188
+ \documentclass[<%= class_options %>]{article}
189
+ \usepackage{pdfpages}
190
+ \pagestyle{empty}
191
+ \setlength{\parindent}{0pt}
192
+ \begin{document}
193
+ % pages_strings.each do |pages|
194
+ \includepdf[pages={<%= pages %>},nup=<%= geometry %>]{<%= @pdffile %>}%
195
+ % end
196
+ \end{document}
197
+ ).gsub(/\A\n/,'').gsub(/^ +/, '')
212
198
 
213
199
  # Initializes a LaTeXDocument instance.
200
+ # Expects an argument hash with:
214
201
  #
215
- # +infile+ - input file name
216
- # +number+ - number of pages to put on one page
217
- # +page_count+ - page count of the input file
218
- def initialize(infile, number, page_count)
219
- @infile = infile
220
- @number = number
221
- @page_count = page_count
202
+ # +:pdffile+ - filename of input pdf file
203
+ # +:layout+ - page layout
204
+ # +:page_count+ - page count of the input file
205
+ def initialize(args)
206
+ @pdffile = args[:pdffile]
207
+ @layout = args[:layout]
208
+ @page_count = args[:page_count]
222
209
  end
223
210
 
224
211
  def to_s
225
- class_options = 'a4paper'
226
- page_string = 'PAGE,' * (@number - 1) + 'PAGE' # 4 copies: e.g. 1,1,1,1
227
-
228
- case @number
229
- when 2
230
- class_options << ',landscape'
231
- geometry = '2x1'
232
- when 4
233
- geometry = '2x2'
234
- when 8
235
- class_options << ',landscape'
236
- geometry = '4x2'
237
- when 9
238
- geometry = '3x3'
239
- when 16
240
- geometry = '4x4'
241
- end
212
+ class_options = "a4paper"
213
+ class_options << ',landscape' if @layout.landscape?
214
+ latex = ERB.new(TEMPLATE, 0, '%<>')
242
215
 
243
- content_template = CONTENT.gsub(/PAGES|GEOMETRY|FILENAME/,
244
- 'PAGES' => page_string,
245
- 'GEOMETRY' => geometry,
246
- 'FILENAME' => @infile)
216
+ latex.result(binding)
217
+ end
247
218
 
248
- content = HEADER.gsub(/CLASSOPTIONS/, class_options)
249
- @page_count.times do |i|
250
- content << content_template.gsub(/PAGE/,"#{i+1}")
251
- end
219
+ private
252
220
 
253
- content << FOOTER
221
+ def geometry
222
+ @layout.geometry
223
+ end
224
+
225
+ # Returns an array of pages strings.
226
+ # For 4 copies and 2 pages: ["1,1,1,1", "2,2,2,2"].
227
+ def pages_strings
228
+ template = 'PAGE,' * (@layout.pages - 1) + 'PAGE'
229
+
230
+ Array.new(@page_count) {|i| template.gsub(/PAGE/, "#{i+1}") }
254
231
  end
255
232
  end
256
233
 
@@ -264,31 +241,33 @@ module Pdfmult
264
241
 
265
242
  PDFINFOCMD = '/usr/bin/pdfinfo'
266
243
 
267
- # Contains the page count of the input file, or nil.
244
+ # Returns the page count of the input file, or nil.
268
245
  attr_reader :page_count
269
246
 
270
247
  # This is the initialization method for the class.
271
248
  #
272
249
  # +file+ - file name of the PDF file
273
250
  def initialize(file, options={})
274
- @page_count = nil
275
- infos = Hash.new
276
-
277
- binary = options[:pdfinfocmd] || PDFINFOCMD # only for unit tests
278
- command = "#{binary} #{file}"
279
- if Application.command_available?(command)
280
- infostring = `#{command}`
281
- infostring.each_line do |line|
282
- key, val = line.chomp.split(/\s*:\s*/, 2)
283
- infos[key] = val
284
- end
285
- value = infos['Pages']
286
- @page_count = value.to_i unless value.nil?
287
- end
251
+ @file = file
252
+ @binary = options[:pdfinfocmd] || PDFINFOCMD # for unit tests
253
+ @infos = retrieve_infos
254
+ @page_count = @infos['Pages'] && @infos['Pages'].to_i
255
+ end
256
+
257
+ private
258
+
259
+ # Tries to retrieve the PDF infos for the file; returns an info hash.
260
+ def retrieve_infos
261
+ command = "#{@binary} #{@file}"
262
+ return {} unless Application.command_available?(command)
263
+
264
+ info_array = `#{command}`.split(/\n/)
265
+
266
+ Hash[info_array.map {|line| line.split(/\s*:\s*/, 2) }]
288
267
  end
289
268
 
290
269
  # Returns true if default +pdfinfo+ system tool is available (for unit tests).
291
- def self.infocmd_available? # :nodoc:
270
+ def self.infocmd_available?
292
271
  Application.command_available?("#{PDFINFOCMD} -v")
293
272
  end
294
273
  end
@@ -333,20 +312,19 @@ module Pdfmult
333
312
  end
334
313
 
335
314
  # set page number (get PDF info if necessary)
336
- pages = options[:pages]
337
- pages ||= PDFInfo.new(infile).page_count
338
- pages ||= 1
315
+ pages = options[:pages] || PDFInfo.new(infile).page_count || 1
339
316
 
340
317
  # create LaTeX document
341
- document = LaTeXDocument.new(infile, options[:number], pages)
318
+ args = {
319
+ :pdffile => infile,
320
+ :layout => Layout.new(options[:number]),
321
+ :page_count => pages
322
+ }
323
+ document = LaTeXDocument.new(args)
342
324
 
325
+ output = nil
343
326
  if options[:latex]
344
- if use_stdout
345
- puts document.to_s
346
- else
347
- warn "Writing on #{outfile}." unless silent
348
- open(outfile, 'w') {|f| f.write(document.to_s) }
349
- end
327
+ output = document.to_s
350
328
  else
351
329
  Dir.mktmpdir('pdfmult') do |dir|
352
330
  texfile = 'pdfmult.tex'
@@ -357,16 +335,15 @@ module Pdfmult
357
335
  stdout.each_line {|line| warn line.chomp } unless silent # redirect progress messages to stderr
358
336
  stderr.read # make sure all streams are read (and command has finished)
359
337
  end
360
- if use_stdout
361
- File.open("#{dir}/#{pdffile}") do |f|
362
- f.each_line {|line| puts line }
363
- end
364
- else
365
- warn "Writing on #{outfile}." unless silent
366
- FileUtils::mv("#{dir}/#{pdffile}", outfile)
367
- end
338
+ output = File.read("#{dir}/#{pdffile}")
368
339
  end
369
340
  end
341
+
342
+ # redirect stdout to output file
343
+ $stdout.reopen(outfile, 'w') unless use_stdout
344
+
345
+ warn "Writing on #{outfile}." unless (use_stdout || silent)
346
+ puts output
370
347
  end
371
348
 
372
349
  # Asks for yes or no (y/n).
@@ -375,7 +352,7 @@ module Pdfmult
375
352
  #
376
353
  # Returns +true+ if the answer is yes.
377
354
  def self.ask(question) # :nodoc:
378
- while true
355
+ loop do
379
356
  $stderr.print "#{question} [y/n] "
380
357
  reply = $stdin.gets.chomp.downcase # $stdin: avoids gets / ARGV problem
381
358
  return true if reply == 'y'
@@ -1,5 +1,5 @@
1
1
  .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.40.4.
2
- .TH PDFMULT "1" "September 2012" "pdfmult 1.3.0" "User Commands"
2
+ .TH PDFMULT "1" "January 2013" "pdfmult 1.3.1" "User Commands"
3
3
  .SH NAME
4
4
  pdfmult \- puts multiple copies of a PDF page on one page
5
5
  .SH SYNOPSIS
@@ -42,10 +42,10 @@ If given, pdfmult does not try to obtain the page count from the source PDF.
42
42
  Do not output progress information.
43
43
  .TP
44
44
  \fB\-h\fR, \fB\-\-help\fR
45
- Prints a brief help message and exits.
45
+ Print a brief help message and exit.
46
46
  .TP
47
47
  \fB\-v\fR, \fB\-\-version\fR
48
- Prints a brief version information and exits.
48
+ Print a brief version information and exit.
49
49
  .SH EXAMPLES
50
50
  pdfmult sample.pdf # => sample_2.pdf (2 copies)
51
51
  pdfmult -n 4 sample.pdf # => sample_4.pdf (4 copies)
@@ -55,10 +55,13 @@ Prints a brief version information and exits.
55
55
  .SH "REPORTING BUGS"
56
56
  Report bugs on the pdfmult home page: <https://github.com/stomar/pdfmult/>
57
57
  .SH COPYRIGHT
58
- Copyright \(co 2011\-2012 Marcus Stollsteimer.
58
+ Copyright \(co 2011\-2013 Marcus Stollsteimer.
59
59
  .br
60
60
  License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
61
61
  .br
62
62
  This is free software: you are free to change and redistribute it.
63
63
  .br
64
64
  There is NO WARRANTY, to the extent permitted by law.
65
+ .SH "SEE ALSO"
66
+ The full documentation for pdfmult is available on
67
+ the project home page: <https://github.com/stomar/pdfmult/>.
@@ -3,6 +3,7 @@ require './lib/pdfmult'
3
3
  version = Pdfmult::VERSION
4
4
  date = Pdfmult::DATE
5
5
  homepage = Pdfmult::HOMEPAGE
6
+ tagline = Pdfmult::TAGLINE
6
7
 
7
8
  Gem::Specification.new do |s|
8
9
  s.name = 'pdfmult'
@@ -13,7 +14,7 @@ Gem::Specification.new do |s|
13
14
  s.description = 'pdfmult is a command line tool that rearranges ' +
14
15
  'multiple copies of a PDF page (shrunken) on one page. ' +
15
16
  'It is a wrapper for pdflatex with the pdfpages package.'
16
- s.summary = 'pdfmult - puts multiple copies of a PDF page on one page'
17
+ s.summary = "pdfmult - #{tagline}"
17
18
 
18
19
  s.authors = ['Marcus Stollsteimer']
19
20
  s.email = 'sto.mar@web.de'
@@ -1,9 +1,10 @@
1
- [Name]
2
- pdfmult \- puts multiple copies of a PDF page on one page
3
-
4
1
  [Examples]
5
2
  pdfmult sample.pdf # => sample_2.pdf (2 copies)
6
3
  pdfmult -n 4 sample.pdf # => sample_4.pdf (4 copies)
7
4
  pdfmult sample.pdf -o outfile.pdf # => outfile.pdf (2 copies)
8
5
  pdfmult sample.pdf -p 3 # => processes 3 pages
9
6
  pdfmult sample.pdf -o - | lpr # => sends output via stdout to print command
7
+
8
+ [See also]
9
+ The full documentation for %PROGNAME% is available on
10
+ the project home page: <%HOMEPAGE%>.
@@ -1,7 +1,6 @@
1
- #!/usr/bin/ruby -w
2
1
  # test_latex_document.rb: Unit tests for the pdfmult script.
3
2
  #
4
- # Copyright (C) 2011-2012 Marcus Stollsteimer
3
+ # Copyright (C) 2011-2013 Marcus Stollsteimer
5
4
 
6
5
  require 'minitest/spec'
7
6
  require 'minitest/autorun'
@@ -10,9 +9,31 @@ require 'pdfmult'
10
9
 
11
10
  describe Pdfmult::LaTeXDocument do
12
11
 
13
- it 'should return the expected LaTeX code' do
14
- document = Pdfmult::LaTeXDocument.new('sample.pdf', 8, 3)
15
- document.to_s.split(/\n/)[0].must_equal "\\documentclass[a4paper,landscape]{article}"
16
- document.to_s.split(/\n/)[-2].must_equal "\\includepdf[pages={3,3,3,3,3,3,3,3},nup=4x2]{sample.pdf}%"
12
+ before do
13
+ @layout_class = Pdfmult::Layout
14
+ end
15
+
16
+ it 'should return the expected LaTeX code for 4 pages' do
17
+ args = {
18
+ :pdffile => 'sample.pdf',
19
+ :layout => @layout_class.new(4),
20
+ :page_count => 3
21
+ }
22
+ document_lines = Pdfmult::LaTeXDocument.new(args).to_s.split(/\n/)
23
+ document_lines[0].must_equal '\documentclass[a4paper]{article}'
24
+ document_lines[-2].must_equal '\includepdf[pages={3,3,3,3},nup=2x2]{sample.pdf}%'
25
+ document_lines.grep(/includepdf/).size.must_equal args[:page_count]
26
+ end
27
+
28
+ it 'should return the expected LaTeX code for 8 pages' do
29
+ args = {
30
+ :pdffile => 'sample.pdf',
31
+ :layout => @layout_class.new(8),
32
+ :page_count => 5
33
+ }
34
+ document_lines = Pdfmult::LaTeXDocument.new(args).to_s.split(/\n/)
35
+ document_lines[0].must_equal '\documentclass[a4paper,landscape]{article}'
36
+ document_lines[-2].must_equal '\includepdf[pages={5,5,5,5,5,5,5,5},nup=4x2]{sample.pdf}%'
37
+ document_lines.grep(/includepdf/).size.must_equal args[:page_count]
17
38
  end
18
39
  end
@@ -0,0 +1,57 @@
1
+ # test_layout.rb: Unit tests for the pdfmult script.
2
+ #
3
+ # Copyright (C) 2011-2013 Marcus Stollsteimer
4
+
5
+ require 'minitest/spec'
6
+ require 'minitest/autorun'
7
+ require 'pdfmult'
8
+
9
+
10
+ describe Pdfmult::Layout do
11
+
12
+ before do
13
+ @layout = Pdfmult::Layout.new(2)
14
+ end
15
+
16
+ it 'can return the number of pages' do
17
+ @layout.pages.must_equal 2
18
+ end
19
+
20
+ it 'can return the geometry' do
21
+ @layout.geometry.must_equal '2x1'
22
+ end
23
+
24
+ it 'knows whether it is landscape' do
25
+ @layout.landscape?.must_equal true
26
+ end
27
+
28
+ it 'returns the correct layout for 2 pages' do
29
+ layout = Pdfmult::Layout.new(2)
30
+ layout.geometry.must_equal '2x1'
31
+ layout.landscape?.must_equal true
32
+ end
33
+
34
+ it 'returns the correct layout for 4 pages' do
35
+ layout = Pdfmult::Layout.new(4)
36
+ layout.geometry.must_equal '2x2'
37
+ layout.landscape?.must_equal false
38
+ end
39
+
40
+ it 'returns the correct layout for 8 pages' do
41
+ layout = Pdfmult::Layout.new(8)
42
+ layout.geometry.must_equal '4x2'
43
+ layout.landscape?.must_equal true
44
+ end
45
+
46
+ it 'returns the correct layout for 9 pages' do
47
+ layout = Pdfmult::Layout.new(9)
48
+ layout.geometry.must_equal '3x3'
49
+ layout.landscape?.must_equal false
50
+ end
51
+
52
+ it 'returns the correct layout for 16 pages' do
53
+ layout = Pdfmult::Layout.new(16)
54
+ layout.geometry.must_equal '4x4'
55
+ layout.landscape?.must_equal false
56
+ end
57
+ end
@@ -1,7 +1,6 @@
1
- #!/usr/bin/ruby -w
2
1
  # test_optionparser.rb: Unit tests for the pdfmult script.
3
2
  #
4
- # Copyright (C) 2011-2012 Marcus Stollsteimer
3
+ # Copyright (C) 2011-2013 Marcus Stollsteimer
5
4
 
6
5
  require 'minitest/spec'
7
6
  require 'minitest/autorun'
@@ -1,7 +1,6 @@
1
- #!/usr/bin/ruby -w
2
1
  # test_pdfinfo.rb: Unit tests for the pdfmult script.
3
2
  #
4
- # Copyright (C) 2011-2012 Marcus Stollsteimer
3
+ # Copyright (C) 2011-2013 Marcus Stollsteimer
5
4
 
6
5
  require 'minitest/spec'
7
6
  require 'minitest/autorun'
metadata CHANGED
@@ -1,56 +1,59 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: pdfmult
3
- version: !ruby/object:Gem::Version
4
- version: 1.3.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 25
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 3
9
+ - 1
10
+ version: 1.3.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Marcus Stollsteimer
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-09-22 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-01-04 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: rake
16
- requirement: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: '0'
22
- type: :development
23
22
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
30
- - !ruby/object:Gem::Dependency
31
- name: minitest
32
- requirement: !ruby/object:Gem::Requirement
23
+ requirement: &id001 !ruby/object:Gem::Requirement
33
24
  none: false
34
- requirements:
35
- - - ! '>='
36
- - !ruby/object:Gem::Version
37
- version: '0'
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
31
+ version: "0"
38
32
  type: :development
33
+ version_requirements: *id001
34
+ - !ruby/object:Gem::Dependency
35
+ name: minitest
39
36
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
37
+ requirement: &id002 !ruby/object:Gem::Requirement
41
38
  none: false
42
- requirements:
43
- - - ! '>='
44
- - !ruby/object:Gem::Version
45
- version: '0'
46
- description: pdfmult is a command line tool that rearranges multiple copies of a PDF
47
- page (shrunken) on one page. It is a wrapper for pdflatex with the pdfpages package.
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
45
+ version: "0"
46
+ type: :development
47
+ version_requirements: *id002
48
+ description: pdfmult is a command line tool that rearranges multiple copies of a PDF page (shrunken) on one page. It is a wrapper for pdflatex with the pdfpages package.
48
49
  email: sto.mar@web.de
49
- executables:
50
+ executables:
50
51
  - pdfmult
51
52
  extensions: []
53
+
52
54
  extra_rdoc_files: []
53
- files:
55
+
56
+ files:
54
57
  - README.md
55
58
  - Rakefile
56
59
  - pdfmult.gemspec
@@ -65,37 +68,44 @@ files:
65
68
  - test/test_pdfinfo.rb
66
69
  - test/test_latex_document.rb
67
70
  - test/sample.tex
71
+ - test/test_layout.rb
68
72
  - test/test_optionparser.rb
69
73
  - test/sample.pdf
70
74
  homepage: https://github.com/stomar/pdfmult/
71
- licenses:
75
+ licenses:
72
76
  - GPL-3
73
77
  post_install_message:
74
- rdoc_options:
78
+ rdoc_options:
75
79
  - --charset=UTF-8
76
- require_paths:
80
+ require_paths:
77
81
  - lib
78
- required_ruby_version: !ruby/object:Gem::Requirement
82
+ required_ruby_version: !ruby/object:Gem::Requirement
79
83
  none: false
80
- requirements:
81
- - - ! '>='
82
- - !ruby/object:Gem::Version
83
- version: '0'
84
- required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ hash: 3
88
+ segments:
89
+ - 0
90
+ version: "0"
91
+ required_rubygems_version: !ruby/object:Gem::Requirement
85
92
  none: false
86
- requirements:
87
- - - ! '>='
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- requirements:
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ hash: 3
97
+ segments:
98
+ - 0
99
+ version: "0"
100
+ requirements:
91
101
  - pdflatex and the pdfpages package
92
102
  rubyforge_project: pdfmult
93
103
  rubygems_version: 1.8.24
94
104
  signing_key:
95
105
  specification_version: 3
96
106
  summary: pdfmult - puts multiple copies of a PDF page on one page
97
- test_files:
107
+ test_files:
98
108
  - test/test_pdfinfo.rb
99
109
  - test/test_latex_document.rb
110
+ - test/test_layout.rb
100
111
  - test/test_optionparser.rb
101
- has_rdoc: