ftpd 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/Changelog.md +6 -0
  3. data/Gemfile +2 -15
  4. data/Gemfile.lock +12 -51
  5. data/README.md +12 -0
  6. data/VERSION +1 -1
  7. data/bin/ftpdrb +17 -12
  8. data/examples/write_only.rb +61 -0
  9. data/ftpd.gemspec +59 -261
  10. data/lib/ftpd/session.rb +51 -51
  11. metadata +11 -153
  12. data/.travis.yml +0 -6
  13. data/features/example/eplf.feature +0 -14
  14. data/features/example/example.feature +0 -18
  15. data/features/example/read_only.feature +0 -63
  16. data/features/example/step_definitions/example_server.rb +0 -13
  17. data/features/ftp_server/abort.feature +0 -13
  18. data/features/ftp_server/allo.feature +0 -33
  19. data/features/ftp_server/append.feature +0 -94
  20. data/features/ftp_server/cdup.feature +0 -36
  21. data/features/ftp_server/command_errors.feature +0 -13
  22. data/features/ftp_server/concurrent_sessions.feature +0 -14
  23. data/features/ftp_server/delay_after_failed_login.feature +0 -23
  24. data/features/ftp_server/delete.feature +0 -60
  25. data/features/ftp_server/directory_navigation.feature +0 -59
  26. data/features/ftp_server/disconnect_after_failed_logins.feature +0 -25
  27. data/features/ftp_server/eprt.feature +0 -56
  28. data/features/ftp_server/epsv.feature +0 -37
  29. data/features/ftp_server/features.feature +0 -38
  30. data/features/ftp_server/file_structure.feature +0 -43
  31. data/features/ftp_server/get.feature +0 -80
  32. data/features/ftp_server/get_ipv6.feature +0 -46
  33. data/features/ftp_server/get_tls.feature +0 -23
  34. data/features/ftp_server/help.feature +0 -21
  35. data/features/ftp_server/implicit_tls.feature +0 -23
  36. data/features/ftp_server/invertability.feature +0 -15
  37. data/features/ftp_server/list.feature +0 -94
  38. data/features/ftp_server/list_tls.feature +0 -29
  39. data/features/ftp_server/logging.feature +0 -11
  40. data/features/ftp_server/login_auth_level_account.feature +0 -51
  41. data/features/ftp_server/login_auth_level_password.feature +0 -59
  42. data/features/ftp_server/login_auth_level_user.feature +0 -31
  43. data/features/ftp_server/max_connections.feature +0 -39
  44. data/features/ftp_server/mdtm.feature +0 -53
  45. data/features/ftp_server/mkdir.feature +0 -70
  46. data/features/ftp_server/mode.feature +0 -43
  47. data/features/ftp_server/name_list.feature +0 -77
  48. data/features/ftp_server/name_list_tls.feature +0 -30
  49. data/features/ftp_server/noop.feature +0 -17
  50. data/features/ftp_server/options.feature +0 -17
  51. data/features/ftp_server/pasv.feature +0 -30
  52. data/features/ftp_server/port.feature +0 -49
  53. data/features/ftp_server/put.feature +0 -79
  54. data/features/ftp_server/put_tls.feature +0 -23
  55. data/features/ftp_server/put_unique.feature +0 -56
  56. data/features/ftp_server/quit.feature +0 -23
  57. data/features/ftp_server/reinitialize.feature +0 -13
  58. data/features/ftp_server/rename.feature +0 -97
  59. data/features/ftp_server/rmdir.feature +0 -71
  60. data/features/ftp_server/site.feature +0 -13
  61. data/features/ftp_server/size.feature +0 -69
  62. data/features/ftp_server/status.feature +0 -18
  63. data/features/ftp_server/step_definitions/logging.rb +0 -10
  64. data/features/ftp_server/step_definitions/test_server.rb +0 -71
  65. data/features/ftp_server/structure_mount.feature +0 -13
  66. data/features/ftp_server/syntax_errors.feature +0 -18
  67. data/features/ftp_server/syst.feature +0 -18
  68. data/features/ftp_server/timeout.feature +0 -26
  69. data/features/ftp_server/type.feature +0 -59
  70. data/features/step_definitions/append.rb +0 -17
  71. data/features/step_definitions/client.rb +0 -27
  72. data/features/step_definitions/client_and_server_files.rb +0 -26
  73. data/features/step_definitions/client_files.rb +0 -16
  74. data/features/step_definitions/command.rb +0 -7
  75. data/features/step_definitions/connect.rb +0 -39
  76. data/features/step_definitions/delete.rb +0 -17
  77. data/features/step_definitions/directory_navigation.rb +0 -28
  78. data/features/step_definitions/error_replies.rb +0 -117
  79. data/features/step_definitions/features.rb +0 -23
  80. data/features/step_definitions/file_structure.rb +0 -18
  81. data/features/step_definitions/generic_send.rb +0 -11
  82. data/features/step_definitions/get.rb +0 -18
  83. data/features/step_definitions/help.rb +0 -20
  84. data/features/step_definitions/invalid_commands.rb +0 -13
  85. data/features/step_definitions/ipv6.rb +0 -11
  86. data/features/step_definitions/line_endings.rb +0 -9
  87. data/features/step_definitions/list.rb +0 -75
  88. data/features/step_definitions/login.rb +0 -84
  89. data/features/step_definitions/mkdir.rb +0 -11
  90. data/features/step_definitions/mode.rb +0 -17
  91. data/features/step_definitions/mtime.rb +0 -25
  92. data/features/step_definitions/noop.rb +0 -17
  93. data/features/step_definitions/options.rb +0 -11
  94. data/features/step_definitions/passive.rb +0 -10
  95. data/features/step_definitions/pending.rb +0 -5
  96. data/features/step_definitions/port.rb +0 -7
  97. data/features/step_definitions/put.rb +0 -31
  98. data/features/step_definitions/quit.rb +0 -17
  99. data/features/step_definitions/rename.rb +0 -13
  100. data/features/step_definitions/rmdir.rb +0 -11
  101. data/features/step_definitions/server_files.rb +0 -63
  102. data/features/step_definitions/server_title.rb +0 -14
  103. data/features/step_definitions/size.rb +0 -22
  104. data/features/step_definitions/status.rb +0 -11
  105. data/features/step_definitions/success_replies.rb +0 -9
  106. data/features/step_definitions/system.rb +0 -12
  107. data/features/step_definitions/timing.rb +0 -21
  108. data/features/step_definitions/type.rb +0 -17
  109. data/features/support/env.rb +0 -6
  110. data/features/support/example_server.rb +0 -69
  111. data/features/support/file_templates/ascii_unix +0 -4
  112. data/features/support/file_templates/ascii_windows +0 -4
  113. data/features/support/file_templates/binary +0 -0
  114. data/features/support/test_client.rb +0 -258
  115. data/features/support/test_file_templates.rb +0 -35
  116. data/features/support/test_server.rb +0 -304
  117. data/features/support/test_server_files.rb +0 -59
  118. data/rake_tasks/cucumber.rake +0 -9
  119. data/rake_tasks/default.rake +0 -1
  120. data/rake_tasks/jeweler.rake +0 -52
  121. data/rake_tasks/spec.rake +0 -3
  122. data/rake_tasks/test.rake +0 -2
  123. data/rake_tasks/yard.rake +0 -3
  124. data/spec/command_sequence_checker_spec.rb +0 -85
  125. data/spec/connection_throttle_spec.rb +0 -101
  126. data/spec/connection_tracker_spec.rb +0 -99
  127. data/spec/data_server_factory_spec.rb +0 -104
  128. data/spec/disk_file_system_spec.rb +0 -322
  129. data/spec/exception_translator_spec.rb +0 -38
  130. data/spec/file_info_spec.rb +0 -61
  131. data/spec/ftp_server_error_spec.rb +0 -15
  132. data/spec/list_format/eplf_spec.rb +0 -63
  133. data/spec/list_format/ls_spec.rb +0 -272
  134. data/spec/list_path_spec.rb +0 -23
  135. data/spec/null_logger_spec.rb +0 -26
  136. data/spec/protocols_spec.rb +0 -159
  137. data/spec/server_spec.rb +0 -83
  138. data/spec/spec_helper.rb +0 -17
  139. data/spec/telnet_spec.rb +0 -77
  140. data/spec/translate_exceptions_spec.rb +0 -42
  141. data/testlib/network.rb +0 -17
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 637e5bfc2505f89b270ab1a8f89df0dfdb02e84c
4
- data.tar.gz: c5209641735180ea65417e1c7ed9afeea370c946
3
+ metadata.gz: f82f381f779637c418fa3679b24e3866760f0a0d
4
+ data.tar.gz: 1613147a6f9de82757fc35544a5a4ecca2730ce9
5
5
  SHA512:
