minitar 0.8 → 0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Contributing.md +48 -46
- data/History.md +161 -123
- data/Manifest.txt +1 -0
- data/README.rdoc +1 -21
- data/Rakefile +53 -33
- data/lib/archive/tar/minitar/input.rb +96 -75
- data/lib/archive/tar/minitar/output.rb +6 -6
- data/lib/archive/tar/minitar/posix_header.rb +36 -34
- data/lib/archive/tar/minitar/reader.rb +47 -33
- data/lib/archive/tar/minitar/writer.rb +64 -35
- data/lib/archive/tar/minitar.rb +47 -46
- data/lib/archive-tar-minitar.rb +1 -1
- data/lib/minitar.rb +1 -1
- data/support/hoe/deprecated_gem.rb +64 -0
- data/test/minitest_helper.rb +7 -6
- data/test/support/tar_test_helpers.rb +45 -41
- data/test/test_tar_header.rb +30 -31
- data/test/test_tar_input.rb +38 -30
- data/test/test_tar_output.rb +12 -12
- data/test/test_tar_reader.rb +23 -23
- data/test/test_tar_writer.rb +119 -69
- metadata +70 -47
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1599b7ba095a509ecf3e4cb540bc364307275322f7794cc57a08cfe338bf410c
|
4
|
+
data.tar.gz: e2772f9012f50c7fef8ae5b8c8f30a7ac6e43946ceff776cd53ad9d8f5749eb2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0d2fd6dfbfeb28f40ad1bc0654fc1dc2cb2ca9743006009bd6af0f38f1de164a47043c0f8f45db64c668617d8f62154efe73d1c211227f52fa4a45060b218053
|
7
|
+
data.tar.gz: 7227d0e1ee873ca7cea9bef8709b3144f3d218391fc5655c86fba83716dbf78733b3632fac0980d7ce64f258c64004416263d1d2d30f5137bcd11bfe31f28214
|
data/Contributing.md
CHANGED
@@ -4,21 +4,21 @@ I value any contribution to minitar you can provide: a bug report, a feature
|
|
4
4
|
request, or code contributions. There are a few guidelines for contributing to
|
5
5
|
minitar:
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
- Code changes _will not_ be accepted without tests. The test suite is
|
8
|
+
written with [Minitest][].
|
9
|
+
- Match my coding style.
|
10
|
+
- Use a thoughtfully-named topic branch that contains your change. Rebase
|
11
|
+
your commits into logical chunks as necessary.
|
12
|
+
- Use [quality commit messages][].
|
13
|
+
- Do not change the version number; when your patch is accepted and a release
|
14
|
+
is made, the version will be updated at that point.
|
15
|
+
- Submit a GitHub pull request with your changes.
|
16
|
+
- New or changed behaviours require appropriate documentation.
|
17
17
|
|
18
18
|
### Test Dependencies
|
19
19
|
|
20
|
-
minitar uses Ryan Davis’s [Hoe][] to manage the release process, and it adds
|
21
|
-
number of rake tasks. You will mostly be interested in:
|
20
|
+
minitar uses Ryan Davis’s [Hoe][] to manage the release process, and it adds
|
21
|
+
a number of rake tasks. You will mostly be interested in:
|
22
22
|
|
23
23
|
$ rake
|
24
24
|
|
@@ -29,14 +29,14 @@ which runs the tests the same way that:
|
|
29
29
|
|
30
30
|
will do.
|
31
31
|
|
32
|
-
To assist with the installation of the development dependencies for minitar,
|
33
|
-
have provided the simplest possible Gemfile pointing to the (generated)
|
32
|
+
To assist with the installation of the development dependencies for minitar,
|
33
|
+
I have provided the simplest possible Gemfile pointing to the (generated)
|
34
34
|
`minitar.gemspec` file. This will permit you to do:
|
35
35
|
|
36
36
|
$ bundle install
|
37
37
|
|
38
|
-
to get the development dependencies. If you aleady have `hoe` installed, you
|
39
|
-
|
38
|
+
to get the development dependencies. If you aleady have `hoe` installed, you can
|
39
|
+
accomplish the same thing with:
|
40
40
|
|
41
41
|
$ rake newb
|
42
42
|
|
@@ -51,40 +51,42 @@ You can run tests with code coverage analysis by running:
|
|
51
51
|
|
52
52
|
Here's the most direct way to get your work merged into the project:
|
53
53
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
change does and the why you think it should be merged.
|
54
|
+
- Fork the project.
|
55
|
+
- Clone down your fork (`git clone git://github.com/<username>/minitar.git`).
|
56
|
+
- Create a topic branch to contain your change (`git checkout -b my_awesome_feature`).
|
57
|
+
- Hack away, add tests. Not necessarily in that order.
|
58
|
+
- Make sure everything still passes by running `rake`.
|
59
|
+
- If necessary, rebase your commits into logical chunks, without errors.
|
60
|
+
- Push the branch up (`git push origin my_awesome_feature`).
|
61
|
+
- Create a pull request against halostatue/minitar and describe what your
|
62
|
+
change does and the why you think it should be merged.
|
64
63
|
|
65
64
|
### Contributors
|
66
65
|
|
67
|
-
|
68
|
-
|
66
|
+
- Austin Ziegler created minitar, based on work originally written by
|
67
|
+
Mauricio Fernández for rpa-base.
|
69
68
|
|
70
69
|
Thanks to everyone who has contributed to minitar:
|
71
70
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
71
|
+
- Akinori MUSHA (knu)
|
72
|
+
- Antoine Toulme
|
73
|
+
- Curtis Sampson
|
74
|
+
- Daniel J. Berger
|
75
|
+
- dearblue
|
76
|
+
- inkstak
|
77
|
+
- Jorie Tappa
|
78
|
+
- Kazuyoshi Kato
|
79
|
+
- Kevin McDermott
|
80
|
+
- Matthew Kent
|
81
|
+
- Merten Falk
|
82
|
+
- Michal Suchanek
|
83
|
+
- Mike Furr
|
84
|
+
- ooooooo_q
|
85
|
+
- Pete Fritchman
|
86
|
+
- Vijay (bv-vijay)
|
87
|
+
- Yamamoto Kōhei
|
88
|
+
- Zach Dennis
|
89
|
+
|
90
|
+
[minitest]: https://github.com/seattlerb/minitest
|
89
91
|
[quality commit messages]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
|
90
|
-
[
|
92
|
+
[hoe]: https://github.com/seattlerb/hoe
|
data/History.md
CHANGED
@@ -1,163 +1,201 @@
|
|
1
|
+
# History
|
2
|
+
|
3
|
+
## 0.12 / 2024-08-DD
|
4
|
+
|
5
|
+
- Properly handle very long GNU filenames, resolving [#46][].
|
6
|
+
- Handle very long GNU filenames that are 512 or more bytes, resolving [#45][].
|
7
|
+
Originally implemented in [#47][] by Vijay, but accidentally closed.
|
8
|
+
|
9
|
+
## 0.11 / 2022-12-31
|
10
|
+
|
11
|
+
- symlink support is complete. Merged as PR [#42][], rebased and built on top of
|
12
|
+
PR [#12][] by fetep.
|
13
|
+
|
14
|
+
- kymmt90 fixed a documentation error on Minitar.pack in PR [#43][].
|
15
|
+
|
16
|
+
- This version is a soft-deprecation of all versions before Ruby 2.7, as they
|
17
|
+
will no longer be tested in CI.
|
18
|
+
|
19
|
+
## 0.10 / 2022-03-26
|
20
|
+
|
21
|
+
- nevesenin fixed an issue with long filename handling. Merged as PR [#40][].
|
22
|
+
|
23
|
+
## 0.9 / 2019-09-04
|
24
|
+
|
25
|
+
- jtappa added the ability to skip fsync with a new option to Minitar.unpack
|
26
|
+
and Minitar::Input#extract_entry. Provide `:fsync => false` as the last
|
27
|
+
parameter to enable. Merged from a modified version of PR [#37][].
|
28
|
+
|
1
29
|
## 0.8 / 2019-01-05
|
2
30
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
31
|
+
- inkstak resolved an issue introduced in the fix for [#31][] by allowing
|
32
|
+
spaces to be considered valid characters in strict octal handling. Octal
|
33
|
+
conversion ignores leading spaces. Merged from a slightly modified version
|
34
|
+
of PR [#35][].
|
7
35
|
|
8
|
-
|
9
|
-
|
10
|
-
|
36
|
+
- dearblue contributed PR [#32][] providing an explicit call to #bytesize for
|
37
|
+
strings that include multibyte characters. The PR has been modified to be
|
38
|
+
compatible with older versions of Ruby and extend tests.
|
11
39
|
|
12
|
-
|
13
|
-
|
14
|
-
|
40
|
+
- Akinori MUSHA (knu) contributed PR [#36][] that treats certain badly
|
41
|
+
encoded regular files (with names ending in `/`) as if they were
|
42
|
+
directories on decode.
|
15
43
|
|
16
44
|
## 0.7 / 2018-02-19
|
17
45
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
46
|
+
- Fixed issue [#28][] with a modified version of PR [#29][] covering the
|
47
|
+
security policy and position for Minitar. Thanks so much to ooooooo_q for
|
48
|
+
the report and an initial patch. Additional information was added as
|
49
|
+
[#30][].
|
22
50
|
|
23
|
-
|
24
|
-
|
51
|
+
- dearblue contributed PR [#33][] providing a fix for Minitar::Reader when
|
52
|
+
the IO-like object does not have a `#pos` method.
|
25
53
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
54
|
+
- Kevin McDermott contributed PR [#34][] so that an InvalidTarStream is
|
55
|
+
raised if the tar header is not valid, preventing incorrect streaming of
|
56
|
+
files from a non-tarfile. This is a minor breaking change, so the version
|
57
|
+
has been bumped accordingly.
|
30
58
|
|
31
|
-
|
32
|
-
|
59
|
+
- Kazuyoshi Kato contributed PR [#26][] providing support for the GNU tar
|
60
|
+
long filename extension.
|
33
61
|
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
62
|
+
- Addressed a potential DOS with negative size fields in tar headers
|
63
|
+
([#31][]). This has been handled in two ways: the size field in a tar
|
64
|
+
header is interpreted as a strict octal value and the Minitar reader will
|
65
|
+
raise an InvalidTarStream if the size ends up being negative anyway.
|
38
66
|
|
39
67
|
## 0.6.1 / 2017-02-07
|
40
68
|
|
41
|
-
|
42
|
-
|
69
|
+
- Fixed issue [#24][] where streams were being improperly closed immediately
|
70
|
+
on open unless there was a block provided.
|
43
71
|
|
44
|
-
|
45
|
-
|
72
|
+
- Hopefully fixes issue [#23][] by releasing archive-tar-minitar after
|
73
|
+
minitar-cli is available.
|
46
74
|
|
47
75
|
## 0.6 / 2017-02-07
|
48
76
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
77
|
+
- Breaking Changes:
|
78
|
+
|
79
|
+
- Extracted `bin/minitar` into a new gem, `minitar-cli`. No, I am _not_
|
80
|
+
going to bump the major version for this. As far as I can tell, few
|
81
|
+
people use the command-line utility anyway. (Installing
|
82
|
+
`archive-tar-minitar` will install both `minitar` and `minitar-cli`, at
|
83
|
+
least until version 1.0.)
|
84
|
+
|
85
|
+
- Minitar extraction before 0.6 traverses directories if the tarball
|
86
|
+
includes a relative directory reference, as reported in [#16][] by
|
87
|
+
@ecneladis. This has been disallowed entirely and will throw a
|
88
|
+
SecureRelativePathError when found. Additionally, if the final
|
89
|
+
destination of an entry is an already-existing symbolic link, the
|
90
|
+
existing symbolic link will be removed and the file will be written
|
91
|
+
correctly (on platforms that support symblic links).
|
92
|
+
|
93
|
+
- Enhancements:
|
94
|
+
|
95
|
+
- Licence change. After speaking with Mauricio Fernández, we have changed
|
96
|
+
the licensing of this library to Ruby and Simplified BSD and have
|
97
|
+
dropped the GNU GPL license. This takes effect from the 0.6 release.
|
98
|
+
- Printing a deprecation warning for including Archive::Tar to put
|
99
|
+
Minitar in the top-level namespace.
|
100
|
+
- Printing a deprecation warning for including Archive::Tar::Minitar into
|
101
|
+
a class (Minitar will be a class for version 1.0).
|
102
|
+
- Moved Archive::Tar::PosixHeader to Archive::Tar::Minitar::PosixHeader
|
103
|
+
with a deprecation warning. Do not depend on
|
104
|
+
Archive::Tar::Minitar::PosixHeader, as it will be moving to
|
105
|
+
::Minitar::PosixHeader in a future release.
|
106
|
+
- Added an alias, ::Minitar, for Archive::Tar::Minitar, opted in with
|
107
|
+
`require 'minitar'`. In future releases, this alias will be enabled by
|
108
|
+
default, and the Archive::Tar namespace will be removed entirely for
|
109
|
+
version 1.0.
|
110
|
+
- Modified the handling of `mtime` in PosixHeader to do an integer
|
111
|
+
conversion (#to_i) so that a Time object can be used instead of the
|
112
|
+
integer value of the time object.
|
113
|
+
- Writer::RestrictedStream was renamed to Writer::WriteOnlyStream for
|
114
|
+
clarity. No alias or deprecation warning was provided for this as it is
|
115
|
+
an internal implementation detail.
|
116
|
+
- Writer::BoundedStream was renamed to Writer::BoundedWriteStream for
|
117
|
+
clarity. A deprecation warning is provided on first use because a
|
118
|
+
BoundedWriteStream may raise a BoundedWriteStream::FileOverflow
|
119
|
+
exception.
|
120
|
+
- Writer::BoundedWriteStream::FileOverflow has been renamed to
|
121
|
+
Writer::WriteBoundaryOverflow and inherits from StandardError instead
|
122
|
+
of RuntimeError. Note that for Ruby 2.0 or higher, an error will be
|
123
|
+
raised when specifying Writer::BoundedWriteStream::FileOverflow because
|
124
|
+
Writer::BoundedWriteStream has been declared a private constant.
|
125
|
+
- Modified Writer#add_file_simple to accept the data for a
|
126
|
+
file in `opts[:data]`. When `opts[:data]` is provided, a stream block
|
127
|
+
must not be provided. Improved the documentation for this method.
|
128
|
+
- Modified Writer#add_file to accept `opts[:data]` and transparently call
|
129
|
+
Writer#add_file_simple in this case.
|
130
|
+
- Methods that require blocks are no longer required, so the
|
131
|
+
Archive::Tar::Minitar::BlockRequired exception has been removed with a
|
132
|
+
warning (this may not work on Ruby 1.8).
|
133
|
+
- Dramatically reduced the number of strings created when creating a
|
134
|
+
POSIX tarball header.
|
135
|
+
- Added a helper, Input.each_entry that iterates over each entry in an
|
136
|
+
opened entry object.
|
137
|
+
|
138
|
+
- Bugs:
|
139
|
+
|
140
|
+
- Fix [#2][] to handle IO streams that are not seekable, such as pipes,
|
141
|
+
STDIN, or STDOUT.
|
142
|
+
- Fix [#3][] to make the test timezone resilient.
|
143
|
+
- Fix [#4][] for supporting the reading of tar files with filenames in
|
144
|
+
the GNU long filename extension format. Ported from @atoulme’s fork,
|
145
|
+
originally provided by Curtis Sampson.
|
146
|
+
- Fix [#6][] by making it raise the correct error for a long filename
|
147
|
+
with no path components.
|
148
|
+
- Fix [#13][] provided by @fetep fixes an off-by-one error on filename
|
149
|
+
splitting.
|
150
|
+
- Fix [#14][] provided by @kzys should fix Windows detection issues.
|
151
|
+
- Fix [#16][] as specified above.
|
152
|
+
- Fix an issue where Minitar.pack would not include Unix hidden files
|
153
|
+
when creating a tarball.
|
154
|
+
|
155
|
+
- Development:
|
156
|
+
|
157
|
+
- Modernized minitar tooling around Hoe.
|
158
|
+
- Added travis and coveralls.
|
131
159
|
|
132
160
|
## 0.5.2 / 2008-02-26
|
133
161
|
|
134
|
-
|
135
|
-
|
162
|
+
- Bugs:
|
163
|
+
- Fixed a Ruby 1.9 compatibility error.
|
136
164
|
|
137
165
|
## 0.5.1 / 2004-09-27
|
138
166
|
|
139
|
-
|
140
|
-
|
167
|
+
- Bugs:
|
168
|
+
- Fixed a variable name error.
|
141
169
|
|
142
170
|
## 0.5.0
|
143
171
|
|
144
|
-
|
172
|
+
- Initial release. Does files and directories. Command does create, extract,
|
145
173
|
and list.
|
146
174
|
|
147
175
|
[#2]: https://github.com/halostatue/minitar/issues/2
|
148
176
|
[#3]: https://github.com/halostatue/minitar/issues/3
|
149
177
|
[#4]: https://github.com/halostatue/minitar/issues/4
|
150
178
|
[#6]: https://github.com/halostatue/minitar/issues/6
|
179
|
+
[#12]: https://github.com/halostatue/minitar/pull/12
|
151
180
|
[#13]: https://github.com/halostatue/minitar/issues/13
|
152
181
|
[#14]: https://github.com/halostatue/minitar/issues/14
|
153
182
|
[#16]: https://github.com/halostatue/minitar/issues/16
|
154
183
|
[#23]: https://github.com/halostatue/minitar/issues/23
|
155
184
|
[#24]: https://github.com/halostatue/minitar/issues/24
|
156
|
-
[#26]: https://github.com/halostatue/minitar/issues/
|
185
|
+
[#26]: https://github.com/halostatue/minitar/issues/27
|
157
186
|
[#28]: https://github.com/halostatue/minitar/issues/28
|
158
|
-
[#29]: https://github.com/halostatue/minitar/
|
187
|
+
[#29]: https://github.com/halostatue/minitar/pull/29
|
159
188
|
[#30]: https://github.com/halostatue/minitar/issues/30
|
160
|
-
[#
|
161
|
-
[#
|
162
|
-
[#
|
163
|
-
[#
|
189
|
+
[#31]: https://github.com/halostatue/minitar/issues/31
|
190
|
+
[#32]: https://github.com/halostatue/minitar/pull/32
|
191
|
+
[#33]: https://github.com/halostatue/minitar/pull/33
|
192
|
+
[#34]: https://github.com/halostatue/minitar/pull/34
|
193
|
+
[#35]: https://github.com/halostatue/minitar/pull/35
|
194
|
+
[#36]: https://github.com/halostatue/minitar/pull/36
|
195
|
+
[#37]: https://github.com/halostatue/minitar/pull/37
|
196
|
+
[#40]: https://github.com/halostatue/minitar/pull/40
|
197
|
+
[#42]: https://github.com/halostatue/minitar/pull/42
|
198
|
+
[#43]: https://github.com/halostatue/minitar/pull/43
|
199
|
+
[#45]: https://github.com/halostatue/minitar/issues/45
|
200
|
+
[#46]: https://github.com/halostatue/minitar/issues/46
|
201
|
+
[#47]: https://github.com/halostatue/minitar/pull/47
|
data/Manifest.txt
CHANGED
data/README.rdoc
CHANGED
@@ -5,33 +5,13 @@ code :: https://github.com/halostatue/minitar/
|
|
5
5
|
bugs :: https://github.com/halostatue/minitar/issues
|
6
6
|
rdoc :: http://rdoc.info/gems/minitar/
|
7
7
|
cli :: https://github.com/halostatue/minitar-cli
|
8
|
-
travis :: {<img src="https://travis-ci.org/halostatue/minitar.svg" />}[https://travis-ci.org/halostatue/minitar]
|
9
|
-
appveyor :: {<img src="https://ci.appveyor.com/api/projects/status/bj4gqn3gp3gu45sa?svg=true" />}[https://ci.appveyor.com/project/halostatue/minitar]
|
10
|
-
coveralls :: {<img src="https://coveralls.io/repos/halostatue/minitar/badge.svg" alt="Coverage Status" />}[https://coveralls.io/r/halostatue/minitar]
|
11
8
|
|
12
9
|
== Description
|
13
10
|
|
14
11
|
The minitar library is a pure-Ruby library that provides the ability to deal
|
15
12
|
with POSIX tar(1) archive files.
|
16
13
|
|
17
|
-
This is release 0.
|
18
|
-
Minitar security stance. There are two minor breaking changes in this version
|
19
|
-
so that exceptions will be thrown if a negative size is provided in a tar
|
20
|
-
stream header or if the tar stream header is otherwise invalid.
|
21
|
-
|
22
|
-
This release continues the migration and modernization of the code:
|
23
|
-
|
24
|
-
* the licence has been changed to match the modern Ruby licensing scheme
|
25
|
-
(Ruby and Simplified BSD instead of Ruby and GNU GPL);
|
26
|
-
* the +minitar+ command-line program has been separated into the
|
27
|
-
+minitar-cli+ gem; and
|
28
|
-
* the +archive-tar-minitar+ gem now points to the +minitar+ and +minitar-cli+
|
29
|
-
gems and discourages its installation.
|
30
|
-
|
31
|
-
Some of these changes may break existing programs that depend on the internal
|
32
|
-
structure of the minitar library, but every effort has been made to ensure
|
33
|
-
compatibility; inasmuch as is possible, this compatibility will be maintained
|
34
|
-
through the release of minitar 1.0 (which will have strong breaking changes).
|
14
|
+
This is release 0.12. This is likely the last revision before 1.0.
|
35
15
|
|
36
16
|
minitar (previously called Archive::Tar::Minitar) is based heavily on code
|
37
17
|
originally written by Mauricio Julio Fernández Pradier for the rpa-base
|
data/Rakefile
CHANGED
@@ -1,52 +1,72 @@
|
|
1
1
|
# -*- ruby encoding: utf-8 -*-
|
2
2
|
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
3
|
+
require "rubygems"
|
4
|
+
require "hoe"
|
5
|
+
require "rake/clean"
|
6
6
|
|
7
|
-
$LOAD_PATH.unshift(
|
7
|
+
$LOAD_PATH.unshift("support")
|
8
8
|
|
9
9
|
Hoe.plugin :doofus
|
10
10
|
Hoe.plugin :gemspec2
|
11
|
-
Hoe.plugin :
|
11
|
+
Hoe.plugin :git2
|
12
12
|
Hoe.plugin :minitest
|
13
|
-
Hoe.plugin :
|
13
|
+
Hoe.plugin :rubygems
|
14
14
|
Hoe.plugin :deprecated_gem
|
15
|
-
Hoe.plugin :
|
15
|
+
Hoe.plugin :cov
|
16
16
|
|
17
|
-
|
18
|
-
developer(
|
17
|
+
Hoe.spec "minitar" do
|
18
|
+
developer("Austin Ziegler", "halostatue@gmail.com")
|
19
19
|
|
20
|
-
|
20
|
+
self.history_file = "History.md"
|
21
|
+
self.readme_file = "README.rdoc"
|
21
22
|
|
22
|
-
|
23
|
-
|
24
|
-
|
23
|
+
require_ruby_version ">= 1.8"
|
24
|
+
|
25
|
+
# This is a hack because of an issue with Hoe 3.26, but I'm not sure which
|
26
|
+
# hoe version introduced this issue or if it's a JRuby issue. This issue is
|
27
|
+
# demonstrable in lib/hoe.rb at line 676, which is (reformatted for space):
|
28
|
+
#
|
29
|
+
# ```ruby
|
30
|
+
# readme =
|
31
|
+
# input
|
32
|
+
# .lines
|
33
|
+
# .chunk { |l| l[/^(?:=+|#+)/] || "" } # # chunk is different somehow
|
34
|
+
# .map(&:last) # <-- HERE: "#" does not respond to #last
|
35
|
+
# .each_slice(2)
|
36
|
+
# .map { |k, v|
|
37
|
+
# kp = k.join
|
38
|
+
# kp = kp.strip.chomp(":").split.last.downcase if k.size == 1
|
39
|
+
# [kp, v.join.strip]
|
40
|
+
# }
|
41
|
+
# .to_h
|
42
|
+
# ```
|
43
|
+
#
|
44
|
+
# We don't *ship* with JRuby, but use it in CI only, so this is here at least
|
45
|
+
# temporarily.
|
46
|
+
if RUBY_PLATFORM.match?(/java/)
|
47
|
+
self.summary = self.description = "Description for testing"
|
48
|
+
self.homepage = "https://github.com/KineticCafe/app-identity/tree/main/ruby/"
|
49
|
+
end
|
50
|
+
|
51
|
+
self.licenses = ["Ruby", "BSD-2-Clause"]
|
25
52
|
|
26
53
|
self.post_install_message = <<-EOS
|
27
54
|
The `minitar` executable is no longer bundled with `minitar`. If you are
|
28
55
|
expecting this executable, make sure you also install `minitar-cli`.
|
29
56
|
EOS
|
30
57
|
|
31
|
-
|
32
|
-
extra_dev_deps << ['hoe-gemspec2', '~> 1.1']
|
33
|
-
extra_dev_deps << ['hoe-git', '~> 1.6']
|
34
|
-
extra_dev_deps << ['hoe-rubygems', '~> 1.0']
|
35
|
-
extra_dev_deps << ['hoe-travis', '~> 1.2']
|
36
|
-
extra_dev_deps << ['minitest', '~> 5.3']
|
37
|
-
extra_dev_deps << ['minitest-autotest', ['>= 1.0', '<2']]
|
38
|
-
extra_dev_deps << ['rake', '>= 10.0', '< 12']
|
39
|
-
extra_dev_deps << ['rdoc', '>= 0.0']
|
40
|
-
end
|
41
|
-
|
42
|
-
if RUBY_VERSION >= '2.0' && RUBY_ENGINE == 'ruby'
|
43
|
-
namespace :test do
|
44
|
-
desc 'Run test coverage'
|
45
|
-
task :coverage do
|
46
|
-
spec.test_prelude = 'load ".simplecov-prelude.rb"'
|
47
|
-
Rake::Task['test'].execute
|
48
|
-
end
|
49
|
-
end
|
58
|
+
spec_extras[:metadata] = ->(val) { val["rubygems_mfa_required"] = "true" }
|
50
59
|
|
51
|
-
|
60
|
+
extra_dev_deps << ["base64", "~> 0.2"]
|
61
|
+
extra_dev_deps << ["hoe", "~> 4.0"]
|
62
|
+
extra_dev_deps << ["hoe-doofus", "~> 1.0"]
|
63
|
+
extra_dev_deps << ["hoe-gemspec2", "~> 1.1"]
|
64
|
+
extra_dev_deps << ["hoe-git2", "~> 1.7"]
|
65
|
+
extra_dev_deps << ["hoe-rubygems", "~> 1.0"]
|
66
|
+
extra_dev_deps << ["minitest", "~> 5.16"]
|
67
|
+
extra_dev_deps << ["minitest-autotest", "~> 1.0"]
|
68
|
+
extra_dev_deps << ["minitest-focus", "~> 1.0"]
|
69
|
+
extra_dev_deps << ["rake", ">= 10.0", "< 14"]
|
70
|
+
extra_dev_deps << ["rdoc", ">= 0.0"]
|
71
|
+
extra_dev_deps << ["standard", "~> 1.0"]
|
52
72
|
end
|