Ascii85 1.0.2 → 1.1.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.
- checksums.yaml +7 -0
- data/.travis.yml +30 -0
- data/Ascii85.gemspec +3 -5
- data/History.txt +9 -0
- data/README.md +69 -0
- data/bin/ascii85 +0 -1
- data/lib/Ascii85/version.rb +3 -1
- data/lib/ascii85.rb +6 -12
- data/spec/lib/ascii85_spec.rb +24 -34
- metadata +89 -87
- data/.gemtest +0 -0
- data/README.rdoc +0 -57
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dcb6cc7ca3f3ca02c235e5a0d5b908396524e265c9adaaf56c50bc62117c5ee7
|
4
|
+
data.tar.gz: c005e9a67ecc1def46d040f06e91cb7984d0cfd43d9729638d60b2fe19d2ab8c
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c6fef31cebe36d41eee64ff857e87007b176b262fc4c667666f6360714b9d15274afb192572cf5bba31953f13ecde7c1b1ea60697ebf83a43dc80b35f64d94dd
|
7
|
+
data.tar.gz: 2bd0e1367f729cb42d2163e5eeeba540e243138a23cfeb6bf9e2d93d49c80dc12227d65b60bd1db2f6272ab8c9bac19d0aaac37a5e9d48e14dd50d45abb8a749
|
data/.travis.yml
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 1.9
|
4
|
+
- 2.0
|
5
|
+
- 2.1
|
6
|
+
- 2.2
|
7
|
+
- 2.3
|
8
|
+
- 2.4
|
9
|
+
- 2.5
|
10
|
+
- 2.6
|
11
|
+
- 2.7
|
12
|
+
- ruby-head
|
13
|
+
- jruby
|
14
|
+
- truffleruby
|
15
|
+
env:
|
16
|
+
- RUBYOPT="--enable-frozen-string-literal"
|
17
|
+
- RUBYOPT=""
|
18
|
+
matrix:
|
19
|
+
exclude:
|
20
|
+
- rvm: 1.9
|
21
|
+
env: RUBYOPT="--enable-frozen-string-literal"
|
22
|
+
- rvm: 2.0
|
23
|
+
env: RUBYOPT="--enable-frozen-string-literal"
|
24
|
+
- rvm: 2.1
|
25
|
+
env: RUBYOPT="--enable-frozen-string-literal"
|
26
|
+
- rvm: 2.2
|
27
|
+
env: RUBYOPT="--enable-frozen-string-literal"
|
28
|
+
# bundler did not support this back then
|
29
|
+
- rvm: 2.3
|
30
|
+
env: RUBYOPT="--enable-frozen-string-literal"
|
data/Ascii85.gemspec
CHANGED
@@ -7,14 +7,12 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = Ascii85::VERSION
|
8
8
|
s.platform = Gem::Platform::RUBY
|
9
9
|
s.author = "Johannes Holzfuß"
|
10
|
-
s.email = "
|
10
|
+
s.email = "johannes@holzfuss.name"
|
11
11
|
s.license = 'MIT'
|
12
|
-
s.homepage = "
|
12
|
+
s.homepage = "https://github.com/DataWraith/ascii85gem/"
|
13
13
|
s.summary = %q{Ascii85 encoder/decoder}
|
14
14
|
s.description = %q{Ascii85 provides methods to encode/decode Adobe's binary-to-text encoding of the same name.}
|
15
15
|
|
16
|
-
s.rubyforge_project = "Ascii85"
|
17
|
-
|
18
16
|
s.add_development_dependency "bundler", ">= 1.0.0"
|
19
17
|
s.add_development_dependency "minitest",">= 2.6.0"
|
20
18
|
s.add_development_dependency "rake", ">= 0.9.2"
|
@@ -23,5 +21,5 @@ Gem::Specification.new do |s|
|
|
23
21
|
s.test_files = `git ls-files -- spec/*`.split("\n")
|
24
22
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
25
23
|
s.require_paths = ["lib"]
|
26
|
-
s.extra_rdoc_files = ['README.
|
24
|
+
s.extra_rdoc_files = ['README.md', 'LICENSE']
|
27
25
|
end
|
data/History.txt
CHANGED
data/README.md
ADDED
@@ -0,0 +1,69 @@
|
|
1
|
+
**Status**: This project is in maintenance mode. I will not develop new features, but I will address Issues and Pull Requests.
|
2
|
+
|
3
|
+
# Ascii85
|
4
|
+
|
5
|
+
[](https://travis-ci.org/DataWraith/ascii85gem)
|
6
|
+
|
7
|
+
## Description
|
8
|
+
|
9
|
+
Ascii85 is a simple gem that provides methods for encoding/decoding Adobe's
|
10
|
+
binary-to-text encoding of the same name.
|
11
|
+
|
12
|
+
See http://www.adobe.com/products/postscript/pdfs/PLRM.pdf page 131 and
|
13
|
+
http://en.wikipedia.org/wiki/Ascii85 for more information about the format.
|
14
|
+
|
15
|
+
|
16
|
+
## Installation
|
17
|
+
|
18
|
+
`sudo gem install Ascii85`
|
19
|
+
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
```
|
24
|
+
require 'rubygems'
|
25
|
+
require 'ascii85'
|
26
|
+
|
27
|
+
Ascii85.encode("Ruby")
|
28
|
+
=> "<~;KZGo~>"
|
29
|
+
|
30
|
+
Ascii85.decode("<~;KZGo~>")
|
31
|
+
=> "Ruby"
|
32
|
+
```
|
33
|
+
|
34
|
+
In addition, Ascii85.encode can take a second parameter that specifies the
|
35
|
+
length of the returned lines. The default is 80; use `false` for unlimited.
|
36
|
+
|
37
|
+
Ascii85.decode expects the input to be enclosed in <~ and ~> — it
|
38
|
+
ignores everything outside of these. The output of Ascii85.decode
|
39
|
+
will have the ASCII-8BIT encoding, so in Ruby 1.9 you may have to use
|
40
|
+
<tt>String#force_encoding</tt> to correct the encoding.
|
41
|
+
|
42
|
+
|
43
|
+
## Command-line utility
|
44
|
+
|
45
|
+
This gem includes `ascii85`, a command-line utility modeled after `base64` from
|
46
|
+
the GNU coreutils. It can be used to encode/decode Ascii85 directly from the
|
47
|
+
command-line:
|
48
|
+
|
49
|
+
```
|
50
|
+
Usage: ascii85 [OPTIONS] [FILE]
|
51
|
+
Encodes or decodes FILE or STDIN using Ascii85 and writes to STDOUT.
|
52
|
+
-w, --wrap COLUMN Wrap lines at COLUMN. Default is 80, use 0 for no wrapping
|
53
|
+
-d, --decode Decode the input
|
54
|
+
-h, --help Display this help and exit
|
55
|
+
--version Output version information
|
56
|
+
```
|
57
|
+
|
58
|
+
|
59
|
+
## Contributors
|
60
|
+
|
61
|
+
Thank you for your contribution!
|
62
|
+
|
63
|
+
* [@aliismayilov](https://github.com/aliismayilov) contributed frozen String handling
|
64
|
+
|
65
|
+
|
66
|
+
## License
|
67
|
+
|
68
|
+
Ascii85 is distributed under the MIT License. See the accompanying LICENSE file
|
69
|
+
for details.
|
data/bin/ascii85
CHANGED
data/lib/Ascii85/version.rb
CHANGED
data/lib/ascii85.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
|
4
5
|
#
|
@@ -9,13 +10,12 @@
|
|
9
10
|
# and http://en.wikipedia.org/wiki/Ascii85 for more information about
|
10
11
|
# the format.
|
11
12
|
#
|
12
|
-
# Author:: Johannes Holzfuß (
|
13
|
+
# Author:: Johannes Holzfuß (johannes@holzfuss.name)
|
13
14
|
# License:: Distributed under the MIT License (see LICENSE file)
|
14
15
|
#
|
15
16
|
|
16
17
|
|
17
18
|
module Ascii85
|
18
|
-
|
19
19
|
#
|
20
20
|
# Encodes the bytes of the given String as Ascii85.
|
21
21
|
#
|
@@ -37,7 +37,6 @@ module Ascii85
|
|
37
37
|
#
|
38
38
|
#
|
39
39
|
def self.encode(str, wrap_lines = 80)
|
40
|
-
|
41
40
|
to_encode = str.to_s
|
42
41
|
return '' if to_encode.empty?
|
43
42
|
|
@@ -59,7 +58,7 @@ module Ascii85
|
|
59
58
|
if tuple == 0
|
60
59
|
'z'
|
61
60
|
else
|
62
|
-
tmp =
|
61
|
+
tmp = String.new
|
63
62
|
5.times do
|
64
63
|
tmp << ((tuple % 85) + 33).chr
|
65
64
|
tuple /= 85
|
@@ -82,7 +81,6 @@ module Ascii85
|
|
82
81
|
end
|
83
82
|
|
84
83
|
# Otherwise we wrap the lines
|
85
|
-
|
86
84
|
line_length = [2, wrap_lines.to_i].max
|
87
85
|
|
88
86
|
wrapped = []
|
@@ -122,7 +120,6 @@ module Ascii85
|
|
122
120
|
# encountered.
|
123
121
|
#
|
124
122
|
def self.decode(str)
|
125
|
-
|
126
123
|
input = str.to_s
|
127
124
|
|
128
125
|
opening_delim = '<~'
|
@@ -134,9 +131,9 @@ module Ascii85
|
|
134
131
|
# errors if an especially exotic input encoding is introduced.
|
135
132
|
# As of Ruby 1.9.2 all non-dummy encodings work fine though.
|
136
133
|
#
|
137
|
-
if opening_delim.respond_to?(:encode
|
138
|
-
opening_delim.encode
|
139
|
-
closing_delim.encode
|
134
|
+
if opening_delim.respond_to?(:encode)
|
135
|
+
opening_delim = opening_delim.encode(input.encoding)
|
136
|
+
closing_delim = closing_delim.encode(input.encoding)
|
140
137
|
end
|
141
138
|
|
142
139
|
# Get the positions of the opening/closing delimiters. If there is
|
@@ -153,7 +150,6 @@ module Ascii85
|
|
153
150
|
result = []
|
154
151
|
|
155
152
|
input.each_byte do |c|
|
156
|
-
|
157
153
|
case c.chr
|
158
154
|
when " ", "\t", "\r", "\n", "\f", "\0"
|
159
155
|
# Ignore whitespace
|
@@ -189,7 +185,6 @@ module Ascii85
|
|
189
185
|
raise(Ascii85::DecodingError,
|
190
186
|
"Illegal character inside Ascii85: #{c.chr.dump}")
|
191
187
|
end
|
192
|
-
|
193
188
|
end
|
194
189
|
|
195
190
|
# Convert result into a String
|
@@ -225,5 +220,4 @@ module Ascii85
|
|
225
220
|
# at least two characters.
|
226
221
|
#
|
227
222
|
class DecodingError < StandardError; end
|
228
|
-
|
229
223
|
end
|
data/spec/lib/ascii85_spec.rb
CHANGED
@@ -7,11 +7,9 @@ require 'minitest/autorun'
|
|
7
7
|
require File.expand_path('../../../lib/ascii85', __FILE__)
|
8
8
|
|
9
9
|
describe Ascii85 do
|
10
|
-
|
11
10
|
UNSUPPORTED_MSG = "This version of Ruby does not support encodings"
|
12
11
|
|
13
12
|
TEST_CASES = {
|
14
|
-
|
15
13
|
"" => "",
|
16
14
|
" " => "<~+9~>",
|
17
15
|
|
@@ -44,9 +42,8 @@ describe Ascii85 do
|
|
44
42
|
}
|
45
43
|
|
46
44
|
it "#decode should be the inverse of #encode" do
|
47
|
-
|
48
45
|
# Generate a random string
|
49
|
-
test_str =
|
46
|
+
test_str = String.new
|
50
47
|
(1 + rand(255)).times do
|
51
48
|
test_str << rand(256).chr
|
52
49
|
end
|
@@ -54,14 +51,13 @@ describe Ascii85 do
|
|
54
51
|
encoded = Ascii85.encode(test_str)
|
55
52
|
decoded = Ascii85.decode(encoded)
|
56
53
|
|
57
|
-
decoded
|
54
|
+
assert_equal decoded, test_str
|
58
55
|
end
|
59
56
|
|
60
57
|
describe "#encode" do
|
61
|
-
|
62
58
|
it "should encode all specified test-cases correctly" do
|
63
59
|
TEST_CASES.each_pair do |input, encoded|
|
64
|
-
Ascii85.encode(input)
|
60
|
+
assert_equal Ascii85.encode(input), encoded
|
65
61
|
end
|
66
62
|
end
|
67
63
|
|
@@ -73,7 +69,7 @@ describe Ascii85 do
|
|
73
69
|
input_EUC_JP = 'どうもありがとうミスターロボット'.encode('EUC-JP')
|
74
70
|
input_binary = input_EUC_JP.force_encoding('ASCII-8BIT')
|
75
71
|
|
76
|
-
Ascii85.encode(input_EUC_JP)
|
72
|
+
assert_equal Ascii85.encode(input_EUC_JP), Ascii85.encode(input_binary)
|
77
73
|
end
|
78
74
|
|
79
75
|
it "should produce output lines no longer than specified" do
|
@@ -82,7 +78,7 @@ describe Ascii85 do
|
|
82
78
|
#
|
83
79
|
# No wrap
|
84
80
|
#
|
85
|
-
Ascii85.encode(test_str, false).count("\n")
|
81
|
+
assert_equal Ascii85.encode(test_str, false).count("\n"), 0
|
86
82
|
|
87
83
|
#
|
88
84
|
# x characters per line, except for the last one
|
@@ -107,23 +103,21 @@ describe Ascii85 do
|
|
107
103
|
count_arr.delete_if { |len| len == x }
|
108
104
|
|
109
105
|
# Now count_arr should be empty
|
110
|
-
count_arr
|
106
|
+
assert_empty count_arr
|
111
107
|
end
|
112
108
|
|
113
109
|
it "should not split the end-marker to achieve correct line length" do
|
114
|
-
Ascii85.encode("\0" * 4, 4)
|
110
|
+
assert_equal Ascii85.encode("\0" * 4, 4), "<~z\n~>"
|
115
111
|
end
|
116
|
-
|
117
112
|
end
|
118
113
|
|
119
114
|
describe "#decode" do
|
120
|
-
|
121
115
|
it "should decode all specified test-cases correctly" do
|
122
116
|
TEST_CASES.each_pair do |decoded, input|
|
123
117
|
if String.new.respond_to?(:encoding)
|
124
|
-
Ascii85.decode(input)
|
118
|
+
assert_equal Ascii85.decode(input), decoded.dup.force_encoding('ASCII-8BIT')
|
125
119
|
else
|
126
|
-
Ascii85.decode(input)
|
120
|
+
assert_equal Ascii85.decode(input), decoded
|
127
121
|
end
|
128
122
|
end
|
129
123
|
end
|
@@ -149,7 +143,7 @@ describe Ascii85 do
|
|
149
143
|
|
150
144
|
begin
|
151
145
|
to_test = input_ascii85.encode(encoding)
|
152
|
-
Ascii85.decode(to_test).force_encoding('UTF-8')
|
146
|
+
assert_equal Ascii85.decode(to_test).force_encoding('UTF-8'), input
|
153
147
|
rescue Encoding::ConverterNotFoundError
|
154
148
|
# Ignore this encoding
|
155
149
|
end
|
@@ -157,19 +151,19 @@ describe Ascii85 do
|
|
157
151
|
end
|
158
152
|
|
159
153
|
it "should only process data within delimiters" do
|
160
|
-
Ascii85.decode("<~~>")
|
161
|
-
Ascii85.decode("Doesn't contain delimiters")
|
162
|
-
Ascii85.decode("Mismatched ~> delimiters 1")
|
163
|
-
Ascii85.decode("Mismatched <~ delimiters 2")
|
164
|
-
Ascii85.decode("Mismatched ~><~ delimiters 3")
|
165
|
-
|
166
|
-
Ascii85.decode("<~;KZGo~><~z~>")
|
167
|
-
Ascii85.decode("FooBar<~z~>BazQux")
|
154
|
+
assert_empty Ascii85.decode("<~~>")
|
155
|
+
assert_empty Ascii85.decode("Doesn't contain delimiters")
|
156
|
+
assert_empty Ascii85.decode("Mismatched ~> delimiters 1")
|
157
|
+
assert_empty Ascii85.decode("Mismatched <~ delimiters 2")
|
158
|
+
assert_empty Ascii85.decode("Mismatched ~><~ delimiters 3")
|
159
|
+
|
160
|
+
assert_equal Ascii85.decode("<~;KZGo~><~z~>"), "Ruby"
|
161
|
+
assert_equal Ascii85.decode("FooBar<~z~>BazQux"), "\0\0\0\0"
|
168
162
|
end
|
169
163
|
|
170
164
|
it "should ignore whitespace" do
|
171
165
|
decoded = Ascii85.decode("<~6 #LdYA\r\08\n \n\n- *rF*(i\"Ch[s \t(D.RU,@ <-\'jDJ=0\f/~>")
|
172
|
-
decoded
|
166
|
+
assert_equal decoded, 'Antidisestablishmentarianism'
|
173
167
|
end
|
174
168
|
|
175
169
|
it "should return ASCII-8BIT encoded strings" do
|
@@ -177,29 +171,25 @@ describe Ascii85 do
|
|
177
171
|
skip(UNSUPPORTED_MSG)
|
178
172
|
end
|
179
173
|
|
180
|
-
Ascii85.decode("<~;KZGo~>").encoding.name
|
174
|
+
assert_equal Ascii85.decode("<~;KZGo~>").encoding.name, "ASCII-8BIT"
|
181
175
|
end
|
182
176
|
|
183
177
|
describe "Error conditions" do
|
184
|
-
|
185
178
|
it "should raise DecodingError if it encounters a word >= 2**32" do
|
186
|
-
|
179
|
+
assert_raises(Ascii85::DecodingError) { Ascii85.decode('<~s8W-#~>') }
|
187
180
|
end
|
188
181
|
|
189
182
|
it "should raise DecodingError if it encounters an invalid character" do
|
190
|
-
|
183
|
+
assert_raises(Ascii85::DecodingError) { Ascii85.decode('<~!!y!!~>') }
|
191
184
|
end
|
192
185
|
|
193
186
|
it "should raise DecodingError if the last tuple consists of a single character" do
|
194
|
-
|
187
|
+
assert_raises(Ascii85::DecodingError) { Ascii85.decode('<~!~>') }
|
195
188
|
end
|
196
189
|
|
197
190
|
it "should raise DecodingError if a z is found inside a 5-tuple" do
|
198
|
-
|
191
|
+
assert_raises(Ascii85::DecodingError) { Ascii85.decode('<~!!z!!~>') }
|
199
192
|
end
|
200
|
-
|
201
193
|
end
|
202
|
-
|
203
194
|
end
|
204
|
-
|
205
195
|
end
|
metadata
CHANGED
@@ -1,98 +1,100 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: Ascii85
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 1.0.2
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
|
-
authors:
|
8
|
-
|
6
|
+
authors:
|
7
|
+
- Johannes Holzfuß
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
11
|
+
date: 2020-11-12 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 1.0.0
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 1.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: minitest
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.6.0
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.6.0
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.9.2
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.9.2
|
55
|
+
description: Ascii85 provides methods to encode/decode Adobe's binary-to-text encoding
|
56
|
+
of the same name.
|
57
|
+
email: johannes@holzfuss.name
|
58
|
+
executables:
|
59
|
+
- ascii85
|
52
60
|
extensions: []
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
61
|
+
extra_rdoc_files:
|
62
|
+
- README.md
|
63
|
+
- LICENSE
|
64
|
+
files:
|
65
|
+
- ".travis.yml"
|
66
|
+
- Ascii85.gemspec
|
67
|
+
- Gemfile
|
68
|
+
- History.txt
|
69
|
+
- LICENSE
|
70
|
+
- README.md
|
71
|
+
- Rakefile
|
72
|
+
- bin/ascii85
|
73
|
+
- lib/Ascii85/version.rb
|
74
|
+
- lib/ascii85.rb
|
75
|
+
- spec/lib/ascii85_spec.rb
|
76
|
+
homepage: https://github.com/DataWraith/ascii85gem/
|
77
|
+
licenses:
|
78
|
+
- MIT
|
79
|
+
metadata: {}
|
72
80
|
post_install_message:
|
73
81
|
rdoc_options: []
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
- - ">="
|
87
|
-
- !ruby/object:Gem::Version
|
88
|
-
version: "0"
|
82
|
+
require_paths:
|
83
|
+
- lib
|
84
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
89
94
|
requirements: []
|
90
|
-
|
91
|
-
rubyforge_project: Ascii85
|
92
|
-
rubygems_version: 1.8.24
|
95
|
+
rubygems_version: 3.1.4
|
93
96
|
signing_key:
|
94
|
-
specification_version:
|
97
|
+
specification_version: 4
|
95
98
|
summary: Ascii85 encoder/decoder
|
96
|
-
test_files:
|
97
|
-
|
98
|
-
has_rdoc:
|
99
|
+
test_files:
|
100
|
+
- spec/lib/ascii85_spec.rb
|
data/.gemtest
DELETED
File without changes
|
data/README.rdoc
DELETED
@@ -1,57 +0,0 @@
|
|
1
|
-
= Ascii85
|
2
|
-
|
3
|
-
* http://rubyforge.org/projects/ascii85
|
4
|
-
|
5
|
-
|
6
|
-
== Description
|
7
|
-
|
8
|
-
Ascii85 is a simple gem that provides methods for encoding/decoding Adobe's
|
9
|
-
binary-to-text encoding of the same name.
|
10
|
-
|
11
|
-
See http://www.adobe.com/products/postscript/pdfs/PLRM.pdf page 131 and
|
12
|
-
http://en.wikipedia.org/wiki/Ascii85 for more information about the format.
|
13
|
-
|
14
|
-
|
15
|
-
== Installation
|
16
|
-
|
17
|
-
* sudo gem install Ascii85
|
18
|
-
|
19
|
-
|
20
|
-
== Usage
|
21
|
-
|
22
|
-
require 'rubygems'
|
23
|
-
require 'ascii85'
|
24
|
-
|
25
|
-
Ascii85.encode("Ruby")
|
26
|
-
=> "<~;KZGo~>"
|
27
|
-
|
28
|
-
Ascii85.decode("<~;KZGo~>")
|
29
|
-
=> "Ruby"
|
30
|
-
|
31
|
-
In addition, Ascii85.encode can take a second parameter that specifies the
|
32
|
-
length of the returned lines. The default is 80; use +false+ for unlimited.
|
33
|
-
|
34
|
-
Ascii85.decode expects the input to be enclosed in <~ and ~> — it
|
35
|
-
ignores everything outside of these. The output of Ascii85.decode
|
36
|
-
will have the ASCII-8BIT encoding, so in Ruby 1.9 you may have to use
|
37
|
-
<tt>String#force_encoding</tt> to correct the encoding.
|
38
|
-
|
39
|
-
|
40
|
-
== Command-line utility
|
41
|
-
|
42
|
-
This gem includes +ascii85+, a command-line utility modeled after +base64+ from
|
43
|
-
the GNU coreutils. It can be used to encode/decode Ascii85 directly from the
|
44
|
-
command-line:
|
45
|
-
|
46
|
-
Usage: ascii85 [OPTIONS] [FILE]
|
47
|
-
Encodes or decodes FILE or STDIN using Ascii85 and writes to STDOUT.
|
48
|
-
-w, --wrap COLUMN Wrap lines at COLUMN. Default is 80, use 0 for no wrapping
|
49
|
-
-d, --decode Decode the input
|
50
|
-
-h, --help Display this help and exit
|
51
|
-
--version Output version information
|
52
|
-
|
53
|
-
|
54
|
-
== License
|
55
|
-
|
56
|
-
Ascii85 is distributed under the MIT License. See the accompanying LICENSE file
|
57
|
-
for details.
|