xftp 0.1.0.pre.alpha → 0.2.0.pre.alpha
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/LICENSE.txt +21 -0
- data/README.md +3 -7
- data/lib/xftp/operations/ftp/glob.rb +5 -4
- data/lib/xftp/session/ftp.rb +34 -2
- data/lib/xftp/session/sftp.rb +51 -9
- data/lib/xftp/version.rb +1 -1
- metadata +52 -23
- data/.gitignore +0 -9
- data/.overcommit.yml +0 -42
- data/.reek +0 -3
- data/.rspec +0 -2
- data/.rubocop.yml +0 -2
- data/.ruby-version +0 -1
- data/.travis.yml +0 -3
- data/Gemfile +0 -19
- data/Rakefile +0 -1
- data/bin/console +0 -14
- data/bin/rspec +0 -16
- data/bin/setup +0 -7
- data/xftp.gemspec +0 -35
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 347ece5447998ac33bf75349479fb55391c9b7fe
|
4
|
+
data.tar.gz: 7fa737d776c1bd974c7dfdaf444ae86410b02525
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03049d13008de6b272594542c33632c5c99fe82eea58656f73c94743ea56a65f6a5b0e22cede36078731a50dd42dc8b28a3e599b39aae3a9f96f9260b9e91a19
|
7
|
+
data.tar.gz: 6abf399fe37f1715f070b0a3005a6ef9252c42fec7e1796d84fcccac6798f3f6849d8c907dd6dc2b4a13b0600089b630f9b69d4a78c6a5d6e8d79ba6a86b5c54
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2015 Vasiliy Yorkin
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
CHANGED
@@ -18,18 +18,14 @@ $ gem install xftp
|
|
18
18
|
## Usage
|
19
19
|
|
20
20
|
```ruby
|
21
|
-
XFTP.start('ftps://hostname', login: 'login', password: 'pass') do |x|
|
21
|
+
XFTP.start('ftps://hostname', credentials: { login: 'login', password: 'pass' }) do |x|
|
22
22
|
x.chdir 'remote-src-path'
|
23
23
|
x.mkdir 'new-remote-dir'
|
24
24
|
x.rmdir 'dir-to-remove'
|
25
25
|
|
26
|
-
x.glob '**/*.{xls,xlsx}' do |
|
27
|
-
# process entry
|
28
|
-
end
|
29
|
-
|
30
|
-
x.download '**/*.{xls,xlsx}', to: 'local-dst-path' do |file|
|
26
|
+
x.glob '**/*.{xls,xlsx}' do |entry|
|
31
27
|
# process file
|
32
|
-
x.move
|
28
|
+
x.move entry.remote, to: File.join('remote-archive-path', entry.remote)
|
33
29
|
end
|
34
30
|
end
|
35
31
|
```
|
@@ -1,7 +1,11 @@
|
|
1
1
|
module XFTP
|
2
2
|
module Operations
|
3
3
|
module FTP
|
4
|
+
# Provides a naive glob operation implementation, using (see FTP#nlst) method
|
4
5
|
# @api private
|
6
|
+
# @see Net::FTP#nslt
|
7
|
+
# @note It isn't tested on Windows OS and chances are that it won't work,
|
8
|
+
# that's why it is implemented as a separate "command"
|
5
9
|
class Glob
|
6
10
|
def initialize(ftp)
|
7
11
|
@ftp = ftp
|
@@ -11,12 +15,9 @@ module XFTP
|
|
11
15
|
# as matches or as arguments given to the block
|
12
16
|
# @param [String] pattern the search pattern
|
13
17
|
# @param [Proc] callback
|
14
|
-
# :reek:UnusedParameters
|
15
|
-
# rubocop:disable Lint/UnusedMethodArgument
|
16
18
|
def call(pattern, &callback)
|
17
|
-
|
19
|
+
@ftp.nlst(pattern).each { |filename| callback.call(filename) }
|
18
20
|
end
|
19
|
-
# rubocop:enable Lint/UnusedMethodArgument
|
20
21
|
end
|
21
22
|
end
|
22
23
|
end
|
data/lib/xftp/session/ftp.rb
CHANGED
@@ -29,6 +29,11 @@ module XFTP
|
|
29
29
|
options.each { |key, val| @ftp.public_send("#{key}=", val) }
|
30
30
|
end
|
31
31
|
|
32
|
+
# @return [Boolean] `true` if the argument refers to a directory on the remote host
|
33
|
+
def exists?(dirname)
|
34
|
+
entries.include? dirname
|
35
|
+
end
|
36
|
+
|
32
37
|
# Renames (moves) a file on the server
|
33
38
|
# @param [String] from the path to move from
|
34
39
|
# @param [String] to the new path to move to
|
@@ -36,15 +41,42 @@ module XFTP
|
|
36
41
|
@ftp.rename(from, to)
|
37
42
|
end
|
38
43
|
|
44
|
+
# Calls the block once for each entry in the current directory
|
45
|
+
# on the remote server and yields a filename to the block
|
46
|
+
def each_file
|
47
|
+
files.each { |filename| yield filename }
|
48
|
+
end
|
49
|
+
|
39
50
|
# @see XFTP::Operations::FTP::Glob
|
40
51
|
def glob(pattern, &callback)
|
41
52
|
Operations::Glob.new(@ftp).call(pattern, &callback)
|
42
53
|
end
|
43
54
|
|
55
|
+
# Initiates a download from remote to local, synchronously
|
56
|
+
# @param [String] from the source remote file name
|
57
|
+
# @param [String] to the target local file name
|
58
|
+
# @param [Integer] block_size the size of file chunk
|
59
|
+
# @see Net::FTP#get
|
60
|
+
def download(from, to: File.basename(from), block_size: Net::FTP::DEFAULT_BLOCKSIZE)
|
61
|
+
@ftp.get(from, to, block_size)
|
62
|
+
end
|
63
|
+
|
64
|
+
# @return [Array<String>] an array of filenames in the remote directory
|
65
|
+
def files
|
66
|
+
# FIXME: This won't work in case of file name without extension
|
67
|
+
entries '*.*'
|
68
|
+
end
|
69
|
+
|
70
|
+
# @param [String] pattern the wildcard search pattern
|
71
|
+
# @return [Array<String>] an array of entries (including directories)
|
72
|
+
# in the remote directory
|
73
|
+
def entries(pattern = nil)
|
74
|
+
@ftp.nlst pattern
|
75
|
+
end
|
76
|
+
|
44
77
|
protected
|
45
78
|
|
46
|
-
# Opens a new FTP connection and
|
47
|
-
# authenticates on the remote server
|
79
|
+
# Opens a new FTP connection and authenticates on the remote server
|
48
80
|
def open
|
49
81
|
@ftp.connect(@uri.host, @port)
|
50
82
|
@ftp.login(@credentials[:login], @credentials[:password])
|
data/lib/xftp/session/sftp.rb
CHANGED
@@ -20,13 +20,13 @@ module XFTP
|
|
20
20
|
super
|
21
21
|
@path = Pathname '.'
|
22
22
|
@settings.merge!(password: @credentials[:password])
|
23
|
-
@
|
23
|
+
@ssh_options = XFTP.config.ssh.deep_merge(@settings)
|
24
24
|
end
|
25
25
|
|
26
26
|
# Changes the current (remote) working directory
|
27
27
|
# @param [String] path the relative (remote) path
|
28
28
|
def chdir(path)
|
29
|
-
@path
|
29
|
+
@path += path
|
30
30
|
end
|
31
31
|
|
32
32
|
# Creates a remote directory
|
@@ -35,20 +35,40 @@ module XFTP
|
|
35
35
|
# @param [Hash] attrs the attributes of new directory
|
36
36
|
# supported by the the version of SFTP protocol in use
|
37
37
|
def mkdir(dirname, attrs = {})
|
38
|
-
@sftp.mkdir!
|
38
|
+
@sftp.mkdir!(remote_path(dirname), attrs)
|
39
|
+
end
|
40
|
+
|
41
|
+
# @return [Boolean] `true` if the file exists
|
42
|
+
# in a current working directory on the remote host
|
43
|
+
def exists?(filename)
|
44
|
+
entries.include? filename
|
45
|
+
end
|
46
|
+
|
47
|
+
# @return [Boolean] `true` if the argument refers to a directory on the remote host
|
48
|
+
def directory?(dirname)
|
49
|
+
@sftp.file.directory? remote_path(dirname)
|
39
50
|
end
|
40
51
|
|
41
52
|
# Removes the remote directory
|
42
53
|
# @param [String] dirname the name of directory to be removed
|
43
54
|
def rmdir(dirname)
|
44
|
-
@sftp.rmdir!
|
55
|
+
@sftp.rmdir! remote_path(dirname)
|
45
56
|
end
|
46
57
|
|
47
58
|
# Renames (moves) a file on the server
|
48
59
|
# @param [String] from the path to move from
|
49
60
|
# @param [String] to the path to move to
|
50
61
|
def move(from, to:, flags: RENAME_OPERATION_FLAGS)
|
51
|
-
@sftp.rename(from, to, flags)
|
62
|
+
@sftp.rename!(remote_path(from), remote_path(to), flags)
|
63
|
+
end
|
64
|
+
|
65
|
+
# Calls the block once for each entry in the current directory
|
66
|
+
# on the remote server and (asynchronously) yields a filename to the block
|
67
|
+
def each_file
|
68
|
+
@sftp.dir.foreach(@path.to_s) do |entry|
|
69
|
+
filename = entry.name
|
70
|
+
yield filename unless directory? filename
|
71
|
+
end
|
52
72
|
end
|
53
73
|
|
54
74
|
# For more info (see Dir#glob), it's almost of the same nature
|
@@ -57,7 +77,29 @@ module XFTP
|
|
57
77
|
# @param [Integer] (see File.fnmatch) for the meaning of the flags parameter.
|
58
78
|
# Default value is `File::FNM_EXTGLOB`
|
59
79
|
def glob(pattern, flags: GLOB_OPERATION_FLAGS)
|
60
|
-
@sftp.dir.glob(@path.to_s, pattern, flags)
|
80
|
+
@sftp.dir.glob(@path.to_s, pattern, flags) { |entry| yield entry.name }
|
81
|
+
end
|
82
|
+
|
83
|
+
# Initiates a download from remote to local, synchronously
|
84
|
+
# @param [String] from the source remote file name
|
85
|
+
# @param [String] to the target local file name
|
86
|
+
# @param [Hash] options the download operation options
|
87
|
+
# @see Net::SFTP::Operations::Download
|
88
|
+
def download(from, to: File.basename(from), **options)
|
89
|
+
remote = remote_path(from)
|
90
|
+
local = (Pathname.pwd + to).to_s
|
91
|
+
@sftp.download!(remote, local, options)
|
92
|
+
end
|
93
|
+
|
94
|
+
# @return [Array<String>] an array of filenames in the remote directory
|
95
|
+
def files
|
96
|
+
entries.reject { |filename| directory? filename }
|
97
|
+
end
|
98
|
+
|
99
|
+
# @return [Array<String>] an array of entries (including directories)
|
100
|
+
# in the remote directory
|
101
|
+
def entries
|
102
|
+
@sftp.dir.entries(@path.to_s).map(&:name)
|
61
103
|
end
|
62
104
|
|
63
105
|
protected
|
@@ -83,14 +125,14 @@ module XFTP
|
|
83
125
|
private
|
84
126
|
|
85
127
|
def connect
|
86
|
-
@ssh = Net::SSH.start(@uri.host, @credentials[:login], @
|
128
|
+
@ssh = Net::SSH.start(@uri.host, @credentials[:login], @ssh_options)
|
87
129
|
@sftp = Net::SFTP::Session.new @ssh
|
88
130
|
@sftp.connect!
|
89
131
|
end
|
90
132
|
|
91
133
|
# @return [String] a path name relative to the current working directory
|
92
|
-
def
|
93
|
-
(@path
|
134
|
+
def remote_path(relative)
|
135
|
+
(@path + relative).to_s
|
94
136
|
end
|
95
137
|
end
|
96
138
|
end
|
data/lib/xftp/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xftp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0.pre.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vasiliy Yorkin
|
8
8
|
autorequire:
|
9
|
-
bindir:
|
9
|
+
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -43,6 +43,9 @@ dependencies:
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.8'
|
48
|
+
- - ">="
|
46
49
|
- !ruby/object:Gem::Version
|
47
50
|
version: 0.8.7
|
48
51
|
type: :development
|
@@ -50,6 +53,9 @@ dependencies:
|
|
50
53
|
version_requirements: !ruby/object:Gem::Requirement
|
51
54
|
requirements:
|
52
55
|
- - "~>"
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: '0.8'
|
58
|
+
- - ">="
|
53
59
|
- !ruby/object:Gem::Version
|
54
60
|
version: 0.8.7
|
55
61
|
- !ruby/object:Gem::Dependency
|
@@ -71,6 +77,9 @@ dependencies:
|
|
71
77
|
requirement: !ruby/object:Gem::Requirement
|
72
78
|
requirements:
|
73
79
|
- - "~>"
|
80
|
+
- !ruby/object:Gem::Version
|
81
|
+
version: '3.2'
|
82
|
+
- - ">="
|
74
83
|
- !ruby/object:Gem::Version
|
75
84
|
version: 3.2.0
|
76
85
|
type: :development
|
@@ -78,6 +87,9 @@ dependencies:
|
|
78
87
|
version_requirements: !ruby/object:Gem::Requirement
|
79
88
|
requirements:
|
80
89
|
- - "~>"
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '3.2'
|
92
|
+
- - ">="
|
81
93
|
- !ruby/object:Gem::Version
|
82
94
|
version: 3.2.0
|
83
95
|
- !ruby/object:Gem::Dependency
|
@@ -85,6 +97,9 @@ dependencies:
|
|
85
97
|
requirement: !ruby/object:Gem::Requirement
|
86
98
|
requirements:
|
87
99
|
- - "~>"
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0.9'
|
102
|
+
- - ">="
|
88
103
|
- !ruby/object:Gem::Version
|
89
104
|
version: 0.9.2
|
90
105
|
type: :development
|
@@ -92,6 +107,9 @@ dependencies:
|
|
92
107
|
version_requirements: !ruby/object:Gem::Requirement
|
93
108
|
requirements:
|
94
109
|
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.9'
|
112
|
+
- - ">="
|
95
113
|
- !ruby/object:Gem::Version
|
96
114
|
version: 0.9.2
|
97
115
|
- !ruby/object:Gem::Dependency
|
@@ -99,6 +117,9 @@ dependencies:
|
|
99
117
|
requirement: !ruby/object:Gem::Requirement
|
100
118
|
requirements:
|
101
119
|
- - "~>"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '0.1'
|
122
|
+
- - ">="
|
102
123
|
- !ruby/object:Gem::Version
|
103
124
|
version: 0.1.1
|
104
125
|
type: :development
|
@@ -106,6 +127,9 @@ dependencies:
|
|
106
127
|
version_requirements: !ruby/object:Gem::Requirement
|
107
128
|
requirements:
|
108
129
|
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0.1'
|
132
|
+
- - ">="
|
109
133
|
- !ruby/object:Gem::Version
|
110
134
|
version: 0.1.1
|
111
135
|
- !ruby/object:Gem::Dependency
|
@@ -113,6 +137,9 @@ dependencies:
|
|
113
137
|
requirement: !ruby/object:Gem::Requirement
|
114
138
|
requirements:
|
115
139
|
- - "~>"
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: '0.6'
|
142
|
+
- - ">="
|
116
143
|
- !ruby/object:Gem::Version
|
117
144
|
version: 0.6.0
|
118
145
|
type: :runtime
|
@@ -120,6 +147,9 @@ dependencies:
|
|
120
147
|
version_requirements: !ruby/object:Gem::Requirement
|
121
148
|
requirements:
|
122
149
|
- - "~>"
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0.6'
|
152
|
+
- - ">="
|
123
153
|
- !ruby/object:Gem::Version
|
124
154
|
version: 0.6.0
|
125
155
|
- !ruby/object:Gem::Dependency
|
@@ -127,6 +157,9 @@ dependencies:
|
|
127
157
|
requirement: !ruby/object:Gem::Requirement
|
128
158
|
requirements:
|
129
159
|
- - "~>"
|
160
|
+
- !ruby/object:Gem::Version
|
161
|
+
version: '2.1'
|
162
|
+
- - ">="
|
130
163
|
- !ruby/object:Gem::Version
|
131
164
|
version: 2.1.2
|
132
165
|
type: :runtime
|
@@ -134,6 +167,9 @@ dependencies:
|
|
134
167
|
version_requirements: !ruby/object:Gem::Requirement
|
135
168
|
requirements:
|
136
169
|
- - "~>"
|
170
|
+
- !ruby/object:Gem::Version
|
171
|
+
version: '2.1'
|
172
|
+
- - ">="
|
137
173
|
- !ruby/object:Gem::Version
|
138
174
|
version: 2.1.2
|
139
175
|
- !ruby/object:Gem::Dependency
|
@@ -141,6 +177,9 @@ dependencies:
|
|
141
177
|
requirement: !ruby/object:Gem::Requirement
|
142
178
|
requirements:
|
143
179
|
- - "~>"
|
180
|
+
- !ruby/object:Gem::Version
|
181
|
+
version: '3.2'
|
182
|
+
- - ">="
|
144
183
|
- !ruby/object:Gem::Version
|
145
184
|
version: 3.2.21
|
146
185
|
type: :runtime
|
@@ -148,31 +187,21 @@ dependencies:
|
|
148
187
|
version_requirements: !ruby/object:Gem::Requirement
|
149
188
|
requirements:
|
150
189
|
- - "~>"
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '3.2'
|
192
|
+
- - ">="
|
151
193
|
- !ruby/object:Gem::Version
|
152
194
|
version: 3.2.21
|
153
|
-
description: Unified interface for ftp/sftp
|
195
|
+
description: Unified interface for ftp/sftp protocols, specific protocol is selected
|
196
|
+
by uri scheme
|
154
197
|
email:
|
155
198
|
- vasiliy.yorkin@gmail.com
|
156
|
-
executables:
|
157
|
-
- console
|
158
|
-
- rspec
|
159
|
-
- setup
|
199
|
+
executables: []
|
160
200
|
extensions: []
|
161
201
|
extra_rdoc_files: []
|
162
202
|
files:
|
163
|
-
-
|
164
|
-
- ".overcommit.yml"
|
165
|
-
- ".reek"
|
166
|
-
- ".rspec"
|
167
|
-
- ".rubocop.yml"
|
168
|
-
- ".ruby-version"
|
169
|
-
- ".travis.yml"
|
170
|
-
- Gemfile
|
203
|
+
- LICENSE.txt
|
171
204
|
- README.md
|
172
|
-
- Rakefile
|
173
|
-
- bin/console
|
174
|
-
- bin/rspec
|
175
|
-
- bin/setup
|
176
205
|
- lib/configuration.rb
|
177
206
|
- lib/initializers/i18n.rb
|
178
207
|
- lib/xftp.rb
|
@@ -186,9 +215,9 @@ files:
|
|
186
215
|
- lib/xftp/session/sftp.rb
|
187
216
|
- lib/xftp/validator/settings.rb
|
188
217
|
- lib/xftp/version.rb
|
189
|
-
- xftp.gemspec
|
190
218
|
homepage: https://github.com/vyorkin/xftp
|
191
|
-
licenses:
|
219
|
+
licenses:
|
220
|
+
- MIT
|
192
221
|
metadata: {}
|
193
222
|
post_install_message:
|
194
223
|
rdoc_options: []
|
@@ -209,6 +238,6 @@ rubyforge_project:
|
|
209
238
|
rubygems_version: 2.2.2
|
210
239
|
signing_key:
|
211
240
|
specification_version: 4
|
212
|
-
summary:
|
241
|
+
summary: xftp-0.2.0-alpha
|
213
242
|
test_files: []
|
214
243
|
has_rdoc:
|
data/.gitignore
DELETED
data/.overcommit.yml
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
# Use this file to configure the Overcommit hooks you wish to use. This will
|
2
|
-
# extend the default configuration defined in:
|
3
|
-
# https://github.com/brigade/overcommit/blob/master/config/default.yml
|
4
|
-
#
|
5
|
-
# At the topmost level of this YAML file is a key representing type of hook
|
6
|
-
# being run (e.g. pre-commit, commit-msg, etc.). Within each type you can
|
7
|
-
# customize each hook, such as whether to only run it on certain files (via
|
8
|
-
# `include`), whether to only display output if it fails (via `quiet`), etc.
|
9
|
-
#
|
10
|
-
# For a complete list of hooks, see:
|
11
|
-
# https://github.com/brigade/overcommit/tree/master/lib/overcommit/hook
|
12
|
-
#
|
13
|
-
# For a complete list of options that you can use to customize hooks, see:
|
14
|
-
# https://github.com/brigade/overcommit#configuration
|
15
|
-
#
|
16
|
-
# Uncomment the following lines to make the configuration take effect.
|
17
|
-
|
18
|
-
CommitMsg:
|
19
|
-
HardTabs:
|
20
|
-
enabled: true
|
21
|
-
|
22
|
-
PreCommit:
|
23
|
-
Rubocop:
|
24
|
-
enabled: true
|
25
|
-
on_warn: fail
|
26
|
-
HardTabs:
|
27
|
-
enabled: true
|
28
|
-
Reek:
|
29
|
-
enabled: true
|
30
|
-
LocalPathsInGemfile:
|
31
|
-
enabled: true
|
32
|
-
TrailingWhitespace:
|
33
|
-
enabled: true
|
34
|
-
BundleCheck:
|
35
|
-
enabled: true
|
36
|
-
|
37
|
-
PostCheckout:
|
38
|
-
SubmoduleStatus:
|
39
|
-
enabled: true
|
40
|
-
GitGuilt:
|
41
|
-
enabled: true
|
42
|
-
|
data/.reek
DELETED
data/.rspec
DELETED
data/.rubocop.yml
DELETED
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.1.5
|
data/.travis.yml
DELETED
data/Gemfile
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
source 'https://rubygems.org'
|
2
|
-
|
3
|
-
gemspec
|
4
|
-
|
5
|
-
group :development, :test do
|
6
|
-
gem 'pry-byebug'
|
7
|
-
end
|
8
|
-
|
9
|
-
group :development do
|
10
|
-
gem 'reek', require: false
|
11
|
-
gem 'brakeman', require: false
|
12
|
-
gem 'rubocop', require: false
|
13
|
-
gem 'overcommit'
|
14
|
-
end
|
15
|
-
|
16
|
-
group :test do
|
17
|
-
gem 'mutant'
|
18
|
-
gem 'mutant-rspec'
|
19
|
-
end
|
data/Rakefile
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
require 'bundler/gem_tasks'
|
data/bin/console
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
|
3
|
-
require "bundler/setup"
|
4
|
-
require "xftp"
|
5
|
-
|
6
|
-
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
-
# with your gem easier. You can also use a different console, if you like.
|
8
|
-
|
9
|
-
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
-
# require "pry"
|
11
|
-
# Pry.start
|
12
|
-
|
13
|
-
require "irb"
|
14
|
-
IRB.start
|
data/bin/rspec
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
#
|
3
|
-
# This file was generated by Bundler.
|
4
|
-
#
|
5
|
-
# The application 'rspec' is installed as part of a gem, and
|
6
|
-
# this file is here to facilitate running it.
|
7
|
-
#
|
8
|
-
|
9
|
-
require 'pathname'
|
10
|
-
ENV['BUNDLE_GEMFILE'] ||= File.expand_path("../../Gemfile",
|
11
|
-
Pathname.new(__FILE__).realpath)
|
12
|
-
|
13
|
-
require 'rubygems'
|
14
|
-
require 'bundler/setup'
|
15
|
-
|
16
|
-
load Gem.bin_path('rspec-core', 'rspec')
|
data/bin/setup
DELETED
data/xftp.gemspec
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
lib = File.expand_path('../lib', __FILE__)
|
3
|
-
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require 'xftp/version'
|
5
|
-
|
6
|
-
TEST_FILES = %r{^(test|spec|features)/}
|
7
|
-
|
8
|
-
Gem::Specification.new do |spec|
|
9
|
-
spec.name = 'xftp'
|
10
|
-
spec.version = XFTP::VERSION::STRING
|
11
|
-
spec.authors = ['Vasiliy Yorkin']
|
12
|
-
spec.email = ['vasiliy.yorkin@gmail.com']
|
13
|
-
|
14
|
-
spec.summary = 'Unified interface for ftp/sftp'
|
15
|
-
spec.description = spec.summary
|
16
|
-
spec.homepage = 'https://github.com/vyorkin/xftp'
|
17
|
-
|
18
|
-
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match TEST_FILES }
|
19
|
-
spec.bindir = 'bin'
|
20
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
21
|
-
spec.test_files = spec.files.grep(TEST_FILES)
|
22
|
-
spec.require_paths = ['lib']
|
23
|
-
|
24
|
-
spec.add_development_dependency 'bundler', '~> 1.8'
|
25
|
-
spec.add_development_dependency 'rake', '~> 10.0'
|
26
|
-
spec.add_development_dependency 'yard', '~> 0.8.7'
|
27
|
-
spec.add_development_dependency 'yard-rspec', '~> 0.1'
|
28
|
-
spec.add_development_dependency 'rspec', '~> 3.2.0'
|
29
|
-
spec.add_development_dependency 'simplecov', '~> 0.9.2'
|
30
|
-
spec.add_development_dependency 'fake_ftp', '~> 0.1.1'
|
31
|
-
|
32
|
-
spec.add_runtime_dependency 'i18n', '~> 0.6.0'
|
33
|
-
spec.add_runtime_dependency 'net-sftp', '~> 2.1.2'
|
34
|
-
spec.add_runtime_dependency 'activesupport', '~> 3.2.21'
|
35
|
-
end
|