file-dependencies 0.1.5 → 0.1.6

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.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 16ff079c67078c08116d4845c5553480d46e8c18
4
+ data.tar.gz: ddd56e8f570a0d1b3db3ca8468525bfe189fa90a
5
+ SHA512:
6
+ metadata.gz: 4c7a49ef3fbf5b46f68026ff09d1e5a53209b6b5f7f983baf5a13047b4fdb078edbede115dc7935b3643077c776bfc34f0c8a8edd61d74c63778000a1b4803f8
7
+ data.tar.gz: 625e720434aba86b7706f515c887b596d917e15660e5766eee689fc77ab9428dfe29c07a885fa658216bb8876ec172b9a592cc1dce774019c498ae4a3482744a
@@ -6,60 +6,74 @@ module FileDependencies
6
6
  module Archive
7
7
  def ungzip(file, outdir)
8
8
  output = ::File.join(outdir, file.gsub('.gz', '').split(::File::SEPARATOR).last)
9
- tgz = Zlib::GzipReader.new(::File.open(file))
10
- begin
11
- ::File.open(output, "w") do |out|
12
- IO.copy_stream(tgz, out)
9
+
10
+ ::File.open(file) do |gzip_file|
11
+ tgz = Zlib::GzipReader.new(gzip_file)
12
+
13
+ begin
14
+ ::File.open(output, "w") do |out|
15
+ IO.copy_stream(tgz, out)
16
+ end
17
+ rescue
18
+ ::File.unlink(output) if ::File.exist?(output)
19
+ raise
20
+ ensure
21
+ tgz.close
13
22
  end
14
- ::File.unlink(file)
15
- rescue
16
- ::File.unlink(output) if ::File.file?(output)
17
- raise
18
23
  end
19
- tgz.close
24
+ ensure
25
+ ::File.unlink(file) if ::File.file?(file)
20
26
  end
21
27
  module_function :ungzip
22
28
 
23
29
  def untar(tarball, &block)
24
- tgz = Zlib::GzipReader.new(::File.open(tarball))
25
- tar = ::Archive::Tar::Minitar::Input.open(tgz)
26
- tar.each do |entry|
27
- path = block.call(entry)
28
- next if path.nil?
29
- parent = ::File.dirname(path)
30
+ ::File.open(tarball) do |tgzfile|
31
+ tgz = Zlib::GzipReader.new(tgzfile)
32
+ tar = ::Archive::Tar::Minitar::Input.open(tgz)
30
33
 
31
- FileUtils.mkdir_p(parent) unless ::File.directory?(parent)
34
+ begin
35
+ tar.each do |entry|
36
+ path = block.call(entry)
37
+ next if path.nil?
38
+ parent = ::File.dirname(path)
32
39
 
33
- # Skip this file if the output file is the same size
34
- if entry.directory?
35
- FileUtils.mkdir_p(path) unless ::File.directory?(path)
36
- else
37
- entry_mode = entry.instance_eval { @mode } & 0777
38
- if ::File.exist?(path)
39
- stat = ::File.stat(path)
40
- # TODO(sissel): Submit a patch to archive-tar-minitar upstream to
41
- # expose headers in the entry.
42
- entry_size = entry.instance_eval { @size }
43
- # If file sizes are same, skip writing.
44
- next if stat.size == entry_size && (stat.mode & 0777) == entry_mode
45
- end
46
- puts "Extracting #{entry.full_name} from #{tarball} #{entry_mode.to_s(8)}" if $DEBUG
47
- ::File.open(path, "w") do |fd|
48
- # eof? check lets us skip empty files. Necessary because the API provided by
49
- # Archive::Tar::Minitar::Reader::EntryStream only mostly acts like an
50
- # IO object. Something about empty files in this EntryStream causes
51
- # IO.copy_stream to throw "can't convert nil into String" on JRuby
52
- # TODO(sissel): File a bug about this.
53
- until entry.eof?
54
- chunk = entry.read(16_384)
55
- fd.write(chunk)
40
+ FileUtils.mkdir_p(parent) unless ::File.directory?(parent)
41
+
42
+ # Skip this file if the output file is the same size
43
+ if entry.directory?
44
+ FileUtils.mkdir_p(path) unless ::File.directory?(path)
45
+ else
46
+ entry_mode = entry.instance_eval { @mode } & 0777
47
+ if ::File.exist?(path)
48
+ stat = ::File.stat(path)
49
+ # TODO(sissel): Submit a patch to archive-tar-minitar upstream to
50
+ # expose headers in the entry.
51
+ entry_size = entry.instance_eval { @size }
52
+ # If file sizes are same, skip writing.
53
+ next if stat.size == entry_size && (stat.mode & 0777) == entry_mode
54
+ end
55
+ puts "Extracting #{entry.full_name} from #{tarball} #{entry_mode.to_s(8)}" if $DEBUG
56
+ ::File.open(path, "w") do |fd|
57
+ # eof? check lets us skip empty files. Necessary because the API provided by
58
+ # Archive::Tar::Minitar::Reader::EntryStream only mostly acts like an
59
+ # IO object. Something about empty files in this EntryStream causes
60
+ # IO.copy_stream to throw "can't convert nil into String" on JRuby
61
+ # TODO(sissel): File a bug about this.
62
+ until entry.eof?
63
+ chunk = entry.read(16_384)
64
+ fd.write(chunk)
65
+ end
66
+ # IO.copy_stream(entry, fd)
67
+ end
68
+ ::File.chmod(entry_mode, path)
56
69
  end
