doo_dah 0.1.0 → 0.1.1
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/VERSION +1 -1
- data/doo_dah.gemspec +80 -0
- data/lib/doo_dah/zip_entry.rb +18 -4
- metadata +18 -8
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/doo_dah.gemspec
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{doo_dah}
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Michael Collas"]
|
12
|
+
s.date = %q{2012-06-05}
|
13
|
+
s.description = %q{ This gem creates zip files using the STORE method - i.e. with no compression. This enables the generation of
|
14
|
+
zip files with a known size from streamed data, providing the size of the input files is known.
|
15
|
+
}
|
16
|
+
s.email = %q{mcollas@yahoo.com}
|
17
|
+
s.extra_rdoc_files = [
|
18
|
+
"README"
|
19
|
+
]
|
20
|
+
s.files = [
|
21
|
+
".rspec",
|
22
|
+
"README",
|
23
|
+
"Rakefile",
|
24
|
+
"VERSION",
|
25
|
+
"config/defaults.reek",
|
26
|
+
"doo_dah.gemspec",
|
27
|
+
"example/multi-language.rb",
|
28
|
+
"lib/doo_dah.rb",
|
29
|
+
"lib/doo_dah/dos_time.rb",
|
30
|
+
"lib/doo_dah/zip_entry.rb",
|
31
|
+
"lib/doo_dah/zip_header.rb",
|
32
|
+
"lib/doo_dah/zip_output_stream.rb",
|
33
|
+
"spec/central_directory_spec.rb",
|
34
|
+
"spec/dos_time_spec.rb",
|
35
|
+
"spec/local_directory_header_spec.rb",
|
36
|
+
"spec/spec_helper.rb",
|
37
|
+
"spec/support/byte_matcher.rb",
|
38
|
+
"spec/support/write_capturing_example_group.rb",
|
39
|
+
"spec/zip_entry_header_spec.rb",
|
40
|
+
"spec/zip_entry_spec.rb",
|
41
|
+
"spec/zip_header_spec.rb",
|
42
|
+
"spec/zip_output_stream_spec.rb"
|
43
|
+
]
|
44
|
+
s.homepage = %q{http://github.com/michaelcollas/doo_dah}
|
45
|
+
s.require_paths = ["lib"]
|
46
|
+
s.rubygems_version = %q{1.3.7}
|
47
|
+
s.summary = %q{Creates zip files suitable for streaming.}
|
48
|
+
s.test_files = [
|
49
|
+
"spec/central_directory_spec.rb",
|
50
|
+
"spec/dos_time_spec.rb",
|
51
|
+
"spec/local_directory_header_spec.rb",
|
52
|
+
"spec/spec_helper.rb",
|
53
|
+
"spec/support/byte_matcher.rb",
|
54
|
+
"spec/support/write_capturing_example_group.rb",
|
55
|
+
"spec/zip_entry_header_spec.rb",
|
56
|
+
"spec/zip_entry_spec.rb",
|
57
|
+
"spec/zip_header_spec.rb",
|
58
|
+
"spec/zip_output_stream_spec.rb"
|
59
|
+
]
|
60
|
+
|
61
|
+
if s.respond_to? :specification_version then
|
62
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
63
|
+
s.specification_version = 3
|
64
|
+
|
65
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
66
|
+
s.add_development_dependency(%q<rspec>, [">= 2.8.0"])
|
67
|
+
s.add_development_dependency(%q<reek>, [">= 1.2.8"])
|
68
|
+
s.add_development_dependency(%q<sexp_processor>, [">= 3.0.4"])
|
69
|
+
else
|
70
|
+
s.add_dependency(%q<rspec>, [">= 2.8.0"])
|
71
|
+
s.add_dependency(%q<reek>, [">= 1.2.8"])
|
72
|
+
s.add_dependency(%q<sexp_processor>, [">= 3.0.4"])
|
73
|
+
end
|
74
|
+
else
|
75
|
+
s.add_dependency(%q<rspec>, [">= 2.8.0"])
|
76
|
+
s.add_dependency(%q<reek>, [">= 1.2.8"])
|
77
|
+
s.add_dependency(%q<sexp_processor>, [">= 3.0.4"])
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
data/lib/doo_dah/zip_entry.rb
CHANGED
@@ -6,24 +6,38 @@ module DooDah
|
|
6
6
|
include LocalDirectoryHeader
|
7
7
|
include CentralDirectoryHeader
|
8
8
|
|
9
|
-
attr_reader :
|
9
|
+
attr_reader :name, :closed
|
10
10
|
alias_method :closed?, :closed
|
11
11
|
|
12
12
|
extend ::Forwardable
|
13
13
|
def_delegators :@zip_stream, :write, :current_offset
|
14
14
|
|
15
|
-
def initialize(zip_stream, name, size = 0)
|
15
|
+
def initialize(zip_stream, name, size = 0, crc = 0)
|
16
16
|
@zip_stream = zip_stream
|
17
17
|
@name = name
|
18
18
|
@crc = 0
|
19
|
-
@size =
|
19
|
+
@size = 0
|
20
|
+
@expected_crc = crc
|
21
|
+
@expected_size = size
|
20
22
|
@closed = false
|
21
23
|
write_local_header
|
22
24
|
end
|
23
25
|
|
26
|
+
def size
|
27
|
+
@expected_size != 0 ? @expected_size : @size
|
28
|
+
end
|
29
|
+
|
30
|
+
def crc
|
31
|
+
@expected_crc != 0 ? @expected_crc : @crc
|
32
|
+
end
|
33
|
+
|
34
|
+
def local_footer_required?
|
35
|
+
@expected_size == 0 || @expected_crc == 0
|
36
|
+
end
|
37
|
+
|
24
38
|
def close
|
25
39
|
return if closed
|
26
|
-
write_local_footer
|
40
|
+
write_local_footer if local_footer_required?
|
27
41
|
@closed = true
|
28
42
|
end
|
29
43
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: doo_dah
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 25
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael Collas
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-06-
|
18
|
+
date: 2012-06-05 00:00:00 +10:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -80,6 +80,7 @@ files:
|
|
80
80
|
- Rakefile
|
81
81
|
- VERSION
|
82
82
|
- config/defaults.reek
|
83
|
+
- doo_dah.gemspec
|
83
84
|
- example/multi-language.rb
|
84
85
|
- lib/doo_dah.rb
|
85
86
|
- lib/doo_dah/dos_time.rb
|
@@ -126,9 +127,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
126
127
|
requirements: []
|
127
128
|
|
128
129
|
rubyforge_project:
|
129
|
-
rubygems_version: 1.
|
130
|
+
rubygems_version: 1.3.7
|
130
131
|
signing_key:
|
131
132
|
specification_version: 3
|
132
133
|
summary: Creates zip files suitable for streaming.
|
133
|
-
test_files:
|
134
|
-
|
134
|
+
test_files:
|
135
|
+
- spec/central_directory_spec.rb
|
136
|
+
- spec/dos_time_spec.rb
|
137
|
+
- spec/local_directory_header_spec.rb
|
138
|
+
- spec/spec_helper.rb
|
139
|
+
- spec/support/byte_matcher.rb
|
140
|
+
- spec/support/write_capturing_example_group.rb
|
141
|
+
- spec/zip_entry_header_spec.rb
|
142
|
+
- spec/zip_entry_spec.rb
|
143
|
+
- spec/zip_header_spec.rb
|
144
|
+
- spec/zip_output_stream_spec.rb
|