zip-container 0.8.0 → 0.9.0

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/Changes.rdoc CHANGED
@@ -1,5 +1,10 @@
1
1
  = Changes log for the ZIP Container Ruby Gem
2
2
 
3
+ == Version 0.9.0
4
+
5
+ * Generalize the Container Error class names.
6
+ * Polish example scripts.
7
+
3
8
  == Version 0.8.0
4
9
 
5
10
  * Abstract out all the underlying zip functionality and turn this library
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env ruby
1
2
  # Copyright (c) 2013 The University of Manchester, UK.
2
3
  #
3
4
  # All rights reserved.
@@ -33,13 +34,22 @@
33
34
  require 'rubygems'
34
35
  require 'zip-container'
35
36
 
36
- ZIP_FILE = "example.zip"
37
- file = ARGV.length > 0 ? ARGV[0] : ZIP_FILE
37
+ def usage
38
+ puts "Usage:\n create-zip-container <zip-container-file>"
39
+ exit 1
40
+ end
41
+
42
+ usage unless ARGV.length == 1
38
43
 
39
- File.delete(file) if File.exists?(file)
44
+ container_file = ARGV[0]
45
+
46
+ if File.exists?(container_file)
47
+ puts "File '#{container_file}' already exists. Exiting."
48
+ exit 1
49
+ end
40
50
 
41
51
  begin
42
- ZipContainer::Container.create(file, "application/epub+zip") do |c|
52
+ ZipContainer::Container.create(container_file, "application/epub+zip") do |c|
43
53
 
44
54
  # Add a cheery greeting file from a string.
45
55
  c.file.open("greeting.txt", "w") do |f|
@@ -55,7 +65,7 @@ begin
55
65
  # Add a explanation of this file.
56
66
  c.comment = "This is an example Container file!"
57
67
  end
58
- rescue ZipContainer::MalformedZipContainerError, Zip::ZipError => err
68
+ rescue ZipContainer::MalformedContainerError, Zip::ZipError => err
59
69
  puts err.to_s
60
70
  exit 1
61
71
  end
@@ -1,3 +1,4 @@
1
+ #!/usr/bin/env ruby
1
2
  # Copyright (c) 2013 The University of Manchester, UK.
2
3
  #
3
4
  # All rights reserved.
@@ -33,12 +34,18 @@
33
34
  require 'rubygems'
34
35
  require 'zip-container'
35
36
 
36
- ZIP_FILE = "example.zip"
37
- file = ARGV.length > 0 ? ARGV[0] : ZIP_FILE
37
+ def usage
38
+ puts "Usage:\n verify-zip-container <zip-container-file>"
39
+ exit 1
40
+ end
41
+
42
+ usage unless ARGV.length == 1
43
+
44
+ container_file = ARGV[0]
38
45
 
39
46
  begin
40
- ZipContainer::Container.verify!(file)
41
- rescue ZipContainer::MalformedZipContainerError, Zip::ZipError => err
47
+ ZipContainer::Container.verify!(container_file)
48
+ rescue ZipContainer::MalformedContainerError, Zip::ZipError => err
42
49
  puts err.to_s
43
50
  exit 1
44
51
  end
@@ -35,7 +35,7 @@ require 'rubygems'
35
35
  require 'zip-container'
36
36
 
37
37
  def usage
38
- puts "zip-container-info zip-container-file"
38
+ puts "Usage:\n zip-container-info <zip-container-file>"
39
39
  exit 1
40
40
  end
41
41
 
@@ -45,7 +45,7 @@ container_file = ARGV[0]
45
45
 
46
46
  begin
47
47
  container = ZipContainer::Container.open(container_file)
48
- rescue ZipContainer::MalformedZipContainerError, Zip::ZipError => err
48
+ rescue ZipContainer::MalformedContainerError, Zip::ZipError => err
49
49
  puts err.to_s
50
50
  exit 1
51
51
  end
@@ -358,12 +358,12 @@ module ZipContainer
358
358
  # Check mimetype file is present and correct.
359
359
  entry = @zipfile.find_entry(MIMETYPE_FILE)
360
360
 
361
- raise MalformedZipContainerError.new("'mimetype' file is missing.") if entry.nil?
361
+ raise MalformedContainerError.new("'mimetype' file is missing.") if entry.nil?
362
362
  if entry.localHeaderOffset != 0