6
- metadata.gz: 16be5eac5cfe71218a0bd02bb32585ca86f4d241cb6c5ba80b531d8b388a04375f069d1a2f8af323b6a7e452678ddc9239091037b52dae7284f696f04f288e65
7
- data.tar.gz: 5dfcee331e594fd2d5a8f7b956d81b71a9b2693ecbf5ffb9603cbd0f83aa1e4df945216eb7f403b37067b2851f7efdedc81bf81b17a495493f84f4213f49e487
6
+ metadata.gz: 48dbea3f686112a1a368318433341d887b82c67f2575f6c4cc3190c83d9697ff07a8cd2549acf8cdb83bab5b70c2ff9a29a6414fc2e11bea53025fcc7ef6c280
7
+ data.tar.gz: 48b848cb8c93c9c2bd0625fdee1fbb6299a3deca01858782870fc914c3e291de30d5d3cf2d7c1adc56f5c02c9cca8c1da9f1f32d22f8ac731ebf5c2b67b7b9ba
@@ -2,6 +2,12 @@ This is the change log for the main branch of ftpd, which supports
2
2
  Ruby 1.9 and greater. For ruby 1.8.7, please use the latest version
3
3
  before 0.8.0.
4
4
 
5
+ ### 2.0.2 2017-07-17
6
+
7
+ * Fix high CPU use by bin/ftpdrb (#47)
8
+ * ftpdrb now runs from installed gem
9
+ * Fix tests hanging in ruby 2.1.7 through 2.1.10
10
+
5
11
  ### 2.0.1 2016-11-02
6
12
 
7
13
  * Redact password in log (thanks ukolovda)
data/Gemfile CHANGED
@@ -1,15 +1,2 @@
1
- source 'http://rubygems.org'
2
-
3
- gem 'memoizer', '~> 1.0'
4
-
5
- group :development do
6
- gem 'cucumber', '~> 2.0'
7
- gem 'double-bag-ftps', '~> 0.1', '>= 0.1.3'
8
- gem 'jeweler', '~> 2.0'
9
- gem 'rake', '~> 11.1'
10
- gem 'redcarpet', '~> 3.1'
11
- gem 'rspec', '~> 3.1'
12
- gem 'rspec-its', '~> 1.0'
13
- gem 'timecop', '~> 0.7'
14
- gem 'yard', '~> 0.8.7'
15
- end
1
+ source "https://rubygems.org"
2
+ gemspec
@@ -1,7 +1,12 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ ftpd (2.0.2)
5
+ memoizer (~> 1.0)
6
+
1
7
  GEM
2
- remote: http://rubygems.org/
8
+ remote: https://rubygems.org/
3
9
  specs:
4
- addressable (2.4.0)
5
10
  builder (3.2.2)
6
11
  cucumber (2.4.0)
7
12
  builder (>= 2.1.2)
@@ -14,54 +19,13 @@ GEM
14
19
  cucumber-core (1.5.0)
15
20
  gherkin (~> 4.0)
16
21
  cucumber-wire (0.0.1)
17
- descendants_tracker (0.0.4)
18
- thread_safe (~> 0.3, >= 0.3.1)
19
22
  diff-lcs (1.2.5)
20
- double-bag-ftps (0.1.3)
21
- faraday (0.9.2)
22
- multipart-post (>= 1.2, < 3)
23
+ double-bag-ftps (0.1.4)
23
24
  gherkin (4.0.0)
24
- git (1.3.0)
25
- github_api (0.11.3)
26
- addressable (~> 2.3)
27
- descendants_tracker (~> 0.0.1)
28
- faraday (~> 0.8, < 0.10)
29
- hashie (>= 1.2)
30
- multi_json (>= 1.7.5, < 2.0)
31
- nokogiri (~> 1.6.0)
32
- oauth2
33
- hashie (3.4.6)
34
- highline (1.7.8)
35
- jeweler (2.1.2)
36
- builder
37
- bundler (>= 1.0)
38
- git (>= 1.2.5)
39
- github_api (~> 0.11.0)
40
- highline (>= 1.6.15)
41
- nokogiri (>= 1.5.10)
42
- rake
43
- rdoc
44
- semver
45
- json (1.8.3)
46
- jwt (1.5.6)
47
- memoizer (1.0.1)
48
- mini_portile2 (2.1.0)
25
+ memoizer (1.0.3)
49
26
  multi_json (1.12.1)
50
27
  multi_test (0.1.2)
51
- multi_xml (0.5.5)
52
- multipart-post (2.0.0)
53
- nokogiri (1.6.8.1)
54
- mini_portile2 (~> 2.1.0)
55
- oauth2 (1.2.0)
56
- faraday (>= 0.8, < 0.10)
57
- jwt (~> 1.0)
58
- multi_json (~> 1.3)
59
- multi_xml (~> 0.5)
60
- rack (>= 1.2, < 3)
61
- rack (2.0.1)
62
28
  rake (11.3.0)
63
- rdoc (4.2.2)
64
- json (~> 1.4)
65
29
  redcarpet (3.3.4)
66
30
  rspec (3.4.0)
67
31
  rspec-core (~> 3.4.0)
@@ -79,8 +43,6 @@ GEM
79
43
  diff-lcs (>= 1.2.0, < 2.0)
80
44
  rspec-support (~> 3.4.0)
81
45
  rspec-support (3.4.1)
82
- semver (1.0.1)
83
- thread_safe (0.3.5)
84
46
  timecop (0.8.1)
85
47
  yard (0.8.7.6)
86
48
 
@@ -89,9 +51,8 @@ PLATFORMS
89
51
 
90
52
  DEPENDENCIES
91
53
  cucumber (~> 2.0)
92
- double-bag-ftps (~> 0.1, >= 0.1.3)
93
- jeweler (~> 2.0)
94
- memoizer (~> 1.0)
54
+ double-bag-ftps (~> 0.1, >= 0.1.4)
55
+ ftpd!
95
56
  rake (~> 11.1)
96
57
  redcarpet (~> 3.1)
97
58
  rspec (~> 3.1)
@@ -100,4 +61,4 @@ DEPENDENCIES
100
61
  yard (~> 0.8.7)
101
62
 
102
63
  BUNDLED WITH
103
- 1.13.1
64
+ 1.15.2
data/README.md CHANGED
@@ -293,6 +293,18 @@ major version.
293
293
 
294
294
  ## Development
295
295
 
296
+ ### Bundler tricks for older Rubies
297
+
298
+ The development gems only work in Ruby 2.3 or later. When developing
299
+ ftpd for older Rubies, exclude the development gems:
300
+
301
+ bundle install --without development
302
+
303
+ With the current version of bundler (1.13.1), this has the unfortunate
304
+ effect of remembering--forever--that you do not want development gems.
305
+ So before you install gems for Ruby 2.3 or later, remove
306
+ .bundle/config from the project's directory.
307
+
296
308
  ### Tests
297
309
 
298
310
  To run the cucumber (functional) tests:
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.0.1
1
+ 2.0.2
data/bin/ftpdrb CHANGED
@@ -2,8 +2,12 @@
2
2
  #
3
3
  # Ftpd is a pure Ruby FTP server library. CLI version
4
4
  #
5
- unless $:.include?(File.dirname(__FILE__) + '/../lib')
6
- $:.unshift(File.dirname(__FILE__) + '/../lib')
5
+
6
+ dev_lib_path = File.dirname(__FILE__) + '/../lib'
7
+ if File.directory?(dev_lib_path)
8
+ unless $:.include?(dev_lib_path)
9
+ $:.unshift(dev_lib_path)
10
+ end
7
11
  end
8
12
 
9
13
  require 'ftpd'
@@ -199,23 +203,25 @@ module FTPDrb
199
203
  @data_dir, @args.read_only)
