ftp_paradise 1.4.5

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.
Files changed (119) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +319 -0
  3. data/bin/create_remote_directory +9 -0
  4. data/bin/ftp_get +17 -0
  5. data/bin/ftp_gtk3 +7 -0
  6. data/bin/ftp_upload +42 -0
  7. data/bin/ftp_upload_binary +18 -0
  8. data/bin/iftp +7 -0
  9. data/bin/remote_remove +28 -0
  10. data/doc/README.gen +302 -0
  11. data/doc/todo/TODO_FOR_FTP_PARADISE_PROJECT.md +79 -0
  12. data/ftp_paradise.gemspec +122 -0
  13. data/lib/ftp_paradise.rb +5 -0
  14. data/lib/ftp_paradise/base/cliner.rb +23 -0
  15. data/lib/ftp_paradise/base/colours.rb +83 -0
  16. data/lib/ftp_paradise/base/prototype.rb +171 -0
  17. data/lib/ftp_paradise/base/reset.rb +29 -0
  18. data/lib/ftp_paradise/colours/colours.rb +141 -0
  19. data/lib/ftp_paradise/colours/use_colours.rb +76 -0
  20. data/lib/ftp_paradise/configuration/configuration.rb +49 -0
  21. data/lib/ftp_paradise/connection/README.md +1 -0
  22. data/lib/ftp_paradise/connection/connection.rb +35 -0
  23. data/lib/ftp_paradise/connection/constants.rb +46 -0
  24. data/lib/ftp_paradise/connection/data.rb +164 -0
  25. data/lib/ftp_paradise/connection/debug.rb +78 -0
  26. data/lib/ftp_paradise/connection/directory_handling.rb +271 -0
  27. data/lib/ftp_paradise/connection/do_login.rb +108 -0
  28. data/lib/ftp_paradise/connection/download.rb +86 -0
  29. data/lib/ftp_paradise/connection/file_handling.rb +174 -0
  30. data/lib/ftp_paradise/connection/ftp_object.rb +21 -0
  31. data/lib/ftp_paradise/connection/initialize.rb +88 -0
  32. data/lib/ftp_paradise/connection/initialize_a_new_net_ftp_object_with_this_url.rb +20 -0
  33. data/lib/ftp_paradise/connection/is_connected.rb +46 -0
  34. data/lib/ftp_paradise/connection/misc.rb +474 -0
  35. data/lib/ftp_paradise/connection/notify.rb +71 -0
  36. data/lib/ftp_paradise/connection/password.rb +47 -0
  37. data/lib/ftp_paradise/connection/port.rb +33 -0
  38. data/lib/ftp_paradise/connection/remote_pwd.rb +72 -0
  39. data/lib/ftp_paradise/connection/remote_url.rb +164 -0
  40. data/lib/ftp_paradise/connection/remove.rb +143 -0
  41. data/lib/ftp_paradise/connection/reset.rb +78 -0
  42. data/lib/ftp_paradise/connection/run.rb +18 -0
  43. data/lib/ftp_paradise/connection/set_array_available_hosts.rb +27 -0
  44. data/lib/ftp_paradise/connection/set_input.rb +18 -0
  45. data/lib/ftp_paradise/connection/show.rb +153 -0
  46. data/lib/ftp_paradise/connection/sync_ftp_object_onto_the_main_namespace.rb +24 -0
  47. data/lib/ftp_paradise/connection/transfer_mode.rb +163 -0
  48. data/lib/ftp_paradise/connection/upload.rb +253 -0
  49. data/lib/ftp_paradise/connection/use_default_dataset.rb +40 -0
  50. data/lib/ftp_paradise/connection/username.rb +42 -0
  51. data/lib/ftp_paradise/constants/constants.rb +19 -0
  52. data/lib/ftp_paradise/constants/misc.rb +57 -0
  53. data/lib/ftp_paradise/constants/namespace.rb +14 -0
  54. data/lib/ftp_paradise/constants/newline.rb +14 -0
  55. data/lib/ftp_paradise/constants/roebe.rb +31 -0
  56. data/lib/ftp_paradise/constants/roebe_ftp_constants.rb +233 -0
  57. data/lib/ftp_paradise/entry/entry.rb +300 -0
  58. data/lib/ftp_paradise/gui/gtk2/ftp_paradise.rb +34 -0
  59. data/lib/ftp_paradise/gui/gtk3/ftp_paradise.rb +34 -0
  60. data/lib/ftp_paradise/gui/shared_code/ftp_paradise/ftp_paradise_module.rb +709 -0
  61. data/lib/ftp_paradise/images/connection_image.png +0 -0
  62. data/lib/ftp_paradise/interactive_ftp/constants.rb +103 -0
  63. data/lib/ftp_paradise/interactive_ftp/directory_handling.rb +216 -0
  64. data/lib/ftp_paradise/interactive_ftp/help.rb +50 -0
  65. data/lib/ftp_paradise/interactive_ftp/initialize.rb +27 -0
  66. data/lib/ftp_paradise/interactive_ftp/interactive_ftp.rb +998 -0
  67. data/lib/ftp_paradise/interactive_ftp/main_loop.rb +51 -0
  68. data/lib/ftp_paradise/interactive_ftp/menu.rb +786 -0
  69. data/lib/ftp_paradise/interactive_ftp/misc.rb +208 -0
  70. data/lib/ftp_paradise/interactive_ftp/mode.rb +124 -0
  71. data/lib/ftp_paradise/interactive_ftp/readline.rb +113 -0
  72. data/lib/ftp_paradise/interactive_ftp/remove.rb +97 -0
  73. data/lib/ftp_paradise/interactive_ftp/reset.rb +90 -0
  74. data/lib/ftp_paradise/interactive_ftp/run.rb +22 -0
  75. data/lib/ftp_paradise/interactive_ftp/show.rb +184 -0
  76. data/lib/ftp_paradise/interactive_ftp/upload.rb +90 -0
  77. data/lib/ftp_paradise/interactive_ftp/user_input.rb +53 -0
  78. data/lib/ftp_paradise/project/project.rb +64 -0
  79. data/lib/ftp_paradise/requires/common_basic_requires.rb +14 -0
  80. data/lib/ftp_paradise/requires/common_external_requires.rb +9 -0
  81. data/lib/ftp_paradise/requires/require_the_constants.rb +7 -0
  82. data/lib/ftp_paradise/requires/require_the_ftp_paradise_project.rb +18 -0
  83. data/lib/ftp_paradise/requires/require_the_ftp_paradise_project_with_the_GUI_bindings.rb +10 -0
  84. data/lib/ftp_paradise/requires/require_the_toplevel_methods.rb +24 -0
  85. data/lib/ftp_paradise/toplevel_methods/can_connect_to_remote_site.rb +28 -0
  86. data/lib/ftp_paradise/toplevel_methods/clear_user_dataset.rb +28 -0
  87. data/lib/ftp_paradise/toplevel_methods/connect.rb +50 -0
  88. data/lib/ftp_paradise/toplevel_methods/data.rb +31 -0
  89. data/lib/ftp_paradise/toplevel_methods/determine_user_dataset_from_this_hash.rb +37 -0
  90. data/lib/ftp_paradise/toplevel_methods/directory_related_actions.rb +33 -0
  91. data/lib/ftp_paradise/toplevel_methods/e.rb +16 -0
  92. data/lib/ftp_paradise/toplevel_methods/file_related_actions.rb +49 -0
  93. data/lib/ftp_paradise/toplevel_methods/ftp_object.rb +270 -0
  94. data/lib/ftp_paradise/toplevel_methods/is_on_roebe.rb +20 -0
  95. data/lib/ftp_paradise/toplevel_methods/login_name.rb +49 -0
  96. data/lib/ftp_paradise/toplevel_methods/misc.rb +16 -0
  97. data/lib/ftp_paradise/toplevel_methods/opn.rb +24 -0
  98. data/lib/ftp_paradise/toplevel_methods/password.rb +50 -0
  99. data/lib/ftp_paradise/toplevel_methods/port.rb +41 -0
  100. data/lib/ftp_paradise/toplevel_methods/rds.rb +18 -0
  101. data/lib/ftp_paradise/toplevel_methods/remote_url.rb +57 -0
  102. data/lib/ftp_paradise/toplevel_methods/time.rb +45 -0
  103. data/lib/ftp_paradise/toplevel_methods/upload_and_download.rb +108 -0
  104. data/lib/ftp_paradise/version/version.rb +19 -0
  105. data/lib/ftp_paradise/www/public/css/style.css +3 -0
  106. data/lib/ftp_paradise/www/sinatra_web_interface.rb +242 -0
  107. data/lib/ftp_paradise/www/views/index.slim +3 -0
  108. data/lib/ftp_paradise/www/views/layout.slim +11 -0
  109. data/lib/ftp_paradise/www/web_interface.cgi +34 -0
  110. data/lib/ftp_paradise/yaml/automatically_connect_on_startup_of_the_interactive_ftp_shell.yml +1 -0
  111. data/lib/ftp_paradise/yaml/debug.yml +1 -0
  112. data/lib/ftp_paradise/yaml/open_in_default_editor.yml +1 -0
  113. data/lib/ftp_paradise/yaml/show_full_names.yml +1 -0
  114. data/lib/ftp_paradise/yaml/use_colours.yml +1 -0
  115. data/test/testing_ftp_paradise.rb +94 -0
  116. data/test/testing_minimal_pure_net_ftp_example_to_connect.rb +28 -0
  117. data/test/testing_the_ftp_connection_component.rb +70 -0
  118. data/test/testing_upload_a_local_directory.rb +10 -0
  119. metadata +336 -0