363
- raise MalformedZipContainerError.new("'mimetype' file is not at offset 0 in the archive.")
363
+ raise MalformedContainerError.new("'mimetype' file is not at offset 0 in the archive.")
364
364
  end
365
365
  if entry.compression_method != ::Zip::ZipEntry::STORED
366
- raise MalformedZipContainerError.new("'mimetype' file is compressed.")
366
+ raise MalformedContainerError.new("'mimetype' file is compressed.")
367
367
  end
368
368
 
369
369
  true
@@ -61,7 +61,7 @@ module ZipContainer
61
61
  # Verify this ManagedDirectory for correctness. ManagedFiles registered
62
62
  # within it are verified recursively.
63
63
  #
64
- # A MalformedZipContainerError is raised if it does not pass verification.
64
+ # A MalformedContainerError is raised if it does not pass verification.
65
65
  def verify!
66
66
  super
67
67
  @files.values.each { |f| f.verify! }
@@ -111,15 +111,15 @@ module ZipContainer
111
111
  # :call-seq:
112
112
  # verify!
113
113
  #
114
- # Verify this ManagedEntry raising a MalformedZipContainerError if it
114
+ # Verify this ManagedEntry raising a MalformedContainerError if it
115
115
  # fails.
116
116
  #
117
117
  # Subclasses should override this method if they require more complex
118
118
  # verification to be done.
119
119
  def verify!
120
120
  unless !@required || exists?
121
- raise MalformedZipContainerError.new("Entry '#{full_name}' is required but "\
122
- "missing.")
121
+ raise MalformedContainerError.new("Entry '#{full_name}' is required "\
122
+ "but missing.")
123
123
  end
124
124
  end
125
125
 
@@ -67,11 +67,11 @@ module ZipContainer
67
67
  # Verify this ManagedFile for correctness. The contents are validated if
68
68
  # required.
69
69
  #
70
- # A MalformedZipContainerError is raised if it does not pass verification.
70
+ # A MalformedContainerError is raised if it does not pass verification.
71
71
  def verify!
72
72
  super
73
73
  unless (exists? ? validate : true)