57
- # IO.copy_stream(entry, fd)
58
70
  end
59
- ::File.chmod(entry_mode, path)
71
+ ensure
72
+ tar.close
73
+ tgz.close
60
74
  end
61
75
  end
62
- tar.close
76
+ ensure
63
77
  ::File.unlink(tarball) if ::File.file?(tarball)
64
78
  end # def untar
65
79
  module_function :untar
@@ -1,5 +1,5 @@
1
1
  # Note to authors: this should not include dashes because 'gem' barfs if
2
2
  # you include a dash in the version string.
3
3
  module FileDependencies
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
@@ -1,3 +1,3 @@
1
1
  require 'file-dependencies/gem'
2
2
 
3
- FileDependencies::Gem.hook
3
+ #FileDependencies::Gem.hook
@@ -7,7 +7,7 @@ describe FileDependencies::Archive do
7
7
 
8
8
  after do
9
9
  FileUtils.remove_entry_secure(gzipfile) if ::File.exist?(gzipfile)
10
- FileUtils.remove_entry_secure(expected_file)
10
+ FileUtils.remove_entry_secure(expected_file) if ::File.exist?(expected_file)
11
11
  FileUtils.remove_entry_secure(tmpdir)
12
12
  end
13
13
  let(:gzipfile) { Assist.generate_gzip('some_content') }
@@ -29,7 +29,7 @@ describe FileDependencies::Archive do
29
29
 
30
30
  after do
31
31
  FileUtils.remove_entry_secure(tmpdir)
32
- FileUtils.remove_entry_secure(file)
32
+ FileUtils.remove_entry_secure(file) if ::File.file?(file)
33
33
  end
34
34
 
35
35
  let(:file) { Assist.generate_file('some_content') }
metadata CHANGED
@@ -1,126 +1,111 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: file-dependencies
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
5
- prerelease:
4
+ version: 0.1.6
6
5
  platform: ruby
7
6
  authors:
8
7
  - Richard Pijnenburg
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2015-02-17 00:00:00.000000000 Z
11
+ date: 2015-02-18 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
- name: minitar
16
14
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
15
  requirements:
19
- - - ! '>='
16
+ - - '>='
20
17
  - !ruby/object:Gem::Version
21
18
  version: '0'
22
- type: :runtime
19
+ name: minitar
23
20
  prerelease: false
21
+ type: :runtime
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: '0'
30
27
  - !ruby/object:Gem::Dependency
31
- name: rake
32
28
  requirement: !ruby/object:Gem::Requirement
33
- none: false
34
29
  requirements:
35
30
  - - ~>
36
31
  - !ruby/object:Gem::Version
37
32
  version: '10.2'
38
- type: :development
33
+ name: rake
39
34
  prerelease: false
35
+ type: :development
40
36
  version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
37
  requirements:
43
38
  - - ~>
44
39
  - !ruby/object:Gem::Version
45
40
  version: '10.2'
