pdf-toolkit 0.5.0 → 1.0.0.rc1
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/README.md +42 -0
- data/Rakefile +7 -80
- data/lib/pdf/toolkit.rb +34 -257
- data/lib/pdf/toolkit/class_methods.rb +78 -0
- data/lib/pdf/toolkit/coercions.rb +52 -0
- data/lib/pdf/toolkit/native.rb +49 -0
- data/pdf-toolkit.gemspec +26 -0
- data/test/pdf_toolkit_test.rb +18 -2
- data/test/test_coercions.rb +29 -0
- metadata +53 -54
- data/README +0 -4
- data/setup.rb +0 -1585
- data/test/pdf_toolkit_active_record_test.rb +0 -84
- data/test/pdf_toolkit_active_record_test.rb~ +0 -84
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'pdf/toolkit'
|
3
|
-
require 'tempfile'
|
4
|
-
# require 'active_record'
|
5
|
-
# require 'active_record/validations'
|
6
|
-
# require 'active_record/callbacks'
|
7
|
-
# require 'active_record/timestamp'
|
8
|
-
|
9
|
-
class PDF::Toolkit
|
10
|
-
end
|
11
|
-
|
12
|
-
class MyPDF < PDF::Toolkit
|
13
|
-
loot_active_record
|
14
|
-
self.record_timestamps = true
|
15
|
-
validates_presence_of :author
|
16
|
-
before_save do |object|
|
17
|
-
object.producer = "PDF::Toolkit Test"
|
18
|
-
end
|
19
|
-
self.default_permissions = %w(Printing ModifyAnnotations)
|
20
|
-
end
|
21
|
-
|
22
|
-
class PDFToolkitActiveRecordTest < Test::Unit::TestCase
|
23
|
-
DATA = File.open(File.join(File.dirname(__FILE__),"pdfs","blank.pdf")).read
|
24
|
-
|
25
|
-
def setup
|
26
|
-
@tempfiles = []
|
27
|
-
@pdf = new_pdf
|
28
|
-
@pdftk = MyPDF.new(@pdf)
|
29
|
-
end
|
30
|
-
|
31
|
-
def teardown
|
32
|
-
(@tempfiles || []).each do |tempfile|
|
33
|
-
tempfile.close
|
34
|
-
tempfile.unlink
|
35
|
-
end
|
36
|
-
@tempfiles = nil
|
37
|
-
end
|
38
|
-
|
39
|
-
def new_pdf
|
40
|
-
tempfile = Tempfile.open("pdftktest")
|
41
|
-
tempfile.write(DATA)
|
42
|
-
tempfile.close
|
43
|
-
@tempfiles << tempfile if @tempfiles
|
44
|
-
return tempfile
|
45
|
-
end
|
46
|
-
|
47
|
-
def new_tempfile
|
48
|
-
tempfile = Tempfile.open("pdftktest")
|
49
|
-
tempfile.close
|
50
|
-
@tempfiles << tempfile if @tempfiles
|
51
|
-
return tempfile.path
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_invalid
|
55
|
-
PDF::Toolkit.loot_active_record # Ensure a double loot is harmless
|
56
|
-
assert_nil @pdftk.author
|
57
|
-
assert_equal false, @pdftk.valid?
|
58
|
-
assert_nil @pdftk.save_as(new_tempfile)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_save
|
62
|
-
@pdftk.author = "John Smith"
|
63
|
-
assert_equal true, @pdftk.valid?
|
64
|
-
assert @pdftk.save
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_callback
|
68
|
-
@pdftk.author = "Andy Hunt"
|
69
|
-
assert @pdftk.save
|
70
|
-
@pdftk.reload
|
71
|
-
assert_match /PDF::Toolkit/, @pdftk.producer
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_timestamp
|
75
|
-
before = Time.now
|
76
|
-
@pdftk.author = "Dave Thomas"
|
77
|
-
assert @pdftk.save
|
78
|
-
@pdftk.reload
|
79
|
-
after = Time.now
|
80
|
-
assert @pdftk.updated_at >= before-1 && @pdftk.updated_at <= after,
|
81
|
-
"Timestamp (#{@pdftk.updated_at}) out of range"
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|
@@ -1,84 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require 'pdf/toolkit'
|
3
|
-
require 'tempfile'
|
4
|
-
# require 'active_record'
|
5
|
-
require 'active_record/validations'
|
6
|
-
# require 'active_record/callbacks'
|
7
|
-
# require 'active_record/timestamp'
|
8
|
-
|
9
|
-
class PDF::Toolkit
|
10
|
-
end
|
11
|
-
|
12
|
-
class MyPDF < PDF::Toolkit
|
13
|
-
loot_active_record
|
14
|
-
self.record_timestamps = true
|
15
|
-
validates_presence_of :author
|
16
|
-
before_save do |object|
|
17
|
-
object.producer = "PDF::Toolkit Test"
|
18
|
-
end
|
19
|
-
self.default_permissions = %w(Printing ModifyAnnotations)
|
20
|
-
end
|
21
|
-
|
22
|
-
class PDFToolkitActiveRecordTest < Test::Unit::TestCase
|
23
|
-
DATA = File.open(File.join(File.dirname(__FILE__),"pdfs","blank.pdf")).read
|
24
|
-
|
25
|
-
def setup
|
26
|
-
@tempfiles = []
|
27
|
-
@pdf = new_pdf
|
28
|
-
@pdftk = MyPDF.new(@pdf)
|
29
|
-
end
|
30
|
-
|
31
|
-
def teardown
|
32
|
-
(@tempfiles || []).each do |tempfile|
|
33
|
-
tempfile.close
|
34
|
-
tempfile.unlink
|
35
|
-
end
|
36
|
-
@tempfiles = nil
|
37
|
-
end
|
38
|
-
|
39
|
-
def new_pdf
|
40
|
-
tempfile = Tempfile.open("pdftktest")
|
41
|
-
tempfile.write(DATA)
|
42
|
-
tempfile.close
|
43
|
-
@tempfiles << tempfile if @tempfiles
|
44
|
-
return tempfile
|
45
|
-
end
|
46
|
-
|
47
|
-
def new_tempfile
|
48
|
-
tempfile = Tempfile.open("pdftktest")
|
49
|
-
tempfile.close
|
50
|
-
@tempfiles << tempfile if @tempfiles
|
51
|
-
return tempfile.path
|
52
|
-
end
|
53
|
-
|
54
|
-
def test_invalid
|
55
|
-
PDF::Toolkit.loot_active_record # Ensure a double loot is harmless
|
56
|
-
assert_nil @pdftk.author
|
57
|
-
assert_equal false, @pdftk.valid?
|
58
|
-
assert_nil @pdftk.save_as(new_tempfile)
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_save
|
62
|
-
@pdftk.author = "John Smith"
|
63
|
-
assert_equal true, @pdftk.valid?
|
64
|
-
assert @pdftk.save
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_callback
|
68
|
-
@pdftk.author = "Andy Hunt"
|
69
|
-
assert @pdftk.save
|
70
|
-
@pdftk.reload
|
71
|
-
assert_match /PDF::Toolkit/, @pdftk.producer
|
72
|
-
end
|
73
|
-
|
74
|
-
def test_timestamp
|
75
|
-
before = Time.now
|
76
|
-
@pdftk.author = "Dave Thomas"
|
77
|
-
assert @pdftk.save
|
78
|
-
@pdftk.reload
|
79
|
-
after = Time.now
|
80
|
-
assert @pdftk.updated_at >= before-1 && @pdftk.updated_at <= after,
|
81
|
-
"Timestamp (#{@pdftk.updated_at}) out of range"
|
82
|
-
end
|
83
|
-
|
84
|
-
end
|