74
- raise MalformedZipContainerError.new("The contents of file "\
74
+ raise MalformedContainerError.new("The contents of file "\
75
75
  "'#{full_name}' do not pass validation.")
76
76
  end
77
77
  end
@@ -34,29 +34,29 @@
34
34
  module ZipContainer
35
35
 
36
36
  # The base class of all other exceptions raised by this library.
37
- class ZipContainerError < RuntimeError
37
+ class ContainerError < RuntimeError
38
38
  end
39
39
 
40
- # This exception is raised when a bad ZipContainer is detected.
41
- class MalformedZipContainerError < ZipContainerError
40
+ # This exception is raised when a bad Container is detected.
41
+ class MalformedContainerError < ContainerError
42
42
 
43
43
  # :call-seq:
44
44
  # new(reason = "")
45
45
  #
46
- # Create a new MalformedZipContainerError with an optional reason for why
47
- # the ZipContainer file is malformed.
46
+ # Create a new MalformedContainerError with an optional reason for why
47
+ # the Container file is malformed.
48
48
  def initialize(reason = nil)
49
49
  if reason.nil?
50
- super("Malformed ZipContainer File.")
50
+ super("Malformed Container File.")
51
51
  else
52
- super("Malformed ZipContainer File: #{reason}")
52
+ super("Malformed Container File: #{reason}")
53
53
  end
54
54
  end
55
55
  end
56
56
 
57
57
  # This exception is raised when a clash occurs with a reserved or managed
58
58
  # name.
59
- class ReservedNameClashError < ZipContainerError
59
+ class ReservedNameClashError < ContainerError
60
60
 
61
61
  # :call-seq:
62
62
  # new(name)
data/test/tc_create.rb CHANGED
@@ -50,7 +50,7 @@ class TestCreation < Test::Unit::TestCase
50
50
  end
51
51
  end
52
52
 
53
- assert_nothing_raised(ZipContainer::MalformedZipContainerError, Zip::ZipError) do
53
+ assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
54
54
  ZipContainer::Container.verify!(filename)
55
55
  end
56
56
  end
@@ -72,7 +72,7 @@ class TestCreation < Test::Unit::TestCase
72
72
  end
73
73
  end
74
74
 
75
- assert_nothing_raised(ZipContainer::MalformedZipContainerError, Zip::ZipError) do
75
+ assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
76
76
  ZipContainer::Container.verify!(filename)
77
77
  end
78
78
  end
@@ -115,7 +115,7 @@ class TestCreation < Test::Unit::TestCase
115
115
  end
116
116
  end
117
117
 
118
- assert_nothing_raised(ZipContainer::MalformedZipContainerError, Zip::ZipError) do
118
+ assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
119
119
  ZipContainer::Container.open(filename) do |c|
120
120
  assert(c.on_disk?)
121
121
  refute(c.in_memory?)
@@ -86,7 +86,7 @@ class TestManagedEntries < Test::Unit::TestCase
86
86
  def test_fail_verification
87
87
  refute(ManagedZipContainer.verify($example))
88
88
 
89
- assert_raises(ZipContainer::MalformedZipContainerError) do
89
+ assert_raises(ZipContainer::MalformedContainerError) do
90
90
  ManagedZipContainer.verify!($example)
91
91
  end
92
92
  end
@@ -96,7 +96,7 @@ class TestManagedEntries < Test::Unit::TestCase
96
96
  def test_pass_verification
97
97
  assert(ExampleZipContainer.verify($example))
98
98
 
99
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
99
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
100
100
  ExampleZipContainer.verify!($example)
101
101
  end
102
102
  end
@@ -106,7 +106,7 @@ class TestManagedEntries < Test::Unit::TestCase
106
106
  def test_pass_verification_2
107
107
  assert(ExampleZipContainer2.verify($example))
108
108
 
109
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
109
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
110
110
  ExampleZipContainer2.verify!($example)
111
111
  end
112
112
  end
@@ -128,7 +128,7 @@ class TestManagedEntries < Test::Unit::TestCase
128
128
  end
129
129
  end
130
130
 
131
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
131
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
132
132
  ZipContainer::Container.verify!(filename)
133
133
  end
134
134
  end
@@ -142,14 +142,14 @@ class TestManagedEntries < Test::Unit::TestCase
142
142
 
143
143
  assert_nothing_raised do
144
144
  ManagedZipContainer.create(filename, $mimetype) do |c|
145
- assert_raises(ZipContainer::MalformedZipContainerError) do
145
+ assert_raises(ZipContainer::MalformedContainerError) do
146
146
  c.verify!
147
147
  end
148
148
  end
149
149
  end
150
150
 
151
151
  refute(ManagedZipContainer.verify(filename))
152
- assert_raises(ZipContainer::MalformedZipContainerError) do
152
+ assert_raises(ZipContainer::MalformedContainerError) do
153
153
  ManagedZipContainer.verify!(filename)
154
154
  end
155
155
  end
@@ -171,7 +171,7 @@ class TestManagedEntries < Test::Unit::TestCase
171
171
  end
172
172
 
173
173
  assert(ManagedZipContainer.verify(filename))
174
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
174
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
175
175
  ManagedZipContainer.verify!(filename)
176
176
  end
177
177
  end
@@ -198,7 +198,7 @@ class TestManagedEntries < Test::Unit::TestCase
198
198
 
199
199
  assert_nothing_raised do
200
200
  ExampleZipContainer2.create(filename) do |c|
201
- assert_raises(ZipContainer::MalformedZipContainerError) do
201
+ assert_raises(ZipContainer::MalformedContainerError) do
202
202
  c.verify!
203
203
  end
204
204
 
@@ -206,7 +206,7 @@ class TestManagedEntries < Test::Unit::TestCase
206
206
  f.puts "Goodbye!"
207
207
  end
208
208
 
209
- assert_raises(ZipContainer::MalformedZipContainerError) do
209
+ assert_raises(ZipContainer::MalformedContainerError) do
210
210
  c.verify!
211
211
  end
212
212
 
@@ -214,14 +214,14 @@ class TestManagedEntries < Test::Unit::TestCase
214
214
  f.puts "Hello, Y'All!"
215
215
  end
216
216
 
217
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
217
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
218
218
  c.verify!
219
219
  end
220
220
  end
221
221
  end
222
222
 
223
223
  assert(ExampleZipContainer2.verify(filename))
224
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
224
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
225
225
  ExampleZipContainer2.verify!(filename)
226
226
  end
227
227
  end
data/test/tc_read.rb CHANGED
@@ -46,7 +46,7 @@ class TestRead < Test::Unit::TestCase
46
46
 
47
47
  # Check that the empty container file does verify.
48
48
  def test_verify_empty_container
49
- assert_nothing_raised(ZipContainer::MalformedZipContainerError, Zip::ZipError) do
49
+ assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
50
50
  ZipContainer::Container.verify!($empty)
51
51
  end
52
52
 
@@ -55,7 +55,7 @@ class TestRead < Test::Unit::TestCase
55
55
 
56
56
  # Check that the empty zip file does not verify.
57
57
  def test_verify_empty_zip
58
- assert_raise(ZipContainer::MalformedZipContainerError) do
58
+ assert_raise(ZipContainer::MalformedContainerError) do
59
59
  ZipContainer::Container.verify!($empty_zip)
60
60
  end
61
61
 
@@ -64,7 +64,7 @@ class TestRead < Test::Unit::TestCase
64
64
 
65
65
  # Check that a compressed mimetype file is detected.
66
66
  def test_verify_compressed_mimetype
67
- assert_raise(ZipContainer::MalformedZipContainerError) do
67
+ assert_raise(ZipContainer::MalformedContainerError) do
68
68
  ZipContainer::Container.verify!($compressed_mimetype)
69
69
  end
70
70
 
@@ -83,7 +83,7 @@ class TestRead < Test::Unit::TestCase
83
83
  # Check reading files out of a container file and make sure we don't change
84
84
  # it.
85
85
  def test_read_files_from_container
86
- assert_nothing_raised(ZipContainer::MalformedZipContainerError, Zip::ZipError) do
86
+ assert_nothing_raised(ZipContainer::MalformedContainerError, Zip::ZipError) do
87
87
  ZipContainer::Container.open($example) do |c|
88
88
  assert(c.on_disk?)
89
89
  refute(c.in_memory?)
@@ -58,7 +58,7 @@ class TestReservedNames < Test::Unit::TestCase
58
58
  def test_verify_reserved_name
59
59
  assert(NewZipContainer.verify($example))
60
60
 
61
- assert_nothing_raised(ZipContainer::MalformedZipContainerError) do
61
+ assert_nothing_raised(ZipContainer::MalformedContainerError) do
62
62
  NewZipContainer.verify!($example)
63
63
  end
64
64
  end
data/version.yml CHANGED
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 8
3
+ :minor: 9
4
4
  :patch: 0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "zip-container"
8
- s.version = "0.8.0"
8
+ s.version = "0.9.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Robert Haines"]
12
- s.date = "2013-06-26"
12
+ s.date = "2013-06-27"
13
13
  s.description = "A Ruby library for working with ZIP Container Format files. See http://www.idpf.org/epub/30/spec/epub30-ocf.html for the OCF specification and https://learn.adobe.com/wiki/display/PDFNAV/Universal+Container+Format for the UCF specification."
14
14
  s.email = ["support@mygrid.org.uk"]
15
15
  s.extra_rdoc_files = [
@@ -22,8 +22,8 @@ Gem::Specification.new do |s|
22
22
  "Licence.rdoc",
23
23
  "Rakefile",
24
24
  "ReadMe.rdoc",
25
- "examples/create-zip-container.rb",
26
- "examples/verify-zip-container.rb",
25
+ "examples/create-zip-container",
26
+ "examples/verify-zip-container",
27
27
  "examples/zip-container-info",
28
28
  "lib/zip-container.rb",
29
29
  "lib/zip-container/container.rb",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zip-container
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.0
4
+ version: 0.9.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-26 00:00:00.000000000 Z
12
+ date: 2013-06-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -91,8 +91,8 @@ files:
91
91
  - Licence.rdoc
92
92
  - Rakefile
93
93
  - ReadMe.rdoc
94
- - examples/create-zip-container.rb
95
- - examples/verify-zip-container.rb
94
+ - examples/create-zip-container
95
+ - examples/verify-zip-container
96
96
  - examples/zip-container-info
97
97
  - lib/zip-container.rb
98
98
  - lib/zip-container/container.rb