46
41
  - !ruby/object:Gem::Dependency
47
- name: rspec
48
42
  requirement: !ruby/object:Gem::Requirement
49
- none: false
50
43
  requirements:
51
- - - ! '>='
44
+ - - '>='
52
45
  - !ruby/object:Gem::Version
53
46
  version: '0'
54
- type: :development
47
+ name: rspec
55
48
  prerelease: false
49
+ type: :development
56
50
  version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
51
  requirements:
59
- - - ! '>='
52
+ - - '>='
60
53
  - !ruby/object:Gem::Version
61
54
  version: '0'
62
55
  - !ruby/object:Gem::Dependency
63
- name: stud
64
56
  requirement: !ruby/object:Gem::Requirement
65
- none: false
66
57
  requirements:
67
- - - ! '>='
58
+ - - '>='
68
59
  - !ruby/object:Gem::Version
69
60
  version: '0'
70
- type: :development
61
+ name: stud
71
62
  prerelease: false
63
+ type: :development
72
64
  version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
65
  requirements:
75
- - - ! '>='
66
+ - - '>='
76
67
  - !ruby/object:Gem::Version
77
68
  version: '0'
78
69
  - !ruby/object:Gem::Dependency
79
- name: webmock
80
70
  requirement: !ruby/object:Gem::Requirement
81
- none: false
82
71
  requirements:
83
- - - ! '>='
72
+ - - '>='
84
73
  - !ruby/object:Gem::Version
85
74
  version: '0'
86
- type: :development
75
+ name: webmock
87
76
  prerelease: false
77
+ type: :development
88
78
  version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
79
  requirements:
91
- - - ! '>='
80
+ - - '>='
92
81
  - !ruby/object:Gem::Version
93
82
  version: '0'
94
83
  - !ruby/object:Gem::Dependency
95
- name: coveralls
96
84
  requirement: !ruby/object:Gem::Requirement
97
- none: false
98
85
  requirements:
99
- - - ! '>='
86
+ - - '>='
100
87
  - !ruby/object:Gem::Version
101
88
  version: '0'
102
- type: :development
89
+ name: coveralls
103
90
  prerelease: false
91
+ type: :development
104
92
  version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
93
  requirements:
107
- - - ! '>='
94
+ - - '>='
108
95
  - !ruby/object:Gem::Version
109
96
  version: '0'
110
97
  - !ruby/object:Gem::Dependency
111
- name: codeclimate-test-reporter
112
98
  requirement: !ruby/object:Gem::Requirement
113
- none: false
114
99
  requirements:
115
- - - ! '>='
100
+ - - '>='
116
101
  - !ruby/object:Gem::Version
117
102
  version: '0'
118
- type: :development
103
+ name: codeclimate-test-reporter
119
104
  prerelease: false
105
+ type: :development
120
106
  version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
107
  requirements:
123
- - - ! '>='
108
+ - - '>='
124
109
  - !ruby/object:Gem::Version
125
110
  version: '0'
126
111
  description: manage file dependencies for gems
@@ -152,26 +137,25 @@ files:
152
137
  homepage: https://github.com/electrical/file-dependencies
153
138
  licenses:
154
139
  - APACHE 2.0
155
- post_install_message:
140
+ metadata: {}
141
+ post_install_message:
156
142
  rdoc_options: []
157
143
  require_paths:
158
144
  - lib
159
145
  required_ruby_version: !ruby/object:Gem::Requirement
160
- none: false
161
146
  requirements:
162
- - - ! '>='
147
+ - - '>='
163
148
  - !ruby/object:Gem::Version
164
149
  version: '0'
165
150
  required_rubygems_version: !ruby/object:Gem::Requirement
166
- none: false
167
151
  requirements:
168
- - - ! '>='
152
+ - - '>='
169
153
  - !ruby/object:Gem::Version
170
154
  version: '0'
171
155
  requirements: []
172
- rubyforge_project:
173
- rubygems_version: 1.8.23.2
174
- signing_key:
175
- specification_version: 3
156
+ rubyforge_project:
157
+ rubygems_version: 2.1.9
158
+ signing_key:
159
+ specification_version: 4
176
160
  summary: manage file dependencies for gems
177
161
  test_files: []