bzip2-ffi 1.0.0 → 1.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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/CHANGES.md +33 -2
- data/Gemfile +43 -2
- data/LICENSE +13 -13
- data/README.md +92 -62
- data/Rakefile +24 -0
- data/bzip2-ffi.gemspec +10 -1
- data/lib/bzip2/ffi/error.rb +5 -2
- data/lib/bzip2/ffi/io.rb +59 -47
- data/lib/bzip2/ffi/libbz2.rb +7 -3
- data/lib/bzip2/ffi/reader.rb +210 -104
- data/lib/bzip2/ffi/version.rb +4 -1
- data/lib/bzip2/ffi/writer.rb +81 -62
- data/lib/bzip2/ffi.rb +9 -6
- data/test/error_test.rb +19 -20
- data/test/fixtures/lorem-4096-bytes-compressed.txt.bz2 +0 -0
- data/test/fixtures/lorem-first-structure-4096-bytes.txt.bz2 +0 -0
- data/test/fixtures/two_structures.bz2 +0 -0
- data/test/io_test.rb +34 -32
- data/test/reader_test.rb +339 -111
- data/test/test_helper.rb +45 -8
- data/test/version_test.rb +4 -1
- data/test/writer_test.rb +99 -73
- data.tar.gz.sig +0 -0
- metadata +33 -26
- metadata.gz.sig +2 -1
- /data/test/fixtures/{bzipped → compressed.bz2} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 25b15e037a74f589a612d955890d194519a97abfa903c993589d0096794b6459
|
4
|
+
data.tar.gz: '088c393a99b19d1d625148c951461333d2ed9ef934df6e5efaee2ea0007b9620'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84ff7dd72ab2d08ebaf3eda64b104db414b882f90f4d05df06485bf0b5f9e6c116512d5c5183e8f921aacf660eaf58eb37d5d2fd959002b859fd97f9c8af7a8e
|
7
|
+
data.tar.gz: 59ee28b33e364ce56a453ad9abd2f6fad30e8aa623d6ddb89f50d8211b4ad77d32e3493bbac853e74b558e307af6f7db71d057aaddb72cbcc15338c332dec16b
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/CHANGES.md
CHANGED
@@ -1,4 +1,35 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
# Changes
|
2
|
+
|
3
|
+
## Version 1.1.1 - 8-Jul-2023
|
4
|
+
|
5
|
+
* Added `Bzip2::FFI::Reader#tell`, returning the number of decompressed bytes
|
6
|
+
that have been read. `Bzip2::FFI::Reader#pos` is now an alias for
|
7
|
+
`Bzip2::FFI::Reader#tell`.
|
8
|
+
* Added `Bzip2::FFI::Writer#tell`, returning the number of uncompressed bytes
|
9
|
+
that have been written. `Bzip2::FFI::Writer#pos` is now an alias for
|
10
|
+
`Bzip2::FFI::Writer#tell`.
|
11
|
+
|
12
|
+
|
13
|
+
## Version 1.1.0 - 27-Feb-2021
|
14
|
+
|
15
|
+
* `Bzip2::FFI::Reader` will now read all consecutive bzip2 compressed structures
|
16
|
+
in the input by default instead of just the first (the same as the
|
17
|
+
bzip2/bunzip2 commands). A new `:first_only` option has been added to allow
|
18
|
+
the version 1.0.0 behaviour to be retained. #1.
|
19
|
+
* Added `#eof?` and `#eof` to `Bzip2::FFI::Reader`, indicating when
|
20
|
+
decompression has completed.
|
21
|
+
* Added `Bzip2::FFI::Reader#pos`, returning the number of decompressed bytes
|
22
|
+
that have been read.
|
23
|
+
* Added `Bzip2::FFI::Writer#pos`, returning the number of uncompressed bytes
|
24
|
+
that have been written.
|
25
|
+
* Support using Bzip2::FFI with frozen string literals enabled (and enable in
|
26
|
+
all files with `# frozen_string_literal: true`).
|
27
|
+
* Constants documented as private in version 1.0.0 are now set as private using
|
28
|
+
`Module#private_constant`.
|
29
|
+
* `require_relative` is now used when loading dependencies for a minor
|
30
|
+
performance gain.
|
31
|
+
|
32
|
+
|
33
|
+
## Version 1.0.0 - 28-Feb-2015
|
3
34
|
|
4
35
|
* First release.
|
data/Gemfile
CHANGED
@@ -3,12 +3,53 @@ source "https://rubygems.org"
|
|
3
3
|
gemspec
|
4
4
|
|
5
5
|
group :development do
|
6
|
-
gem 'rake', '
|
6
|
+
gem 'rake', ['>= 12.2.1', '< 14']
|
7
7
|
gem 'git', '~> 1.2', require: false
|
8
8
|
end
|
9
9
|
|
10
10
|
group :test do
|
11
11
|
gem 'minitest', '~> 5.0'
|
12
12
|
gem 'simplecov', '~> 0.9', require: false
|
13
|
-
|
13
|
+
|
14
|
+
# coveralls is no longer maintained, but supports Ruby < 2.3.
|
15
|
+
# coveralls_reborn is maintained, but requires Ruby >= 2.3.
|
16
|
+
gem 'coveralls', git: 'https://github.com/philr/coveralls-ruby.git', require: false if RUBY_VERSION < '2.3'
|
17
|
+
gem 'coveralls_reborn', '~> 0.13', require: false if RUBY_VERSION >= '2.3'
|
18
|
+
|
19
|
+
|
20
|
+
# json is a dependency of simplecov. Version 2.3.0 is declared as compatible
|
21
|
+
# with Ruby >= 1.9, but actually fails with a syntax error:
|
22
|
+
# https://travis-ci.org/tzinfo/tzinfo/jobs/625092293#L605
|
23
|
+
#
|
24
|
+
# 2.5.1 is declared as compatible with Ruby >= 2.0, but actually fails to
|
25
|
+
# compile with an undefined reference to `rb_funcallv` on Windows:
|
26
|
+
# https://github.com/tzinfo/tzinfo/runs/1664656059#step:3:757
|
27
|
+
#
|
28
|
+
# 2.3.0 also fails to build the native extension with Rubinius:
|
29
|
+
# https://travis-ci.org/tzinfo/tzinfo/jobs/625092305#L1310
|
30
|
+
#
|
31
|
+
# Limit to earlier compatible versions.
|
32
|
+
if RUBY_VERSION < '2.0' || RUBY_ENGINE == 'rbx'
|
33
|
+
gem 'json', '< 2.3.0'
|
34
|
+
elsif RUBY_VERSION < '2.1' && RUBY_PLATFORM =~ /mingw/
|
35
|
+
gem 'json', '< 2.5.0'
|
36
|
+
end
|
37
|
+
|
38
|
+
# ffi 1.9.15 is declared as compatible with Ruby >= 1.8.7, but doesn't compile
|
39
|
+
# on Ruby 1.9.3 on Windows.
|
40
|
+
#
|
41
|
+
# The source version of ffi 1.15.5 is declared as compatible with Ruby >= 2.3.
|
42
|
+
# The binary version of 1.15.5 is declared as compatible with Ruby >= 2.4, so
|
43
|
+
# doesn't get used. The using the source version results in a segmentation
|
44
|
+
# fault during libffi initialization.
|
45
|
+
#
|
46
|
+
# Binaries of 15.5.0 to 15.5.4 are declared as compatible with Ruby >= 2.3,
|
47
|
+
# but don't get used with Bundler 2.3.23 and Ruby 2.3 on Windows.
|
48
|
+
#
|
49
|
+
# Limit to earlier compatible versions.
|
50
|
+
if RUBY_VERSION < '2.0' && RUBY_PLATFORM =~ /mingw/
|
51
|
+
gem 'ffi', '< 1.9.0'
|
52
|
+
elsif RUBY_VERSION < '2.4' && RUBY_PLATFORM =~ /mingw/
|
53
|
+
gem 'ffi', '< 1.15.0'
|
54
|
+
end
|
14
55
|
end
|
data/LICENSE
CHANGED
@@ -1,19 +1,19 @@
|
|
1
|
-
Copyright (c) 2015 Philip Ross
|
1
|
+
Copyright (c) 2015-2023 Philip Ross
|
2
2
|
|
3
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
-
this software and associated documentation files (the "Software"), to deal in
|
5
|
-
the Software without restriction, including without limitation the rights to
|
6
|
-
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
7
|
-
of the Software, and to permit persons to whom the Software is furnished to do
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
4
|
+
this software and associated documentation files (the "Software"), to deal in
|
5
|
+
the Software without restriction, including without limitation the rights to
|
6
|
+
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
7
|
+
of the Software, and to permit persons to whom the Software is furnished to do
|
8
8
|
so, subject to the following conditions:
|
9
9
|
|
10
|
-
The above copyright notice and this permission notice shall be included in all
|
10
|
+
The above copyright notice and this permission notice shall be included in all
|
11
11
|
copies or substantial portions of the Software.
|
12
12
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
13
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
14
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
15
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
16
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
17
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
18
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
19
19
|
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# Bzip2::FFI
|
1
|
+
# Bzip2::FFI
|
2
2
|
|
3
|
-
[](https://rubygems.org/gems/bzip2-ffi) [](https://github.com/philr/bzip2-ffi/actions?query=workflow%3ATests+branch%3Amaster+event%3Apush) [](https://coveralls.io/github/philr/bzip2-ffi?branch=master)
|
4
4
|
|
5
5
|
Bzip2::FFI is a Ruby wrapper for libbz2 using FFI bindings.
|
6
6
|
|
@@ -8,35 +8,30 @@ The Bzip2::FFI Reader and Writer classes support reading and writing bzip2
|
|
8
8
|
compressed data as an `IO`-like stream.
|
9
9
|
|
10
10
|
|
11
|
-
## Installation
|
11
|
+
## Installation
|
12
12
|
|
13
|
-
|
13
|
+
The Bzip2::FFI gem can be installed by running `gem install bzip2-ffi` or by
|
14
|
+
adding `gem 'bzip2-ffi'` to your `Gemfile` and running `bundle install`.
|
14
15
|
|
15
|
-
gem install bzip2-ffi
|
16
16
|
|
17
|
-
|
18
|
-
`Gemfile`:
|
17
|
+
## Compatibility
|
19
18
|
|
20
|
-
|
19
|
+
Bzip2::FFI requires a minimum of Ruby MRI 1.9.3 or JRuby 1.7 (in 1.9 mode or
|
20
|
+
later).
|
21
21
|
|
22
22
|
|
23
|
-
##
|
24
|
-
|
25
|
-
Bzip2::FFI is tested on Ruby MRI 1.9.3+, JRuby 1.7+ and Rubinius 2+.
|
26
|
-
|
27
|
-
|
28
|
-
## Runtime Dependencies ##
|
23
|
+
## Runtime Dependencies
|
29
24
|
|
30
25
|
Bzip2::FFI is a pure-Ruby library that uses
|
31
26
|
[Ruby-FFI](https://rubygems.org/gems/ffi) (Foreign Function Interface) to load
|
32
27
|
the libbz2 dynamic library at runtime.
|
33
28
|
|
34
29
|
libbz2 is available as a package on most UNIX-based systems (for example,
|
35
|
-
`libbz2-1.0` on Debian and Ubuntu, or `bzip2-libs` on Fedora, Red Hat
|
30
|
+
`libbz2-1.0` on Debian and Ubuntu, or `bzip2-libs` on Fedora, Red Hat and
|
36
31
|
CentOS).
|
37
32
|
|
38
33
|
|
39
|
-
### Windows
|
34
|
+
### Windows
|
40
35
|
|
41
36
|
On Windows, you will need to have `libbz2.dll` or `bz2.dll` available on the
|
42
37
|
`PATH` or in the Ruby `bin` directory.
|
@@ -46,99 +41,134 @@ Suitable builds of `libbz2.dll` are available from the
|
|
46
41
|
Download the DLL only package that matches your Ruby installation (x86 or x64)
|
47
42
|
and extract to your `ruby\bin` directory.
|
48
43
|
|
49
|
-
Builds from the bzip2-windows project depend on the Visual Studio
|
50
|
-
Library
|
51
|
-
[Visual C++ Redistributable Packages for Visual Studio 2013 installer](http://www.microsoft.com/en-gb/download/details.aspx?id=40784).
|
44
|
+
Builds from the bzip2-windows project depend on the Visual Studio C Runtime
|
45
|
+
Library. Links to the installer can be found on the bzip2-windows releases page.
|
52
46
|
|
53
47
|
|
54
|
-
## Usage
|
48
|
+
## Usage
|
55
49
|
|
56
50
|
To use Bzip2::FFI, it must first be loaded with:
|
57
51
|
|
58
|
-
|
52
|
+
```ruby
|
53
|
+
require 'bzip2/ffi'
|
54
|
+
```
|
59
55
|
|
60
56
|
|
61
|
-
### Compressing
|
57
|
+
### Compressing
|
62
58
|
|
63
59
|
Data can be compressed using the `Bzip2::FFI::Writer` class. For example, the
|
64
|
-
following compresses lines read from standard input
|
60
|
+
following compresses lines read from `ARGF` (either standard input, or file
|
61
|
+
names given as command-line arguments):
|
65
62
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
63
|
+
```ruby
|
64
|
+
Bzip2::FFI::Writer.open(io_or_path) do |writer|
|
65
|
+
ARGF.each_line do |line|
|
66
|
+
writer.write(line)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
```
|
71
70
|
|
72
71
|
Alternatively, without passing a block to `open`:
|
73
72
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
73
|
+
```ruby
|
74
|
+
writer = Bzip2::FFI::Writer.open(io_or_path)
|
75
|
+
begin
|
76
|
+
ARGF.each_line do |line|
|
77
|
+
writer.write(line)
|
78
|
+
end
|
79
|
+
ensure
|
80
|
+
writer.close
|
81
|
+
end
|
82
|
+
```
|
82
83
|
|
83
84
|
An entire bzip2 structure can also be written in a single step:
|
84
85
|
|
85
|
-
|
86
|
+
```ruby
|
87
|
+
Bzip2::FFI::Writer.write(io_or_path, 'Hello, World!')
|
88
|
+
```
|
86
89
|
|
87
90
|
In each of the examples above, `io_or_path` can either be a path to a file to
|
88
|
-
write to or an `IO`-like object that has a
|
91
|
+
write to or an `IO`-like object that has a `#write` method.
|
89
92
|
|
90
93
|
|
91
|
-
### Decompressing
|
94
|
+
### Decompressing
|
92
95
|
|
93
96
|
Data can be decompressed using the `Bzip2::FFI::Reader` class. For example:
|
94
97
|
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
98
|
+
```ruby
|
99
|
+
Bzip2::FFI::Reader.open(io_or_path) do |reader|
|
100
|
+
while buffer = reader.read(1024) do
|
101
|
+
# process uncompressed bytes in buffer
|
102
|
+
end
|
103
|
+
end
|
104
|
+
```
|
100
105
|
|
101
106
|
Alternatively, without passing a block to `open`:
|
102
107
|
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
108
|
+
```ruby
|
109
|
+
reader = Bzip2::FFI::Reader.open(io_or_path)
|
110
|
+
begin
|
111
|
+
while buffer = reader.read(1024) do
|
112
|
+
# process uncompressed bytes in buffer
|
113
|
+
end
|
114
|
+
ensure
|
115
|
+
reader.close
|
116
|
+
end
|
117
|
+
```
|
111
118
|
|
112
|
-
|
119
|
+
All the available bzipped data can also be read and decompressed in a single
|
120
|
+
step:
|
113
121
|
|
114
|
-
|
122
|
+
```ruby
|
123
|
+
uncompressed = Bzip2::FFI::Reader.read(io_or_path)
|
124
|
+
```
|
115
125
|
|
116
126
|
In each of the examples above, `io_or_path` can either be a path to a file to
|
117
|
-
read from or an `IO`-like object that has a
|
127
|
+
read from or an `IO`-like object that has a `#read` method.
|
118
128
|
|
119
129
|
|
120
|
-
### Character Encoding
|
130
|
+
### Character Encoding
|
121
131
|
|
122
132
|
Bzip2::FFI does not perform any encoding conversion when reading or writing.
|
123
133
|
Data read using `Bzip2::FFI::Reader` is returned as `String` instances with
|
124
134
|
ASCII-8BIT (BINARY) encoding representing the raw decompressed bytes.
|
125
|
-
`Bzip2::FFI::Writer` compresses the raw bytes from the `
|
126
|
-
|
135
|
+
`Bzip2::FFI::Writer` compresses the raw bytes from the `String` instances passed
|
136
|
+
to the `#write` method (using the encoding of the `String`).
|
137
|
+
|
138
|
+
|
139
|
+
### Streaming and Memory Usage
|
140
|
+
|
141
|
+
Bzip2::FFI compresses and decompresses data as a stream, allowing large files to
|
142
|
+
be handled without requiring the complete contents to be held in memory.
|
143
|
+
|
144
|
+
When decompressing, 4 KB of compressed data is read at a time. An additional 4
|
145
|
+
KB is required to pass the data to libbz2. Decompressed data is output in blocks
|
146
|
+
dictated by the length passed to `Bzip2::FFI::Reader#read` (defaulting to 4 KB
|
147
|
+
and requiring twice the length in memory to read from libbz2).
|
148
|
+
|
149
|
+
When compressing, up to 4 KB of compressed data is written at a time, requiring
|
150
|
+
up to 8 KB of memory. An additional copy is also taken of the `String` passed to
|
151
|
+
`Bzip2::FFI::Writer#write`.
|
152
|
+
|
153
|
+
Internally, libbz2 allocates additional memory according to the bzip2 block
|
154
|
+
size. Please refer to the
|
155
|
+
[Memory Management](https://sourceware.org/bzip2/manual/manual.html#memory-management)
|
156
|
+
section of the Bzip2 documentation for details.
|
127
157
|
|
128
158
|
|
129
|
-
## Documentation
|
159
|
+
## Documentation
|
130
160
|
|
131
161
|
Documentation for Bzip2::FFI is available on
|
132
|
-
[RubyDoc.info](
|
162
|
+
[RubyDoc.info](https://www.rubydoc.info/gems/bzip2-ffi).
|
133
163
|
|
134
164
|
|
135
|
-
## License
|
165
|
+
## License
|
136
166
|
|
137
167
|
Bzip2::FFI is distributed under the terms of the MIT license. A copy of this
|
138
168
|
license can be found in the included LICENSE file.
|
139
169
|
|
140
170
|
|
141
|
-
## GitHub Project
|
171
|
+
## GitHub Project
|
142
172
|
|
143
173
|
Source code, release information and the issue tracker can be found on the
|
144
174
|
[Bzip2::FFI GitHub project page](https://github.com/philr/bzip2-ffi).
|
data/Rakefile
CHANGED
@@ -60,3 +60,27 @@ Rake::TestTask.new do |t|
|
|
60
60
|
t.pattern = File.join(BASE_DIR, 'test', '**', '*_test.rb')
|
61
61
|
t.warning = true
|
62
62
|
end
|
63
|
+
|
64
|
+
# Coveralls expects an sh compatible shell when running git commands with Kernel#`
|
65
|
+
# On Windows, the results end up wrapped in single quotes.
|
66
|
+
# Patch Coveralls::Configuration to remove the quotes.
|
67
|
+
if RUBY_PLATFORM =~ /mingw/
|
68
|
+
module CoverallsFixConfigurationOnWindows
|
69
|
+
def self.included(base)
|
70
|
+
base.instance_eval do
|
71
|
+
class << self
|
72
|
+
alias_method :git_without_windows_fix, :git
|
73
|
+
|
74
|
+
def git
|
75
|
+
git_without_windows_fix.tap do |hash|
|
76
|
+
hash[:head] = hash[:head].map {|k, v| [k, v =~ /\A'(.*)'\z/ ? $1 : v] }.to_h
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
require 'coveralls'
|
85
|
+
Coveralls::Configuration.send(:include, CoverallsFixConfigurationOnWindows)
|
86
|
+
end
|
data/bzip2-ffi.gemspec
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path(File.join('..', 'lib', 'bzip2', 'ffi', 'version'), __FI
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = 'bzip2-ffi'
|
5
5
|
s.version = Bzip2::FFI::VERSION
|
6
|
-
s.summary = 'Reads and writes bzip2 compressed data using FFI bindings for libbz2.'
|
6
|
+
s.summary = 'Reads and writes bzip2 compressed data as a stream using FFI bindings for libbz2.'
|
7
7
|
s.description = <<-EOF
|
8
8
|
Bzip2::FFI is a Ruby wrapper for libbz2 using FFI bindings.
|
9
9
|
|
@@ -14,6 +14,15 @@ Gem::Specification.new do |s|
|
|
14
14
|
s.email = 'phil.ross@gmail.com'
|
15
15
|
s.homepage = 'https://github.com/philr/bzip2-ffi'
|
16
16
|
s.license = 'MIT'
|
17
|
+
if s.respond_to? :metadata=
|
18
|
+
s.metadata = {
|
19
|
+
'bug_tracker_uri' => 'https://github.com/philr/bzip2-ffi/issues',
|
20
|
+
'changelog_uri' => 'https://github.com/philr/bzip2-ffi/blob/master/CHANGES.md',
|
21
|
+
'documentation_uri' => "https://rubydoc.info/gems/#{s.name}/#{s.version}",
|
22
|
+
'homepage_uri' => s.homepage,
|
23
|
+
'source_code_uri' => "https://github.com/philr/bzip2-ffi/tree/v#{s.version}"
|
24
|
+
}
|
25
|
+
end
|
17
26
|
s.files = %w(CHANGES.md Gemfile LICENSE README.md Rakefile bzip2-ffi.gemspec .yardopts) +
|
18
27
|
Dir['lib/**/*.rb'] +
|
19
28
|
Dir['test/**/*.rb'] +
|
data/lib/bzip2/ffi/error.rb
CHANGED
@@ -1,7 +1,10 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
1
4
|
module Bzip2
|
2
5
|
module FFI
|
3
|
-
# The
|
4
|
-
#
|
6
|
+
# The {Error} module contains exception classes that are raised if an error
|
7
|
+
# occurs whilst compressing or decompressing data.
|
5
8
|
module Error
|
6
9
|
# Base class for Bzip2::FFI exceptions.
|
7
10
|
class Bzip2Error < IOError
|