@@ -0,0 +1,20 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/is_on_roebe.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === FtpParadise.is_on_roebe?
11
+ # ========================================================================= #
12
+ def self.is_on_roebe?
13
+ ENV['IS_ROEBE'].to_s == '1'
14
+ end
15
+
16
+ end
17
+
18
+ if __FILE__ == $PROGRAM_NAME
19
+ puts FtpParadise.is_on_roebe?
20
+ end
@@ -0,0 +1,49 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/login_name.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ require 'yaml'
10
+ require 'ftp_paradise/constants/roebe.rb'
11
+
12
+ # ========================================================================= #
13
+ # === @login_name
14
+ # ========================================================================= #
15
+ @login_name = nil
16
+
17
+ # ========================================================================= #
18
+ # === FtpParadise.login_name?
19
+ # ========================================================================= #
20
+ def self.login_name?
21
+ @login_name
22
+ end; self.instance_eval { alias username? login_name? } # === FtpParadise.username?
23
+
24
+ # ========================================================================= #
25
+ # === FtpParadise.set_login_name
26
+ # ========================================================================= #
27
+ def self.set_login_name(
28
+ i = :try_to_infer_automatically
29
+ )
30
+ case i
31
+ # ======================================================================= #
32
+ # === :try_to_infer_automatically
33
+ # ======================================================================= #
34
+ when :try_to_infer_automatically,
35
+ :infer
36
+ if File.exist? FILE_ROEBE_FTP
37
+ i = YAML.load_file(FILE_ROEBE_FTP)['podserver']['user_name']
38
+ end
39
+ end
40
+ @login_name = i
41
+ end; self.instance_eval { alias set_user_name set_login_name } # === FtpParadise.set_user_name
42
+ self.instance_eval { alias set_username set_login_name } # === FtpParadise.set_username
43
+
44
+ end
45
+
46
+ if __FILE__ == $PROGRAM_NAME
47
+ FtpParadise.set_login_name
48
+ puts FtpParadise.login_name?
49
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/misc.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === FtpParadise.return_pwd
11
+ # ========================================================================= #
12
+ def self.return_pwd
13
+ return ("#{Dir.pwd}/").squeeze('/')
14
+ end
15
+
16
+ end
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/opn.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ begin
10
+ require 'opn'
11
+ rescue LoadError; end
12
+
13
+ require 'ftp_paradise/constants/namespace.rb'
14
+
15
+ # ========================================================================= #
16
+ # === FtpParadise.opn
17
+ # ========================================================================= #
18
+ def self.opn(
19
+ i = { namespace: NAMESPACE }
20
+ )
21
+ Opn.opn(i) if Object.const_defined? :Opn
22
+ end; self.instance_eval { alias opnn opn } # === FtpParadise.opnn
23
+
24
+ end
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/password.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ require 'yaml'
10
+ require 'ftp_paradise/constants/roebe.rb'
11
+
12
+ # ========================================================================= #
13
+ # === @password
14
+ #
15
+ # This variable will keep track of the password to the remote FTP
16
+ # host. This allows you to use FtpParadise without instantiating
17
+ # the main class of this project.
18
+ # ========================================================================= #
19
+ @password = nil
20
+
21
+ # ========================================================================= #
22
+ # === FtpParadise.password?
23
+ # ========================================================================= #
24
+ def self.password?
25
+ @password
26
+ end
27
+
28
+ # ========================================================================= #
29
+ # === FtpParadise.set_password
30
+ # ========================================================================= #
31
+ def self.set_password(
32
+ i = :try_to_infer_automatically
33
+ )
34
+ case i
35
+ # === :try_to_infer_automatically
36
+ when :try_to_infer_automatically,
37
+ :infer
38
+ if File.exist? FILE_ROEBE_FTP
39
+ i = YAML.load_file(FILE_ROEBE_FTP)['bytehost']['password']
40
+ end
41
+ end
42
+ @password = i
43
+ end
44
+
45
+ end
46
+
47
+ if __FILE__ == $PROGRAM_NAME
48
+ FtpParadise.set_password
49
+ puts FtpParadise.password?
50
+ end
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/port.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === @port
11
+ # ========================================================================= #
12
+ @port = 21
13
+
14
+ # ========================================================================= #
15
+ # === FtpParadise.set_port
16
+ # ========================================================================= #
17
+ def self.set_port(
18
+ i = :try_to_infer_automatically
19
+ )
20
+ case i
21
+ when :try_to_infer_automatically
22
+ if File.exist? FILE_ROEBE_FTP
23
+ i = YAML.load_file(FILE_ROEBE_FTP)['podcast']['port']
24
+ end
25
+ end
26
+ @port = i
27
+ end
28
+
29
+ # ========================================================================= #
30
+ # === FtpParadise.port?
31
+ # ========================================================================= #
32
+ def self.port?
33
+ @port
34
+ end
35
+
36
+ end
37
+
38
+ if __FILE__ == $PROGRAM_NAME
39
+ FtpParadise.set_port
40
+ puts FtpParadise.port?
41
+ end
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/rds.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === FtpParadise.rds
11
+ #
12
+ # Use this method to remove double '//' entry.
13
+ # ========================================================================= #
14
+ def self.rds(i)
15
+ i.squeeze '/'
16
+ end
17
+
18
+ end
@@ -0,0 +1,57 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/remote_url.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === @remote_url
11
+ #
12
+ # This variable will keep track of the remote url.
13
+ # ========================================================================= #
14
+ @remote_url = nil
15
+
16
+ # ========================================================================= #
17
+ # === FtpParadise.remote_url?
18
+ #
19
+ # Return the @remote_url variable.
20
+ # ========================================================================= #
21
+ def self.remote_url?
22
+ @remote_url
23
+ end
24
+
25
+ require 'yaml'
26
+ require 'ftp_paradise/toplevel_methods/is_on_roebe.rb'
27
+ require 'ftp_paradise/constants/roebe.rb'
28
+ # ========================================================================= #
29
+ # === FtpParadise.set_remote_url
30
+ #
31
+ # Setter-method for @remote_url. Will be nil initially.
32
+ # ========================================================================= #
33
+ def self.set_remote_url(
34
+ i = :try_to_infer
35
+ )
36
+ case i
37
+ when nil, :infer, :try_to_infer
38
+ if is_on_roebe?
39
+ if File.exist? FILE_ROEBE_FTP
40
+ i = YAML.load_file(FILE_ROEBE_FTP)['bytehost']['url']
41
+ end
42
+ end
43
+ end
44
+ @remote_url = i
45
+ end; self.instance_eval { alias set_remote_host set_remote_url } # === FtpParadise.set_remote_host
46
+
47
+ # ========================================================================= #
48
+ # Initialize it to the default value.
49
+ # ========================================================================= #
50
+ set_remote_url
51
+
52
+ end
53
+
54
+ if __FILE__ == $PROGRAM_NAME
55
+ FtpParadise.set_remote_url
56
+ puts FtpParadise.remote_url?
57
+ end # ftp_remote_url
@@ -0,0 +1,45 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/time.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === FtpParadise.return_date
11
+ #
12
+ # This method will return a String such as "03.12.2014".
13
+ # ========================================================================= #
14
+ def self.return_date
15
+ Time.now.strftime('%d.%m.%Y')
16
+ end
17
+
18
+ # ========================================================================= #
19
+ # === return_date
20
+ # ========================================================================= #
21
+ def return_date
22
+ FtpParadise.return_date
23
+ end
24
+
25
+ # ========================================================================= #
26
+ # === FtpParadise.return_time
27
+ #
28
+ # This method will return a String such as "15:55:30".
29
+ # ========================================================================= #
30
+ def self.return_time
31
+ Time.now.strftime('%H:%M:%S')
32
+ end
33
+
34
+ # ========================================================================= #
35
+ # === return_time
36
+ # ========================================================================= #
37
+ def return_time
38
+ FtpParadise.return_time
39
+ end
40
+
41
+ end
42
+
43
+ if __FILE__ == $PROGRAM_NAME
44
+ puts FtpParadise.return_time
45
+ end
@@ -0,0 +1,108 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/toplevel_methods/upload_and_download.rb'
6
+ # FtpParadise.download
7
+ # =========================================================================== #
8
+ module FtpParadise
9
+
10
+ require 'ftp_paradise/toplevel_methods/e.rb'
11
+ require 'ftp_paradise/toplevel_methods/opn.rb'
12
+
13
+ # ========================================================================= #
14
+ # === FtpParadise.upload_this_binary_file
15
+ #
16
+ # This method shall allow you to upload a binary file to a remote host.
17
+ #
18
+ # For now, this has my FTP information hardcoded.
19
+ #
20
+ # Usage examples:
21
+ #
22
+ # FtpParadise.upload_this_binary_file("/home/x/src/htop/htop-2.0.2.tar.xz")
23
+ # FtpParadise.upload_this_binary_file("/home/x/src/htop/htop-2.0.2.tar.xz") {{ cd_into_this_directory: 'htdocs/' }}
24
+ # FtpParadise.upload_this_binary_file("/home/x/src/htop/htop-2.0.2.tar.xz") {{ cd_into_this_directory: 'www/' }}
25
+ # upload_this_binary_file /home/x/src/htop/htop-2.0.2.tar.xz
26
+ # upload_this_binary_file /home/x/src/htop/htop-2.0.2.tar.xz
27
+ #
28
+ # ========================================================================= #
29
+ def self.upload_this_binary_file(
30
+ file,
31
+ be_verbose = :be_silent,
32
+ use_this_as_ftp_object = nil
33
+ )
34
+ yielded = nil
35
+ yielded = yield if block_given?
36
+ case yielded
37
+ when :be_quiet
38
+ be_verbose = false
39
+ end
40
+ case be_verbose
41
+ when :be_silent
42
+ be_verbose = false
43
+ end
44
+ unless use_this_as_ftp_object
45
+ require 'ftp_paradise/connection/connection.rb'
46
+ use_this_as_ftp_object = ::FtpParadise::Connection.new(:dont_run_yet) { :default_dataset }
47
+ if be_verbose
48
+ use_this_as_ftp_object.be_verbose
49
+ else
50
+ use_this_as_ftp_object.be_quiet
51
+ end
52
+ use_this_as_ftp_object.set_binary_mode
53
+ end
54
+ if yielded
55
+ if yielded.is_a? Hash
56
+ if yielded.has_key? :cd_into_this_directory
57
+ use_this_as_ftp_object.remote_cd(yielded[:cd_into_this_directory])
58
+ end
59
+ end
60
+ end
61
+ use_this_as_ftp_object.upload(file, be_verbose) # Here, do the FTP upload finally.
62
+ end
63
+
64
+ # ========================================================================= #
65
+ # === FtpParadise.download
66
+ # ========================================================================= #
67
+ def self.download(
68
+ this_remote_file,
69
+ use_this_ftp_object
70
+ )
71
+ use_this_ftp_object.gettextfile(
72
+ this_remote_file
73
+ )
74
+ end
75
+
76
+ # ========================================================================= #
77
+ # === FtpParadise.upload
78
+ #
79
+ # This toplevel-method can be used to upload something to a remote
80
+ # target.
81
+ #
82
+ # The second argument called `to` will tell us where to upload to.
83
+ # ========================================================================= #
84
+ def self.upload(
85
+ local_target,
86
+ remote_target = :short_variant,
87
+ use_this_ftp_object = :shevy,
88
+ &block
89
+ )
90
+ case remote_target
91
+ when :short_variant
92
+ remote_target = File.basename(local_target)
93
+ end
94
+ if use_this_ftp_object.is_a? Symbol
95
+ require 'ftp_paradise/connection/connection.rb'
96
+ use_this_ftp_object = FtpParadise::Connection.new(:dont_run_yet)
97
+ opn; e "We will now connect to #{sfancy(use_this_ftp_object.to_s)}."
98
+ use_this_ftp_object.connect_to
99
+ use_this_ftp_object.upload(local_target)
100
+ end
101
+ use_this_ftp_object.put(
102
+ local_target,
103
+ remotefile = File.basename(localfile),
104
+ &block
105
+ )
106
+ end
107
+
108
+ end
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen-string-literal: true
4
+ # =========================================================================== #
5
+ # require 'ftp_paradise/version/version.rb'
6
+ # =========================================================================== #
7
+ module FtpParadise
8
+
9
+ # ========================================================================= #
10
+ # === VERSION
11
+ # ========================================================================= #
12
+ VERSION = '1.4.5'
13
+
14
+ end
15
+
16
+ if __FILE__ == $PROGRAM_NAME
17
+ p FtpParadise::VERSION
18
+ p FtpParadise::VERSION.frozen?
19
+ end