200
204
  @server = Ftpd::FtpServer.new(@driver)
201
205
  configure_server
202
- @server.start
203
206
  end
204
207
 
205
208
  def run
206
- puts "FTP server started. (Press CRL+C to stop it)"
207
- connection_info.each do |key, value|
208
- puts "#{key}: #{value}"
209
- end
209
+ @server.start
210
+ wait_until_stopped
211
+ end
212
+
213
+ def wait_until_stopped
214
+ puts "FTP server started. Press ENTER or c-C to stop it"
210
215
  $stdout.flush
211
216
  begin
212
- loop{}
217
+ gets
213
218
  rescue Interrupt
214
- puts "\nClosing FTP server..."
219
+ puts "Interrupt"
215
220
  end
216
221
  end
217
-
222
+
218
223
  private
224
+
219
225
  def configure_server
220
226
  @server.server_name = @args.servername
221
227
  @server.interface = @args.interface
@@ -285,5 +291,4 @@ module FTPDrb
285
291
  end
286
292
  end
287
293
 
288
- FTPDrb::Server.new(ARGV).run if $0 == __FILE__
289
-
294
+ FTPDrb::Server.new(ARGV).run
@@ -0,0 +1,61 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ # This example shows how to create a "write-only" file system for FTPD.
4
+
5
+ unless $:.include?(File.dirname(__FILE__) + "/../lib")
6
+ $:.unshift(File.dirname(__FILE__) + "/../lib")
7
+ end
8
+
9
+ require "ftpd"
10
+ require "tmpdir"
11
+
12
+ class FileSystem
13
+
14
+ def initialize(user)
15
+ @user = user
16
+ end
17
+
18
+ def accessible?(ftp_path)
19
+ true
20
+ end
21
+
22
+ def exists?(ftp_path)
23
+ true
24
+ end
25
+
26
+ def directory?(ftp_path)
27
+ false
28
+ end
29
+
30
+ def write(ftp_path, stream)
31
+ puts "Received upload"
32
+ puts "User: #{@user}"
33
+ puts "ftp_path: #{@ftp_path}"
34
+ puts "byte count: #{stream.read.size}"
35
+ end
36
+
37
+ end
38
+
39
+ class Driver
40
+
41
+ def initialize(temp_dir)
42
+ @temp_dir = temp_dir
43
+ end
44
+
45
+ def authenticate(user, password)
46
+ true
47
+ end
48
+
49
+ def file_system(user)
50
+ FileSystem.new(user)
51
+ end
52
+
53
+ end
54
+
55
+ Dir.mktmpdir do |temp_dir|
56
+ driver = Driver.new(temp_dir)
57
+ server = Ftpd::FtpServer.new(driver)
58
+ server.start
59
+ puts "Server listening on port #{server.bound_port}"
60
+ gets
61
+ end
@@ -1,26 +1,62 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
1
  # -*- encoding: utf-8 -*-
