net-ftp 0.3.5 → 0.3.7
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 +4 -4
- data/.github/workflows/push_gem.yml +48 -0
- data/.github/workflows/test.yml +8 -1
- data/lib/net/ftp.rb +32 -8
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8659ce2bc51a97837fbb5090015c4e137845744cf2fcb676dffb347cbf7522b
|
4
|
+
data.tar.gz: ce205d52a5e6aa63b17453fa0ba5f1a2a7ef8cea65d90b5f2669ff99560cf432
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef464a215293288224cf7209f1209f32f5cc0e62b98d6a11b13e6f76c1b1d7a66aca5ed0a2da7b86b81108bc2696870c9aa33ac0ee9e69eeb9701adc02583fe2
|
7
|
+
data.tar.gz: d2d60b116f1b2bf9b8ecfd7003701fd5df7285be006256b4705b6974cdd4f8998f73c4f35840f98dcf7097a418b8b1f82573bc82159ac137dc691b5077900d54
|
@@ -0,0 +1,48 @@
|
|
1
|
+
name: Publish gem to rubygems.org
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
tags:
|
6
|
+
- 'v*'
|
7
|
+
|
8
|
+
permissions:
|
9
|
+
contents: read
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
push:
|
13
|
+
if: github.repository == 'ruby/net-ftp'
|
14
|
+
runs-on: ubuntu-latest
|
15
|
+
|
16
|
+
environment:
|
17
|
+
name: rubygems.org
|
18
|
+
url: https://rubygems.org/gems/net-ftp
|
19
|
+
|
20
|
+
permissions:
|
21
|
+
contents: write
|
22
|
+
id-token: write
|
23
|
+
|
24
|
+
steps:
|
25
|
+
# Set up
|
26
|
+
- name: Harden Runner
|
27
|
+
uses: step-security/harden-runner@17d0e2bd7d51742c71671bd19fa12bdc9d40a3d6 # v2.8.1
|
28
|
+
with:
|
29
|
+
egress-policy: audit
|
30
|
+
|
31
|
+
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
|
32
|
+
|
33
|
+
- name: Set up Ruby
|
34
|
+
uses: ruby/setup-ruby@cacc9f1c0b3f4eb8a16a6bb0ed10897b43b9de49 # v1.176.0
|
35
|
+
with:
|
36
|
+
bundler-cache: true
|
37
|
+
ruby-version: ruby
|
38
|
+
|
39
|
+
# Release
|
40
|
+
- name: Publish to RubyGems
|
41
|
+
uses: rubygems/release-gem@612653d273a73bdae1df8453e090060bb4db5f31 # v1
|
42
|
+
|
43
|
+
- name: Create GitHub release
|
44
|
+
run: |
|
45
|
+
tag_name="$(git describe --tags --abbrev=0)"
|
46
|
+
gh release create "${tag_name}" --verify-tag --draft --generate-notes
|
47
|
+
env:
|
48
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
data/.github/workflows/test.yml
CHANGED
@@ -3,11 +3,18 @@ name: ubuntu
|
|
3
3
|
on: [push, pull_request]
|
4
4
|
|
5
5
|
jobs:
|
6
|
+
ruby-versions:
|
7
|
+
uses: ruby/actions/.github/workflows/ruby_versions.yml@master
|
8
|
+
with:
|
9
|
+
engine: cruby
|
10
|
+
min_version: 2.6
|
11
|
+
|
6
12
|
build:
|
13
|
+
needs: ruby-versions
|
7
14
|
name: build (${{ matrix.ruby }} / ${{ matrix.os }})
|
8
15
|
strategy:
|
9
16
|
matrix:
|
10
|
-
ruby:
|
17
|
+
ruby: ${{ fromJson(needs.ruby-versions.outputs.versions) }}
|
11
18
|
os: [ ubuntu-latest, macos-latest ]
|
12
19
|
runs-on: ${{ matrix.os }}
|
13
20
|
steps:
|
data/lib/net/ftp.rb
CHANGED
@@ -77,6 +77,10 @@ module Net
|
|
77
77
|
# - #rename
|
78
78
|
# - #delete
|
79
79
|
#
|
80
|
+
# == Mainframe User Support
|
81
|
+
# - #literal
|
82
|
+
# - #quote
|
83
|
+
#
|
80
84
|
class FTP < Protocol
|
81
85
|
include MonitorMixin
|
82
86
|
if defined?(OpenSSL::SSL)
|
@@ -85,7 +89,7 @@ module Net
|
|
85
89
|
end
|
86
90
|
|
87
91
|
# :stopdoc:
|
88
|
-
VERSION = "0.3.
|
92
|
+
VERSION = "0.3.7"
|
89
93
|
FTP_PORT = 21
|
90
94
|
CRLF = "\r\n"
|
91
95
|
DEFAULT_BLOCKSIZE = BufferedIO::BUFSIZE
|
@@ -245,10 +249,15 @@ module Net
|
|
245
249
|
if defined?(VerifyCallbackProc)
|
246
250
|
@ssl_context.verify_callback = VerifyCallbackProc
|
247
251
|
end
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
+
|
253
|
+
# jruby-openssl does not support session caching
|
254
|
+
unless RUBY_ENGINE == "jruby"
|
255
|
+
@ssl_context.session_cache_mode =
|
256
|
+
OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT |
|
257
|
+
OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE
|
258
|
+
@ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess }
|
259
|
+
end
|
260
|
+
|
252
261
|
@ssl_session = nil
|
253
262
|
if options[:private_data_connection].nil?
|
254
263
|
@private_data_connection = true
|
@@ -758,7 +767,7 @@ module Net
|
|
758
767
|
ensure
|
759
768
|
conn.close if conn
|
760
769
|
end
|
761
|
-
|
770
|
+
getresp # The response might be important when connected to a mainframe
|
762
771
|
end
|
763
772
|
end
|
764
773
|
rescue Errno::EPIPE
|
@@ -880,13 +889,18 @@ module Net
|
|
880
889
|
# in +remotefile+. If callback or an associated block is supplied, calls it,
|
881
890
|
# passing in the transmitted data one line at a time.
|
882
891
|
#
|
892
|
+
# Returns the response which will contain a job number if the user was communicating with a mainframe in ASCII mode
|
893
|
+
# after issuing 'quote site filetype=jes'
|
894
|
+
#
|
883
895
|
def puttextfile(localfile, remotefile = File.basename(localfile), &block) # :yield: line
|
884
896
|
f = File.open(localfile)
|
897
|
+
response = ''
|
885
898
|
begin
|
886
|
-
storlines("STOR #{remotefile}", f, &block)
|
899
|
+
response = storlines("STOR #{remotefile}", f, &block)
|
887
900
|
ensure
|
888
901
|
f.close
|
889
902
|
end
|
903
|
+
response
|
890
904
|
end
|
891
905
|
|
892
906
|
#
|
@@ -1226,6 +1240,16 @@ module Net
|
|
1226
1240
|
return parse257(resp)
|
1227
1241
|
end
|
1228
1242
|
|
1243
|
+
#
|
1244
|
+
# The "quote" subcommand sends arguments verbatim to the remote ftp server.
|
1245
|
+
# The "literal" subcommand is an alias for "quote".
|
1246
|
+
# @param arguments Array[String] to be sent verbatim to the remote ftp server
|
1247
|
+
#
|
1248
|
+
def quote(arguments)
|
1249
|
+
sendcmd(arguments)
|
1250
|
+
end
|
1251
|
+
alias literal quote
|
1252
|
+
|
1229
1253
|
#
|
1230
1254
|
# Removes a remote directory.
|
1231
1255
|
#
|
@@ -1343,7 +1367,7 @@ module Net
|
|
1343
1367
|
end
|
1344
1368
|
|
1345
1369
|
feats = []
|
1346
|
-
resp.
|
1370
|
+
resp.each_line do |line|
|
1347
1371
|
next if !line.start_with?(' ') # skip status lines
|
1348
1372
|
|
1349
1373
|
feats << line.strip
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: net-ftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shugo Maeda
|
8
|
+
autorequire:
|
8
9
|
bindir: bin
|
9
10
|
cert_chain: []
|
10
|
-
date: 2024-06-
|
11
|
+
date: 2024-06-26 00:00:00.000000000 Z
|
11
12
|
dependencies:
|
12
13
|
- !ruby/object:Gem::Dependency
|
13
14
|
name: net-protocol
|
@@ -45,6 +46,7 @@ extensions: []
|
|
45
46
|
extra_rdoc_files: []
|
46
47
|
files:
|
47
48
|
- ".github/dependabot.yml"
|
49
|
+
- ".github/workflows/push_gem.yml"
|
48
50
|
- ".github/workflows/test.yml"
|
49
51
|
- ".gitignore"
|
50
52
|
- BSDL
|
@@ -62,6 +64,7 @@ licenses:
|
|
62
64
|
metadata:
|
63
65
|
homepage_uri: https://github.com/ruby/net-ftp
|
64
66
|
source_code_uri: https://github.com/ruby/net-ftp
|
67
|
+
post_install_message:
|
65
68
|
rdoc_options: []
|
66
69
|
require_paths:
|
67
70
|
- lib
|
@@ -76,7 +79,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
76
79
|
- !ruby/object:Gem::Version
|
77
80
|
version: '0'
|
78
81
|
requirements: []
|
79
|
-
rubygems_version: 3.
|
82
|
+
rubygems_version: 3.5.9
|
83
|
+
signing_key:
|
80
84
|
specification_version: 4
|
81
85
|
summary: Support for the File Transfer Protocol.
|
82
86
|
test_files: []
|