ptools 1.3.2-universal-mingw32 → 1.4.0-universal-mingw32
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/CHANGES +200 -168
- data/Gemfile +12 -12
- data/MANIFEST +27 -19
- data/README +68 -66
- data/Rakefile +87 -139
- data/certs/djberg96_pub.pem +26 -0
- data/lib/ptools.rb +476 -482
- data/ptools.gemspec +30 -30
- data/spec/binary_spec.rb +59 -0
- data/spec/constants_spec.rb +33 -0
- data/spec/head_spec.rb +41 -0
- data/spec/image_spec.rb +51 -0
- data/{test → spec}/img/test.gif +0 -0
- data/spec/img/test.ico +0 -0
- data/{test → spec}/img/test.jpg +0 -0
- data/{test → spec}/img/test.png +0 -0
- data/spec/nlconvert_spec.rb +104 -0
- data/spec/sparse_spec.rb +43 -0
- data/spec/tail_spec.rb +107 -0
- data/spec/touch_spec.rb +47 -0
- data/{.gemtest → spec/txt/empty.txt} +0 -0
- data/{test → spec}/txt/english.txt +1 -1
- data/spec/txt/english.utf16 +0 -0
- data/{test → spec}/txt/korean.txt +1 -1
- data/spec/wc_spec.rb +65 -0
- data/spec/whereis_spec.rb +87 -0
- data/spec/which_spec.rb +112 -0
- metadata +60 -44
- metadata.gz.sig +0 -0
- data/test/test_binary.rb +0 -65
- data/test/test_constants.rb +0 -38
- data/test/test_head.rb +0 -48
- data/test/test_image.rb +0 -57
- data/test/test_is_sparse.rb +0 -53
- data/test/test_nlconvert.rb +0 -110
- data/test/test_null.rb +0 -40
- data/test/test_tail.rb +0 -124
- data/test/test_touch.rb +0 -53
- data/test/test_wc.rb +0 -73
- data/test/test_whereis.rb +0 -98
- data/test/test_which.rb +0 -126
data/spec/touch_spec.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# test_touch.rb
|
3
|
+
#
|
4
|
+
# Test case for the File.touch method. This test should be run
|
5
|
+
# via the 'rake test_touch task'.
|
6
|
+
#####################################################################
|
7
|
+
require 'rspec'
|
8
|
+
require 'ptools'
|
9
|
+
|
10
|
+
RSpec.describe File, :touch do
|
11
|
+
let(:dirname) { File.dirname(__FILE__) }
|
12
|
+
let(:filename) { 'test_file_touch.txt' }
|
13
|
+
let(:xfile) { File.join(dirname, filename) }
|
14
|
+
|
15
|
+
before do
|
16
|
+
File.open(xfile, 'w'){ |fh| 10.times{ |n| fh.puts "line #{n}" } }
|
17
|
+
@test_file = File.join(dirname, 'delete.this')
|
18
|
+
end
|
19
|
+
|
20
|
+
example "touch basic functionality" do
|
21
|
+
expect(File).to respond_to(:touch)
|
22
|
+
expect{ File.touch(@test_file) }.not_to raise_error
|
23
|
+
end
|
24
|
+
|
25
|
+
example "touch a new file returns expected results" do
|
26
|
+
expect(File.touch(@test_file)).to eq(File)
|
27
|
+
expect(File.exist?(@test_file)).to be true
|
28
|
+
expect(File.size(@test_file)).to eq(0)
|
29
|
+
end
|
30
|
+
|
31
|
+
example "touch an existing file returns expected results" do
|
32
|
+
stat = File.stat(xfile)
|
33
|
+
sleep 0.5
|
34
|
+
expect{ File.touch(xfile) }.not_to raise_error
|
35
|
+
expect(File.size(xfile) == stat.size).to be true
|
36
|
+
expect(File.mtime(xfile) == stat.mtime).to be false
|
37
|
+
end
|
38
|
+
|
39
|
+
example "touch requires an argument" do
|
40
|
+
expect{ File.touch }.to raise_error(ArgumentError)
|
41
|
+
end
|
42
|
+
|
43
|
+
after do
|
44
|
+
File.delete(@test_file) if File.exist?(@test_file)
|
45
|
+
File.delete(xfile) if File.exist?(xfile)
|
46
|
+
end
|
47
|
+
end
|
File without changes
|
@@ -1 +1 @@
|
|
1
|
-
Hello World
|
1
|
+
Hello World
|
Binary file
|
@@ -1 +1 @@
|
|
1
|
-
한국어의 내용분석을 위한
|
1
|
+
한국어의 내용분석을 위한
|
data/spec/wc_spec.rb
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# wc_spec.rb
|
3
|
+
#
|
4
|
+
# Specs for the File.wc method. These specs should be run via
|
5
|
+
# the 'rake wc' task.
|
6
|
+
#####################################################################
|
7
|
+
require 'rspec'
|
8
|
+
require 'ptools'
|
9
|
+
|
10
|
+
RSpec.describe File, :wc do
|
11
|
+
let(:test_file) { 'test_file_wc.txt' }
|
12
|
+
|
13
|
+
before do
|
14
|
+
File.open(test_file, 'w'){ |fh| 25.times{ |n| fh.puts "line#{n+1}" } }
|
15
|
+
end
|
16
|
+
|
17
|
+
example "wc method basic functionality" do
|
18
|
+
expect(File).to respond_to(:wc)
|
19
|
+
expect{ File.wc(test_file) }.not_to raise_error
|
20
|
+
end
|
21
|
+
|
22
|
+
example "wc accepts specific optional arguments" do
|
23
|
+
expect{ File.wc(test_file, 'bytes') }.not_to raise_error
|
24
|
+
expect{ File.wc(test_file, 'chars') }.not_to raise_error
|
25
|
+
expect{ File.wc(test_file, 'words') }.not_to raise_error
|
26
|
+
expect{ File.wc(test_file, 'lines') }.not_to raise_error
|
27
|
+
end
|
28
|
+
|
29
|
+
example "argument to wc ignores the case of the option argument" do
|
30
|
+
expect{ File.wc(test_file, 'LINES') }.not_to raise_error
|
31
|
+
end
|
32
|
+
|
33
|
+
example "wc with no option returns expected results" do
|
34
|
+
expect(File.wc(test_file)).to be_kind_of(Array)
|
35
|
+
expect(File.wc(test_file)).to eq([166, 166, 25, 25])
|
36
|
+
end
|
37
|
+
|
38
|
+
example "wc with bytes option returns the expected result" do
|
39
|
+
expect(File.wc(test_file, 'bytes')).to eq(166)
|
40
|
+
end
|
41
|
+
|
42
|
+
example "wc with chars option returns the expected result" do
|
43
|
+
expect(File.wc(test_file, 'chars')).to eq(166)
|
44
|
+
end
|
45
|
+
|
46
|
+
example "wc with words option returns the expected result" do
|
47
|
+
expect(File.wc(test_file, 'words')).to eq(25)
|
48
|
+
end
|
49
|
+
|
50
|
+
example "wc with lines option returns the expected result" do
|
51
|
+
expect(File.wc(test_file, 'lines')).to eq(25)
|
52
|
+
end
|
53
|
+
|
54
|
+
example "wc requires at least on argument" do
|
55
|
+
expect{ File.wc }.to raise_error(ArgumentError)
|
56
|
+
end
|
57
|
+
|
58
|
+
example "an invalid option raises an error" do
|
59
|
+
expect{ File.wc(test_file, 'bogus') }.to raise_error(ArgumentError)
|
60
|
+
end
|
61
|
+
|
62
|
+
after do
|
63
|
+
File.delete(test_file) if File.exists?(test_file)
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
######################################################################
|
2
|
+
# test_whereis.rb
|
3
|
+
#
|
4
|
+
# Tests for the File.whereis method.
|
5
|
+
######################################################################
|
6
|
+
require 'rubygems'
|
7
|
+
require 'rspec'
|
8
|
+
require 'ptools'
|
9
|
+
require 'rbconfig'
|
10
|
+
|
11
|
+
RSpec.describe File, :whereis do
|
12
|
+
let(:windows) { File::ALT_SEPARATOR }
|
13
|
+
let(:ruby) { RUBY_ENGINE }
|
14
|
+
let(:bin_dir) { RbConfig::CONFIG['bindir'] }
|
15
|
+
|
16
|
+
before do
|
17
|
+
@expected_locs = [File.join(bin_dir, ruby)]
|
18
|
+
|
19
|
+
if windows
|
20
|
+
@expected_locs[0] << '.exe'
|
21
|
+
@expected_locs[0].tr!("/", "\\")
|
22
|
+
end
|
23
|
+
|
24
|
+
unless windows
|
25
|
+
@expected_locs << "/usr/local/bin/#{ruby}"
|
26
|
+
@expected_locs << "/opt/sfw/bin/#{ruby}"
|
27
|
+
@expected_locs << "/opt/bin/#{ruby}"
|
28
|
+
@expected_locs << "/usr/bin/#{ruby}"
|
29
|
+
end
|
30
|
+
|
31
|
+
@actual_locs = nil
|
32
|
+
end
|
33
|
+
|
34
|
+
example "whereis basic functionality" do
|
35
|
+
expect(File).to respond_to(:whereis)
|
36
|
+
expect{ File.whereis('ruby') }.not_to raise_error
|
37
|
+
expect(File.whereis('ruby')).to be_kind_of(Array).or be_nil
|
38
|
+
end
|
39
|
+
|
40
|
+
example "whereis accepts an optional second argument" do
|
41
|
+
expect{ File.whereis('ruby', '/usr/bin:/usr/local/bin') }.not_to raise_error
|
42
|
+
end
|
43
|
+
|
44
|
+
example "whereis returns expected values" do
|
45
|
+
expect{ @actual_locs = File.whereis(ruby) }.not_to raise_error
|
46
|
+
expect(@actual_locs).to be_kind_of(Array)
|
47
|
+
expect((@expected_locs & @actual_locs).size > 0).to be true
|
48
|
+
end
|
49
|
+
|
50
|
+
example "whereis returns nil if program not found" do
|
51
|
+
expect(File.whereis('xxxyyy')).to be_nil
|
52
|
+
end
|
53
|
+
|
54
|
+
example "whereis returns nil if program cannot be found in provided path" do
|
55
|
+
expect(File.whereis(ruby, '/foo/bar')).to be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
example "whereis returns single element array or nil if absolute path is provided" do
|
59
|
+
absolute = File.join(bin_dir, ruby)
|
60
|
+
absolute << '.exe' if windows
|
61
|
+
|
62
|
+
expect(File.whereis(absolute)).to eq([absolute])
|
63
|
+
expect(File.whereis("/foo/bar/baz/#{ruby}")).to be_nil
|
64
|
+
end
|
65
|
+
|
66
|
+
example "whereis works with an explicit extension on ms windows" do
|
67
|
+
skip "skipped unless MS Windows" unless windows
|
68
|
+
expect(File.whereis(ruby + '.exe')).not_to be_nil
|
69
|
+
end
|
70
|
+
|
71
|
+
example "whereis requires at least one argument" do
|
72
|
+
expect{ File.whereis }.to raise_error(ArgumentError)
|
73
|
+
end
|
74
|
+
|
75
|
+
example "whereis returns unique paths only" do
|
76
|
+
expect(File.whereis(ruby) == File.whereis(ruby).uniq).to be true
|
77
|
+
end
|
78
|
+
|
79
|
+
example "whereis accepts a maximum of two arguments" do
|
80
|
+
expect{ File.whereis(ruby, 'foo', 'bar') }.to raise_error(ArgumentError)
|
81
|
+
end
|
82
|
+
|
83
|
+
example "the second argument to whereis cannot be nil or empty" do
|
84
|
+
expect{ File.whereis(ruby, nil) }.to raise_error(ArgumentError)
|
85
|
+
expect{ File.whereis(ruby, '') }.to raise_error(ArgumentError)
|
86
|
+
end
|
87
|
+
end
|
data/spec/which_spec.rb
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
#####################################################################
|
2
|
+
# which_spec.rb
|
3
|
+
#
|
4
|
+
# Test case for the File.which method. You should run this test
|
5
|
+
# via 'rake spec' or 'rake spec --tag which'.
|
6
|
+
#####################################################################
|
7
|
+
require 'rspec'
|
8
|
+
require 'rbconfig'
|
9
|
+
require 'fileutils'
|
10
|
+
require 'ptools'
|
11
|
+
require 'tempfile'
|
12
|
+
|
13
|
+
describe File, :which do
|
14
|
+
before(:context) do
|
15
|
+
@windows = File::ALT_SEPARATOR
|
16
|
+
@dir = File.join(Dir.pwd, 'tempdir')
|
17
|
+
@non_exe = File.join(Dir.pwd, 'tempfile')
|
18
|
+
@ruby = RUBY_PLATFORM.match('java') ? 'jruby' : 'ruby'
|
19
|
+
@ruby = 'rbx' if defined?(Rubinius)
|
20
|
+
|
21
|
+
Dir.mkdir(@dir) unless File.exist?(@dir)
|
22
|
+
FileUtils.touch(@non_exe)
|
23
|
+
File.chmod(775, @dir)
|
24
|
+
File.chmod(644, @non_exe)
|
25
|
+
|
26
|
+
@exe = File.join(
|
27
|
+
RbConfig::CONFIG['bindir'],
|
28
|
+
RbConfig::CONFIG['ruby_install_name']
|
29
|
+
)
|
30
|
+
|
31
|
+
if @windows
|
32
|
+
@exe.tr!('/','\\')
|
33
|
+
@exe << ".exe"
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
example "which method basic functionality" do
|
38
|
+
expect(File).to respond_to(:which)
|
39
|
+
expect{ File.which(@ruby) }.not_to raise_error
|
40
|
+
expect(File.which(@ruby)).to be_kind_of(String)
|
41
|
+
end
|
42
|
+
|
43
|
+
example "which accepts an optional path to search" do
|
44
|
+
expect{ File.which(@ruby, "/usr/bin:/usr/local/bin") }.not_to raise_error
|
45
|
+
end
|
46
|
+
|
47
|
+
example "which returns nil if not found" do
|
48
|
+
expect(File.which(@ruby, '/bogus/path')).to be_nil
|
49
|
+
expect(File.which('blahblahblah')).to be_nil
|
50
|
+
end
|
51
|
+
|
52
|
+
example "which handles executables without extensions on windows" do
|
53
|
+
skip "skipped unless MS Windows" unless @windows
|
54
|
+
expect(File.which('ruby')).not_to be_nil
|
55
|
+
expect(File.which('notepad')).not_to be_nil
|
56
|
+
end
|
57
|
+
|
58
|
+
example "which handles executables that already contain extensions on windows" do
|
59
|
+
skip "skipped unless MS Windows" unless @windows
|
60
|
+
expect(File.which('ruby.exe')).not_to be_nil
|
61
|
+
expect(File.which('notepad.exe')).not_to be_nil
|
62
|
+
end
|
63
|
+
|
64
|
+
example "which returns argument if an existent absolute path is provided" do
|
65
|
+
expect(File.which(@ruby)).to eq(@exe), "May fail on a symlink"
|
66
|
+
end
|
67
|
+
|
68
|
+
example "which returns nil if a non-existent absolute path is provided" do
|
69
|
+
expect(File.which('/foo/bar/baz/ruby')).to be_nil
|
70
|
+
end
|
71
|
+
|
72
|
+
example "which does not pickup files that are not executable" do
|
73
|
+
expect(File.which(@non_exe)).to be_nil
|
74
|
+
end
|
75
|
+
|
76
|
+
example "which does not pickup executable directories" do
|
77
|
+
expect(File.which(@dir)).to be_nil
|
78
|
+
end
|
79
|
+
|
80
|
+
example "which accepts a minimum of one argument" do
|
81
|
+
expect{ File.which }.to raise_error(ArgumentError)
|
82
|
+
end
|
83
|
+
|
84
|
+
example "which accepts a maximum of two arguments" do
|
85
|
+
expect{ File.which(@ruby, "foo", "bar") }.to raise_error(ArgumentError)
|
86
|
+
end
|
87
|
+
|
88
|
+
example "the second argument cannot be nil or empty" do
|
89
|
+
expect{ File.which(@ruby, nil) }.to raise_error(ArgumentError)
|
90
|
+
expect{ File.which(@ruby, '') }.to raise_error(ArgumentError)
|
91
|
+
end
|
92
|
+
|
93
|
+
example "resolves with with ~" do
|
94
|
+
skip "skipped on MS Windows" if @windows
|
95
|
+
begin
|
96
|
+
old_home = ENV['HOME']
|
97
|
+
|
98
|
+
ENV['HOME'] = Dir::Tmpname.tmpdir
|
99
|
+
program = Tempfile.new(['program', '.sh'])
|
100
|
+
File.chmod(755, program.path)
|
101
|
+
|
102
|
+
expect(File.which(File.basename(program.path), '~/')).not_to be_nil
|
103
|
+
ensure
|
104
|
+
ENV['HOME'] = old_home
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
after(:context) do
|
109
|
+
FileUtils.rm(@non_exe)
|
110
|
+
FileUtils.rm_rf(@dir)
|
111
|
+
end
|
112
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,41 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ptools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: universal-mingw32
|
6
6
|
authors:
|
7
7
|
- Daniel J. Berger
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIEcDCCAtigAwIBAgIBATANBgkqhkiG9w0BAQsFADA/MREwDwYDVQQDDAhkamJl
|
14
|
+
cmc5NjEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPyLGQBGRYDY29t
|
15
|
+
MB4XDTE4MDMxODE1MjIwN1oXDTI4MDMxNTE1MjIwN1owPzERMA8GA1UEAwwIZGpi
|
16
|
+
ZXJnOTYxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkWA2Nv
|
17
|
+
bTCCAaIwDQYJKoZIhvcNAQEBBQADggGPADCCAYoCggGBALgfaroVM6CI06cxr0/h
|
18
|
+
A+j+pc8fgpRgBVmHFaFunq28GPC3IvW7Nvc3Y8SnAW7pP1EQIbhlwRIaQzJ93/yj
|
19
|
+
u95KpkP7tA9erypnV7dpzBkzNlX14ACaFD/6pHoXoe2ltBxk3CCyyzx70mTqJpph
|
20
|
+
75IB03ni9a8yqn8pmse+s83bFJOAqddSj009sGPcQO+QOWiNxqYv1n5EHcvj2ebO
|
21
|
+
6hN7YTmhx7aSia4qL/quc4DlIaGMWoAhvML7u1fmo53CYxkKskfN8MOecq2vfEmL
|
22
|
+
iLu+SsVVEAufMDDFMXMJlvDsviolUSGMSNRTujkyCcJoXKYYxZSNtIiyd9etI0X3
|
23
|
+
ctu0uhrFyrMZXCedutvXNjUolD5r9KGBFSWH1R9u2I3n3SAyFF2yzv/7idQHLJJq
|
24
|
+
74BMnx0FIq6fCpu5slAipvxZ3ZkZpEXZFr3cIBtO1gFvQWW7E/Y3ijliWJS1GQFq
|
25
|
+
058qERadHGu1yu1dojmFRo6W2KZvY9al2yIlbkpDrD5MYQIDAQABo3cwdTAJBgNV
|
26
|
+
HRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUFZsMapgzJimzsbaBG2Tm8j5e
|
27
|
+
AzgwHQYDVR0RBBYwFIESZGpiZXJnOTZAZ21haWwuY29tMB0GA1UdEgQWMBSBEmRq
|
28
|
+
YmVyZzk2QGdtYWlsLmNvbTANBgkqhkiG9w0BAQsFAAOCAYEAW2tnYixXQtKxgGXq
|
29
|
+
/3iSWG2bLwvxS4go3srO+aRXZHrFUMlJ5W0mCxl03aazxxKTsVVpZD8QZxvK91OQ
|
30
|
+
h9zr9JBYqCLcCVbr8SkmYCi/laxIZxsNE5YI8cC8vvlLI7AMgSfPSnn/Epq1GjGY
|
31
|
+
6L1iRcEDtanGCIvjqlCXO9+BmsnCfEVehqZkQHeYczA03tpOWb6pon2wzvMKSsKH
|
32
|
+
ks0ApVdstSLz1kzzAqem/uHdG9FyXdbTAwH1G4ZPv69sQAFAOCgAqYmdnzedsQtE
|
33
|
+
1LQfaQrx0twO+CZJPcRLEESjq8ScQxWRRkfuh2VeR7cEU7L7KqT10mtUwrvw7APf
|
34
|
+
DYoeCY9KyjIBjQXfbj2ke5u1hZj94Fsq9FfbEQg8ygCgwThnmkTrrKEiMSs3alYR
|
35
|
+
ORVCZpRuCPpmC8qmqxUnARDArzucjaclkxjLWvCVHeFa9UP7K3Nl9oTjJNv+7/jM
|
36
|
+
WZs4eecIcUc4tKdHxcAJ0MO/Dkqq7hGaiHpwKY76wQ1+8xAh
|
37
|
+
-----END CERTIFICATE-----
|
38
|
+
date: 2020-11-05 00:00:00.000000000 Z
|
12
39
|
dependencies:
|
13
40
|
- !ruby/object:Gem::Dependency
|
14
41
|
name: rake
|
@@ -25,33 +52,33 @@ dependencies:
|
|
25
52
|
- !ruby/object:Gem::Version
|
26
53
|
version: '0'
|
27
54
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
55
|
+
name: rspec
|
29
56
|
requirement: !ruby/object:Gem::Requirement
|
30
57
|
requirements:
|
31
|
-
- - "
|
58
|
+
- - "~>"
|
32
59
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
60
|
+
version: '3.9'
|
34
61
|
type: :development
|
35
62
|
prerelease: false
|
36
63
|
version_requirements: !ruby/object:Gem::Requirement
|
37
64
|
requirements:
|
38
|
-
- - "
|
65
|
+
- - "~>"
|
39
66
|
- !ruby/object:Gem::Version
|
40
|
-
version:
|
67
|
+
version: '3.9'
|
41
68
|
- !ruby/object:Gem::Dependency
|
42
69
|
name: win32-file
|
43
70
|
requirement: !ruby/object:Gem::Requirement
|
44
71
|
requirements:
|
45
72
|
- - ">="
|
46
73
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0
|
74
|
+
version: '0'
|
48
75
|
type: :runtime
|
49
76
|
prerelease: false
|
50
77
|
version_requirements: !ruby/object:Gem::Requirement
|
51
78
|
requirements:
|
52
79
|
- - ">="
|
53
80
|
- !ruby/object:Gem::Version
|
54
|
-
version: 0
|
81
|
+
version: '0'
|
55
82
|
description: |2
|
56
83
|
The ptools (power tools) library provides several handy methods to
|
57
84
|
Ruby's core File class, such as File.which for finding executables,
|
@@ -64,34 +91,36 @@ extra_rdoc_files:
|
|
64
91
|
- CHANGES
|
65
92
|
- MANIFEST
|
66
93
|
files:
|
67
|
-
- ".gemtest"
|
68
94
|
- CHANGES
|
69
95
|
- Gemfile
|
70
96
|
- MANIFEST
|
71
97
|
- README
|
72
98
|
- Rakefile
|
99
|
+
- certs/djberg96_pub.pem
|
73
100
|
- lib/ptools.rb
|
74
101
|
- ptools.gemspec
|
75
|
-
-
|
76
|
-
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
- test
|
80
|
-
- test
|
81
|
-
- test
|
82
|
-
- test
|
83
|
-
-
|
84
|
-
-
|
85
|
-
-
|
86
|
-
-
|
87
|
-
-
|
88
|
-
-
|
89
|
-
-
|
90
|
-
-
|
91
|
-
-
|
102
|
+
- spec/binary_spec.rb
|
103
|
+
- spec/constants_spec.rb
|
104
|
+
- spec/head_spec.rb
|
105
|
+
- spec/image_spec.rb
|
106
|
+
- spec/img/test.gif
|
107
|
+
- spec/img/test.ico
|
108
|
+
- spec/img/test.jpg
|
109
|
+
- spec/img/test.png
|
110
|
+
- spec/nlconvert_spec.rb
|
111
|
+
- spec/sparse_spec.rb
|
112
|
+
- spec/tail_spec.rb
|
113
|
+
- spec/touch_spec.rb
|
114
|
+
- spec/txt/empty.txt
|
115
|
+
- spec/txt/english.txt
|
116
|
+
- spec/txt/english.utf16
|
117
|
+
- spec/txt/korean.txt
|
118
|
+
- spec/wc_spec.rb
|
119
|
+
- spec/whereis_spec.rb
|
120
|
+
- spec/which_spec.rb
|
92
121
|
homepage: https://github.com/djberg96/ptools
|
93
122
|
licenses:
|
94
|
-
- Artistic
|
123
|
+
- Artistic-2.0
|
95
124
|
metadata: {}
|
96
125
|
post_install_message:
|
97
126
|
rdoc_options: []
|
@@ -108,21 +137,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
108
137
|
- !ruby/object:Gem::Version
|
109
138
|
version: '0'
|
110
139
|
requirements: []
|
111
|
-
|
112
|
-
rubygems_version: 2.4.5
|
140
|
+
rubygems_version: 3.0.3
|
113
141
|
signing_key:
|
114
142
|
specification_version: 4
|
115
143
|
summary: Extra methods for the File class
|
116
|
-
test_files:
|
117
|
-
- test/test_binary.rb
|
118
|
-
- test/test_constants.rb
|
119
|
-
- test/test_head.rb
|
120
|
-
- test/test_image.rb
|
121
|
-
- test/test_is_sparse.rb
|
122
|
-
- test/test_nlconvert.rb
|
123
|
-
- test/test_null.rb
|
124
|
-
- test/test_tail.rb
|
125
|
-
- test/test_touch.rb
|
126
|
-
- test/test_wc.rb
|
127
|
-
- test/test_whereis.rb
|
128
|
-
- test/test_which.rb
|
144
|
+
test_files: []
|