5
- # stub: ftpd 2.0.1 ruby lib
2
+
3
+ class Readme
4
+
5
+ def description
6
+ readme = File.open(README_PATH, "r", &:read)
7
+ description = readme[/^# FTPD.*\n+((?:.*\n)+?)\n*##/i, 1]
8
+ unless description
9
+ raise "Unable to extract description from readme"
10
+ end
11
+ description = remove_badges(description)
12
+ description = remove_markdown_link(description)
13
+ description = join_lines(description)
14
+ description
15
+ end
16
+
17
+ private
18
+
19
+ README_PATH = File.expand_path("README.md", File.dirname(__FILE__))
20
+ private_constant :README_PATH
21
+
22
+ def remove_markdown_link(description)
23
+ regex = %r{
24
+ \[
25
+ ([^\]]+)
26
+ \]
27
+ (
28
+ \[\d+\] |
29
+ \([^)]+\)
30
+ )
31
+ }x
32
+ description = description.gsub(regex, "\1")
33
+ end
34
+
35
+ def remove_badges(description)
36
+ description.gsub(/^\[!.*\n/, "")
37
+ end
38
+
39
+ def join_lines(description)
40
+ description.gsub(/\n/, " ").strip
41
+ end
42
+
43
+ end
6
44
 
7
45
  Gem::Specification.new do |s|
8
46
  s.name = "ftpd"
9
- s.version = "2.0.1"
10
-
11
- s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
47
+ s.version = "2.0.2"
48
+ s.required_rubygems_version = Gem::Requirement.new(">= 0")
12
49
  s.require_paths = ["lib"]
13
50
  s.authors = ["Wayne Conrad"]
14
51
  s.date = "2016-11-02"
15
- s.description = "ftpd is a pure Ruby FTP server library. It supports implicit and explicit TLS, IPV6, passive and active mode, and is unconditionally compliant per RFC-1123. It can be used as part of a test fixture or embedded in a program."
16
- s.email = "wconrad@yagni.com"
52
+ s.description = Readme.new.description
53
+ s.email = "kf7qga@gmail.com"
17
54
  s.executables = ["ftpdrb"]
18
55
  s.extra_rdoc_files = [
19
56
  "LICENSE.md",
20
57
  "README.md"
21
58
  ]
22
59
  s.files = [
23
- ".travis.yml",
24
60
  ".yardopts",
25
61
  "Changelog.md",
26
62
  "Gemfile",
@@ -30,262 +66,24 @@ Gem::Specification.new do |s|
30
66
  "Rakefile",
31
67
  "VERSION",
32
68
  "bin/ftpdrb",
33
- "doc/benchmarks.md",
34
- "doc/references.md",
35
- "doc/rfc-compliance.md",
36
- "examples/example.rb",
37
- "examples/example_spec.rb",
38
- "examples/hello_world.rb",
39
- "features/example/eplf.feature",
40
- "features/example/example.feature",
41
- "features/example/read_only.feature",
42
- "features/example/step_definitions/example_server.rb",
43
- "features/ftp_server/abort.feature",
44
- "features/ftp_server/allo.feature",
45
- "features/ftp_server/append.feature",
46
- "features/ftp_server/cdup.feature",
47
- "features/ftp_server/command_errors.feature",
48
- "features/ftp_server/concurrent_sessions.feature",
49
- "features/ftp_server/delay_after_failed_login.feature",
50
- "features/ftp_server/delete.feature",
51
- "features/ftp_server/directory_navigation.feature",
52
- "features/ftp_server/disconnect_after_failed_logins.feature",
53
- "features/ftp_server/eprt.feature",
54
- "features/ftp_server/epsv.feature",
55
- "features/ftp_server/features.feature",
56
- "features/ftp_server/file_structure.feature",
57
- "features/ftp_server/get.feature",
58
- "features/ftp_server/get_ipv6.feature",
59
- "features/ftp_server/get_tls.feature",
60
- "features/ftp_server/help.feature",
61
- "features/ftp_server/implicit_tls.feature",
62
- "features/ftp_server/invertability.feature",
63
- "features/ftp_server/list.feature",
64
- "features/ftp_server/list_tls.feature",
65
- "features/ftp_server/logging.feature",
66
- "features/ftp_server/login_auth_level_account.feature",
67
- "features/ftp_server/login_auth_level_password.feature",
68
- "features/ftp_server/login_auth_level_user.feature",
69
- "features/ftp_server/max_connections.feature",
70
- "features/ftp_server/mdtm.feature",
71
- "features/ftp_server/mkdir.feature",
72
- "features/ftp_server/mode.feature",
73
- "features/ftp_server/name_list.feature",
74
- "features/ftp_server/name_list_tls.feature",
75
- "features/ftp_server/noop.feature",
76
- "features/ftp_server/options.feature",
77
- "features/ftp_server/pasv.feature",
78
- "features/ftp_server/port.feature",
79
- "features/ftp_server/put.feature",
80
- "features/ftp_server/put_tls.feature",
81
- "features/ftp_server/put_unique.feature",
82
- "features/ftp_server/quit.feature",
83
- "features/ftp_server/reinitialize.feature",
84
- "features/ftp_server/rename.feature",
85
- "features/ftp_server/rmdir.feature",
86
- "features/ftp_server/site.feature",
87
- "features/ftp_server/size.feature",
88
- "features/ftp_server/status.feature",
89
- "features/ftp_server/step_definitions/logging.rb",
90
- "features/ftp_server/step_definitions/test_server.rb",
91
- "features/ftp_server/structure_mount.feature",
92
- "features/ftp_server/syntax_errors.feature",
93
- "features/ftp_server/syst.feature",
94
- "features/ftp_server/timeout.feature",
95
- "features/ftp_server/type.feature",
96
- "features/step_definitions/append.rb",
97
- "features/step_definitions/client.rb",
98
- "features/step_definitions/client_and_server_files.rb",
99
- "features/step_definitions/client_files.rb",
100
- "features/step_definitions/command.rb",
101
- "features/step_definitions/connect.rb",
102
- "features/step_definitions/delete.rb",
103
- "features/step_definitions/directory_navigation.rb",
104
- "features/step_definitions/error_replies.rb",
105
- "features/step_definitions/features.rb",
106
- "features/step_definitions/file_structure.rb",
107
- "features/step_definitions/generic_send.rb",
108
- "features/step_definitions/get.rb",
109
- "features/step_definitions/help.rb",
110
- "features/step_definitions/invalid_commands.rb",
111
- "features/step_definitions/ipv6.rb",
112
- "features/step_definitions/line_endings.rb",
113
- "features/step_definitions/list.rb",
114
- "features/step_definitions/login.rb",
115
- "features/step_definitions/mkdir.rb",
116
- "features/step_definitions/mode.rb",
117
- "features/step_definitions/mtime.rb",
118
- "features/step_definitions/noop.rb",
119
- "features/step_definitions/options.rb",
120
- "features/step_definitions/passive.rb",
121
- "features/step_definitions/pending.rb",
122
- "features/step_definitions/port.rb",
123
- "features/step_definitions/put.rb",
124
- "features/step_definitions/quit.rb",
125
- "features/step_definitions/rename.rb",
126
- "features/step_definitions/rmdir.rb",
127
- "features/step_definitions/server_files.rb",
128
- "features/step_definitions/server_title.rb",
129
- "features/step_definitions/size.rb",
130
- "features/step_definitions/status.rb",
131
- "features/step_definitions/success_replies.rb",
132
- "features/step_definitions/system.rb",
133
- "features/step_definitions/timing.rb",
134
- "features/step_definitions/type.rb",
135
- "features/support/env.rb",
136
- "features/support/example_server.rb",
137
- "features/support/file_templates/ascii_unix",
138
- "features/support/file_templates/ascii_windows",
139
- "features/support/file_templates/binary",
140
- "features/support/test_client.rb",
141
- "features/support/test_file_templates.rb",
142
- "features/support/test_server.rb",
143
- "features/support/test_server_files.rb",
144
69
  "ftpd.gemspec",
145
70
  "insecure-test-cert.pem",
146
- "lib/ftpd.rb",
147
- "lib/ftpd/auth_levels.rb",
148
- "lib/ftpd/cmd_abor.rb",
149
- "lib/ftpd/cmd_allo.rb",
150
- "lib/ftpd/cmd_appe.rb",
151
- "lib/ftpd/cmd_auth.rb",
152
- "lib/ftpd/cmd_cdup.rb",
153
- "lib/ftpd/cmd_cwd.rb",
154
- "lib/ftpd/cmd_dele.rb",
155
- "lib/ftpd/cmd_eprt.rb",
156
- "lib/ftpd/cmd_epsv.rb",
157
- "lib/ftpd/cmd_feat.rb",
158
- "lib/ftpd/cmd_help.rb",
159
- "lib/ftpd/cmd_list.rb",
160
- "lib/ftpd/cmd_login.rb",
161
- "lib/ftpd/cmd_mdtm.rb",
162
- "lib/ftpd/cmd_mkd.rb",
163
- "lib/ftpd/cmd_mode.rb",
164
- "lib/ftpd/cmd_nlst.rb",
165
- "lib/ftpd/cmd_noop.rb",
166
- "lib/ftpd/cmd_opts.rb",
167
- "lib/ftpd/cmd_pasv.rb",
168
- "lib/ftpd/cmd_pbsz.rb",
169
- "lib/ftpd/cmd_port.rb",
170
- "lib/ftpd/cmd_prot.rb",
171
- "lib/ftpd/cmd_pwd.rb",
172
- "lib/ftpd/cmd_quit.rb",
173
- "lib/ftpd/cmd_rein.rb",
174
- "lib/ftpd/cmd_rename.rb",
175
- "lib/ftpd/cmd_rest.rb",
176
- "lib/ftpd/cmd_retr.rb",
177
- "lib/ftpd/cmd_rmd.rb",
178
- "lib/ftpd/cmd_site.rb",
179
- "lib/ftpd/cmd_size.rb",
180
- "lib/ftpd/cmd_smnt.rb",
181
- "lib/ftpd/cmd_stat.rb",
182
- "lib/ftpd/cmd_stor.rb",
183
- "lib/ftpd/cmd_stou.rb",
184
- "lib/ftpd/cmd_stru.rb",
185
- "lib/ftpd/cmd_syst.rb",
186
- "lib/ftpd/cmd_type.rb",
187
- "lib/ftpd/command_handler.rb",
188
- "lib/ftpd/command_handler_factory.rb",
189
- "lib/ftpd/command_handlers.rb",
190
- "lib/ftpd/command_loop.rb",
191
- "lib/ftpd/command_sequence_checker.rb",
192
- "lib/ftpd/config.rb",
193
- "lib/ftpd/connection_throttle.rb",
194
- "lib/ftpd/connection_tracker.rb",
195
- "lib/ftpd/data_connection_helper.rb",
196
- "lib/ftpd/data_server_factory.rb",
197
- "lib/ftpd/data_server_factory/random_ephemeral_port.rb",
198
- "lib/ftpd/data_server_factory/specific_port_range.rb",
199
- "lib/ftpd/disk_file_system.rb",
200
- "lib/ftpd/error.rb",
201
- "lib/ftpd/exception_translator.rb",
202
- "lib/ftpd/exceptions.rb",
203
- "lib/ftpd/file_info.rb",
204
- "lib/ftpd/file_system_helper.rb",
205
- "lib/ftpd/ftp_server.rb",
206
- "lib/ftpd/gets_peer_address.rb",
207
- "lib/ftpd/insecure_certificate.rb",
208
- "lib/ftpd/list_format/eplf.rb",
209
- "lib/ftpd/list_format/ls.rb",
210
- "lib/ftpd/list_path.rb",
211
- "lib/ftpd/null_logger.rb",
212
- "lib/ftpd/protocols.rb",
213
- "lib/ftpd/read_only_disk_file_system.rb",
214
- "lib/ftpd/server.rb",
215
- "lib/ftpd/session.rb",
216
- "lib/ftpd/session_config.rb",
217
- "lib/ftpd/stream.rb",
218
- "lib/ftpd/telnet.rb",
219
- "lib/ftpd/temp_dir.rb",
220
- "lib/ftpd/tls_server.rb",
221
- "lib/ftpd/translate_exceptions.rb",
222
- "rake_tasks/cucumber.rake",
223
- "rake_tasks/default.rake",
224
- "rake_tasks/jeweler.rake",
225
- "rake_tasks/spec.rake",
226
- "rake_tasks/test.rake",
227
- "rake_tasks/yard.rake",
228
- "spec/command_sequence_checker_spec.rb",
229
- "spec/connection_throttle_spec.rb",
230
- "spec/connection_tracker_spec.rb",
231
- "spec/data_server_factory_spec.rb",
232
- "spec/disk_file_system_spec.rb",
233
- "spec/exception_translator_spec.rb",
234
- "spec/file_info_spec.rb",
235
- "spec/ftp_server_error_spec.rb",
236
- "spec/list_format/eplf_spec.rb",
237
- "spec/list_format/ls_spec.rb",
238
- "spec/list_path_spec.rb",
239
- "spec/null_logger_spec.rb",
240
- "spec/protocols_spec.rb",
241
- "spec/server_spec.rb",
242
- "spec/spec_helper.rb",
243
- "spec/telnet_spec.rb",
244
- "spec/translate_exceptions_spec.rb",
245
- "testlib/network.rb"
246
71
  ]
72
+ s.files += Dir["doc/**/*.md"]
73
+ s.files += Dir["examples/**/*.rb"]
74
+ s.files += Dir["lib/**/*.rb"]
247
75
  s.homepage = "http://github.com/wconrad/ftpd"
248
76
  s.licenses = ["MIT"]
77
+ s.required_ruby_version = ">= 1.9.3"
249
78
  s.rubygems_version = "2.5.1"
250
79
  s.summary = "Pure Ruby FTP server library"
251
-
252
- if s.respond_to? :specification_version then
253
- s.specification_version = 4
254
-
255
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
256
- s.add_runtime_dependency(%q<memoizer>, ["~> 1.0"])
257
- s.add_development_dependency(%q<cucumber>, ["~> 2.0"])
258
- s.add_development_dependency(%q<double-bag-ftps>, [">= 0.1.3", "~> 0.1"])
259
- s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
260
- s.add_development_dependency(%q<rake>, ["~> 11.1"])
261
- s.add_development_dependency(%q<redcarpet>, ["~> 3.1"])
262
- s.add_development_dependency(%q<rspec>, ["~> 3.1"])
263
- s.add_development_dependency(%q<rspec-its>, ["~> 1.0"])
264
- s.add_development_dependency(%q<timecop>, ["~> 0.7"])
265
- s.add_development_dependency(%q<yard>, ["~> 0.8.7"])
266
- else
267
- s.add_dependency(%q<memoizer>, ["~> 1.0"])
268
- s.add_dependency(%q<cucumber>, ["~> 2.0"])
269
- s.add_dependency(%q<double-bag-ftps>, [">= 0.1.3", "~> 0.1"])
270
- s.add_dependency(%q<jeweler>, ["~> 2.0"])
271
- s.add_dependency(%q<rake>, ["~> 11.1"])
272
- s.add_dependency(%q<redcarpet>, ["~> 3.1"])
273
- s.add_dependency(%q<rspec>, ["~> 3.1"])
274
- s.add_dependency(%q<rspec-its>, ["~> 1.0"])
275
- s.add_dependency(%q<timecop>, ["~> 0.7"])
276
- s.add_dependency(%q<yard>, ["~> 0.8.7"])
277
- end
278
- else
279
- s.add_dependency(%q<memoizer>, ["~> 1.0"])
280
- s.add_dependency(%q<cucumber>, ["~> 2.0"])
281
- s.add_dependency(%q<double-bag-ftps>, [">= 0.1.3", "~> 0.1"])
282
- s.add_dependency(%q<jeweler>, ["~> 2.0"])
283
- s.add_dependency(%q<rake>, ["~> 11.1"])
284
- s.add_dependency(%q<redcarpet>, ["~> 3.1"])
285
- s.add_dependency(%q<rspec>, ["~> 3.1"])
286
- s.add_dependency(%q<rspec-its>, ["~> 1.0"])
287
- s.add_dependency(%q<timecop>, ["~> 0.7"])
288
- s.add_dependency(%q<yard>, ["~> 0.8.7"])
289
- end
80
+ s.add_runtime_dependency("memoizer", "~> 1.0")
81
+ s.add_development_dependency("cucumber", "~> 2.0")
82
+ s.add_development_dependency("double-bag-ftps", ">= 0.1.4", "~> 0.1")
83
+ s.add_development_dependency("rake", "~> 11.1")
84
+ s.add_development_dependency("redcarpet", "~> 3.1")
85
+ s.add_development_dependency("rspec", "~> 3.1")
86
+ s.add_development_dependency("rspec-its", "~> 1.0")
87
+ s.add_development_dependency("timecop", "~> 0.7")
88
+ s.add_development_dependency("yard", "~> 0.8.7")
290
89
  end
291
-