ftp_paradise 1.4.5 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +155 -28
  3. data/bin/{iftp → ftp_paradise_shell} +1 -1
  4. data/doc/README.gen +97 -15
  5. data/doc/todo/{TODO_FOR_FTP_PARADISE_PROJECT.md → todo_for_the_ftp_paradise_project.md} +11 -1
  6. data/ftp_paradise.gemspec +30 -39
  7. data/lib/ftp_paradise/base/base.rb +375 -0
  8. data/lib/ftp_paradise/colours/colours.rb +27 -27
  9. data/lib/ftp_paradise/colours/use_colours.rb +6 -1
  10. data/lib/ftp_paradise/configuration/configuration.rb +7 -4
  11. data/lib/ftp_paradise/connection/README.md +0 -0
  12. data/lib/ftp_paradise/connection/connection.rb +2782 -15
  13. data/lib/ftp_paradise/constants/constants.rb +91 -5
  14. data/lib/ftp_paradise/entry/entry.rb +42 -5
  15. data/lib/ftp_paradise/{connection → gui/gtk3/ftp_client}/constants.rb +33 -21
  16. data/lib/ftp_paradise/gui/{shared_code/ftp_paradise/ftp_paradise_module.rb → gtk3/ftp_client/ftp_client.rb} +658 -170
  17. data/lib/ftp_paradise/gui/gtk3/ftp_client/misc.rb +27 -0
  18. data/lib/ftp_paradise/project/project.rb +11 -15
  19. data/lib/ftp_paradise/requires/require_class_connection.rb +7 -0
  20. data/lib/ftp_paradise/requires/require_net_ftp.rb +7 -0
  21. data/lib/ftp_paradise/requires/require_the_ftp_paradise_project.rb +4 -3
  22. data/lib/ftp_paradise/requires/require_the_ftp_paradise_project_with_the_GUI_bindings.rb +1 -1
  23. data/lib/ftp_paradise/requires/require_the_toplevel_methods.rb +1 -0
  24. data/lib/ftp_paradise/{interactive_ftp → shell}/menu.rb +564 -449
  25. data/lib/ftp_paradise/shell/shell.rb +2321 -0
  26. data/lib/ftp_paradise/toplevel_methods/connect.rb +3 -0
  27. data/lib/ftp_paradise/toplevel_methods/dataset.rb +111 -0
  28. data/lib/ftp_paradise/toplevel_methods/file_related_actions.rb +4 -3
  29. data/lib/ftp_paradise/toplevel_methods/ftp_object.rb +6 -5
  30. data/lib/ftp_paradise/toplevel_methods/login_name.rb +6 -4
  31. data/lib/ftp_paradise/toplevel_methods/misc.rb +19 -0
  32. data/lib/ftp_paradise/toplevel_methods/opn.rb +1 -1
  33. data/lib/ftp_paradise/toplevel_methods/password.rb +4 -2
  34. data/lib/ftp_paradise/toplevel_methods/port.rb +4 -1
  35. data/lib/ftp_paradise/toplevel_methods/remote_url.rb +11 -5
  36. data/lib/ftp_paradise/toplevel_methods/upload_and_download.rb +1 -0
  37. data/lib/ftp_paradise/version/version.rb +6 -1
  38. data/lib/ftp_paradise/www/web_interface.cgi +1 -1
  39. data/lib/ftp_paradise/yaml/automatically_connect_on_startup_of_the_interactive_ftp_shell.yml +0 -0
  40. data/lib/ftp_paradise/yaml/debug.yml +0 -0
  41. data/lib/ftp_paradise/yaml/open_in_default_editor.yml +0 -0
  42. data/lib/ftp_paradise/yaml/show_full_names.yml +0 -0
  43. data/lib/ftp_paradise/yaml/use_colours.yml +0 -0
  44. data/test/testing_minimal_pure_net_ftp_example_to_connect.rb +13 -3
  45. metadata +52 -126
  46. data/lib/ftp_paradise/base/cliner.rb +0 -23
  47. data/lib/ftp_paradise/base/colours.rb +0 -83
  48. data/lib/ftp_paradise/base/prototype.rb +0 -171
  49. data/lib/ftp_paradise/base/reset.rb +0 -29
  50. data/lib/ftp_paradise/connection/data.rb +0 -164
  51. data/lib/ftp_paradise/connection/debug.rb +0 -78
  52. data/lib/ftp_paradise/connection/directory_handling.rb +0 -271
  53. data/lib/ftp_paradise/connection/do_login.rb +0 -108
  54. data/lib/ftp_paradise/connection/download.rb +0 -86
  55. data/lib/ftp_paradise/connection/file_handling.rb +0 -174
  56. data/lib/ftp_paradise/connection/ftp_object.rb +0 -21
  57. data/lib/ftp_paradise/connection/initialize.rb +0 -88
  58. data/lib/ftp_paradise/connection/initialize_a_new_net_ftp_object_with_this_url.rb +0 -20
  59. data/lib/ftp_paradise/connection/is_connected.rb +0 -46
  60. data/lib/ftp_paradise/connection/misc.rb +0 -474
  61. data/lib/ftp_paradise/connection/notify.rb +0 -71
  62. data/lib/ftp_paradise/connection/password.rb +0 -47
  63. data/lib/ftp_paradise/connection/port.rb +0 -33
  64. data/lib/ftp_paradise/connection/remote_pwd.rb +0 -72
  65. data/lib/ftp_paradise/connection/remote_url.rb +0 -164
  66. data/lib/ftp_paradise/connection/remove.rb +0 -143
  67. data/lib/ftp_paradise/connection/reset.rb +0 -78
  68. data/lib/ftp_paradise/connection/run.rb +0 -18
  69. data/lib/ftp_paradise/connection/set_array_available_hosts.rb +0 -27
  70. data/lib/ftp_paradise/connection/set_input.rb +0 -18
  71. data/lib/ftp_paradise/connection/show.rb +0 -153
  72. data/lib/ftp_paradise/connection/sync_ftp_object_onto_the_main_namespace.rb +0 -24
  73. data/lib/ftp_paradise/connection/transfer_mode.rb +0 -163
  74. data/lib/ftp_paradise/connection/upload.rb +0 -253
  75. data/lib/ftp_paradise/connection/use_default_dataset.rb +0 -40
  76. data/lib/ftp_paradise/connection/username.rb +0 -42
  77. data/lib/ftp_paradise/constants/misc.rb +0 -57
  78. data/lib/ftp_paradise/constants/namespace.rb +0 -14
  79. data/lib/ftp_paradise/constants/newline.rb +0 -14
  80. data/lib/ftp_paradise/constants/roebe.rb +0 -31
  81. data/lib/ftp_paradise/constants/roebe_ftp_constants.rb +0 -233
  82. data/lib/ftp_paradise/gui/gtk2/ftp_paradise.rb +0 -34
  83. data/lib/ftp_paradise/gui/gtk3/ftp_paradise.rb +0 -34
  84. data/lib/ftp_paradise/interactive_ftp/constants.rb +0 -103
  85. data/lib/ftp_paradise/interactive_ftp/directory_handling.rb +0 -216
  86. data/lib/ftp_paradise/interactive_ftp/help.rb +0 -50
  87. data/lib/ftp_paradise/interactive_ftp/initialize.rb +0 -27
  88. data/lib/ftp_paradise/interactive_ftp/interactive_ftp.rb +0 -998
  89. data/lib/ftp_paradise/interactive_ftp/main_loop.rb +0 -51
  90. data/lib/ftp_paradise/interactive_ftp/misc.rb +0 -208
  91. data/lib/ftp_paradise/interactive_ftp/mode.rb +0 -124
  92. data/lib/ftp_paradise/interactive_ftp/readline.rb +0 -113
  93. data/lib/ftp_paradise/interactive_ftp/remove.rb +0 -97
  94. data/lib/ftp_paradise/interactive_ftp/reset.rb +0 -90
  95. data/lib/ftp_paradise/interactive_ftp/run.rb +0 -22
  96. data/lib/ftp_paradise/interactive_ftp/show.rb +0 -184
  97. data/lib/ftp_paradise/interactive_ftp/upload.rb +0 -90
  98. data/lib/ftp_paradise/interactive_ftp/user_input.rb +0 -53
  99. data/lib/ftp_paradise/toplevel_methods/can_connect_to_remote_site.rb +0 -28
  100. data/lib/ftp_paradise/toplevel_methods/clear_user_dataset.rb +0 -28
  101. data/lib/ftp_paradise/toplevel_methods/data.rb +0 -31
  102. data/lib/ftp_paradise/toplevel_methods/determine_user_dataset_from_this_hash.rb +0 -37
@@ -1,164 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/remote_url.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- require 'ftp_paradise/toplevel_methods/remote_url.rb'
12
-
13
- # ========================================================================= #
14
- # === remote_url?
15
- #
16
- # This method is guaranteed to return a String.
17
- # ========================================================================= #
18
- def remote_url?
19
- begin
20
- return FtpParadise.remote_url?.to_s
21
- rescue Interrupt
22
- exit # User interrupted, so we exit as requested.
23
- rescue Exception => error
24
- opnn; e 'We did encounter an error in the method '+
25
- simp(__method__.to_s)
26
- opnn; pp error
27
- return error.to_s # Return that exception.
28
- end
29
- end; alias remote_host? remote_url? # === remote_host?
30
- alias remote_url remote_url? # === remote_url
31
- alias url? remote_url? # === url?
32
- alias host? remote_url? # === host?
33
- alias host remote_url? # === host
34
-
35
- # ========================================================================= #
36
- # === set_remote_url
37
- #
38
- # This method will do some sanitizing before it sets a proper and
39
- # valid hostname. Remember to keep the 'default' entry at the
40
- # current main FTP host you use.
41
- # ========================================================================= #
42
- def set_remote_url(
43
- i = :default,
44
- be_verbose = true
45
- )
46
- i = :default? if i.nil?
47
- if i.is_a? Hash # Handle Hash as input here.
48
- if i.has_key?(:to)
49
- i = i[:to]
50
- end
51
- end
52
- # ======================================================================= #
53
- # The next block is mostly for my custom constants.
54
- # You can simply pass in your own Hash.
55
- # ======================================================================= #
56
- case i # Do some sanitizing. This is a String here. (case tag)
57
- # ======================================================================= #
58
- # === shevy
59
- # ======================================================================= #
60
- when /^-?-?shevy$/i,
61
- 'default'
62
- set_data(PODSERVER)
63
- i = PODSERVER.first
64
- # ======================================================================= #
65
- # === bplaced
66
- # ======================================================================= #
67
- when /^-?-?bplaced$/i
68
- set_data(BPLACED)
69
- i = BPLACED.first
70
- # ======================================================================= #
71
- # === ?
72
- # ======================================================================= #
73
- when '?'
74
- feedback_login_hosts
75
- # ======================================================================= #
76
- # === uniwien_homepage
77
- # ======================================================================= #
78
- when /^uniwien_?homepage/
79
- set_data(UNIWIEN_HOMEPAGE)
80
- i = UNIWIEN_HOMEPAGE.first
81
- # ======================================================================= #
82
- # === unet
83
- # ======================================================================= #
84
- when 'unet','uni',
85
- 'uniftp'
86
- set_data(UNIVIE)
87
- i = UNIVIE.first
88
- # ======================================================================= #
89
- # === a1
90
- # ======================================================================= #
91
- when /^a1/
92
- set_data(A1)
93
- i = A1.first
94
- # ======================================================================= #
95
- # === byte
96
- # ======================================================================= #
97
- when /^byte/ # This also includese bytehost.
98
- set_data(BYTEHOST)
99
- i = BYTEHOST.first
100
- # ======================================================================= #
101
- # === zerofees
102
- # ======================================================================= #
103
- when 'ZEROFEES','zero','ZERO'
104
- set_data(ZEROFEES)
105
- i = ZEROFEES.first
106
- # ======================================================================= #
107
- # === ucoz
108
- # ======================================================================= #
109
- when 'ucoz','UCOZ','LAST',/tanriel/i,
110
- 'last'
111
- set_data(UCOZ)
112
- i = UCOZ.first
113
- end
114
- case i.to_s
115
- # ======================================================================= #
116
- # === shevy
117
- # ======================================================================= #
118
- when 'shevy','5','default' # Current default entry.
119
- i = SQUARE7.first
120
- # ======================================================================= #
121
- # === a1
122
- # ======================================================================= #
123
- when '1','a1'
124
- i = A1.first
125
- # ======================================================================= #
126
- # === unet
127
- # ======================================================================= #
128
- when '2','unet','uni','uniftp'
129
- i = UNIVIE.first
130
- # ======================================================================= #
131
- # === geas
132
- # ======================================================================= #
133
- when '3','geas'
134
- i = GEAS.first
135
- # ======================================================================= #
136
- # === byte
137
- # ======================================================================= #
138
- when '4','byte'
139
- i = BYTEHOST.first
140
- end
141
- i = i.to_s # Need a String here.
142
- # ======================================================================= #
143
- # === Provide more information to the user
144
- # ======================================================================= #
145
- if debug?
146
- opnn; e "The remote URL was set to: #{sfancy(i)}"
147
- end
148
- if be_verbose
149
- e "Setting url to #{sfancy(i)} now."
150
- end
151
- FtpParadise.set_remote_url(i)
152
- # ======================================================================= #
153
- # And we will always initialize a new ftp-object as well, whenever
154
- # we call this method:
155
- # ======================================================================= #
156
- initialize_a_new_net_ftp_object_with_this_remote_url(i)
157
- end; alias set_this_host set_remote_url # === set_this_host
158
- alias set_host set_remote_url # === set_host
159
- alias set_url set_remote_url # === set_url
160
- alias host= set_remote_url # === host=
161
- alias url= set_remote_url # === url=
162
- alias set_remote_host set_remote_url # === set_remote_host
163
-
164
- end; end
@@ -1,143 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/remove.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- # ========================================================================= #
12
- # === remove (remove tag)
13
- # ========================================================================= #
14
- def remove(i)
15
- if i.is_a? Array
16
- i.each {|entry| remove(entry) }
17
- else
18
- if is_a_directory?(i)
19
- remove_remote_directory(i)
20
- elsif is_a_file?(i)
21
- remove_remote_file(i, be_verbose?)
22
- end
23
- end
24
- end
25
-
26
- # ========================================================================= #
27
- # === remove_remote_file
28
- #
29
- # Remove a (remote) file, via the delete() method of the FTP protocol.
30
- #
31
- # Note that this method will only delete files.
32
- #
33
- # The official documentation for the Ruby-FTP delete() method can be
34
- # found here:
35
- #
36
- # https://www.ruby-doc.org/stdlib/libdoc/net/ftp/rdoc/Net/FTP.html#method-i-delete
37
- #
38
- # ========================================================================= #
39
- def remove_remote_file(
40
- i,
41
- be_verbose = be_verbose?
42
- )
43
- case be_verbose
44
- when :be_verbose
45
- be_verbose = true
46
- end
47
- if i.is_a? Array
48
- i.each {|entry| remove_remote_file(entry, be_verbose) }
49
- else
50
- if does_this_remote_file_exist?(File.basename(i))
51
- i = File.basename(i)
52
- if i =~ /^\d+$/ # if is a number
53
- update_file_listing
54
- _ = return_remote_file_listing[i.to_i - 1].first
55
- _ = File.basename(_)
56
- e "Performing a substitution of #{sfancy(i)}"\
57
- " to #{simp(_)}."
58
- i = _
59
- end
60
- if be_verbose
61
- notify_the_user_about(i, __method__)
62
- end
63
- ftp_object?.delete(i)
64
- update_file_listing
65
- return i # Also return the file that was deleted.
66
- else
67
- opnn; e "No remote file called `#{sfile(i)}` was "\
68
- "found at `#{sfancy(remote_pwd)}`."
69
- end
70
- end
71
- end; alias remote_remove remove_remote_file # === remote_remove
72
- alias remote_remove_files remove_remote_file # === remote_remove_files
73
- alias remote_remove_file remove_remote_file # === remote_remove_files
74
- alias delete remove_remote_file # === delete
75
- alias remove_file remove_remote_file # === remove_file
76
- alias rm_file remove_remote_file # === rm_file
77
- alias rmfile remove_remote_file # === rmfile
78
-
79
- # ========================================================================= #
80
- # === original_delete
81
- #
82
- # This method will remove the file, without doing any additional
83
- # checks.
84
- # ========================================================================= #
85
- def original_delete(i)
86
- ftp_object?.delete(i)
87
- end
88
-
89
- # ========================================================================= #
90
- # === remove_remote_directory
91
- #
92
- # This method will remove a remote directory. For this to work, as
93
- # operation, the remote directory has to exist.
94
- #
95
- # This operation may fail e. g. when the remote directory is not empty.
96
- # This explains why we attempt to rescue some errors.
97
- # ========================================================================= #
98
- def remove_remote_directory(
99
- i,
100
- be_verbose = be_verbose?,
101
- force_remove = false
102
- )
103
- case force_remove
104
- when :force_remove
105
- force_remove = true
106
- when :do_not_force_remove
107
- force_remove = false
108
- end
109
- if i.is_a? Array
110
- i.each {|entry| remove_remote_directory(entry, be_verbose) }
111
- else
112
- if be_verbose
113
- notify_the_user_about(i, __method__)
114
- end
115
- if is_a_directory? i
116
- begin
117
- ftp_object?.rmdir(i)
118
- rescue Net::FTPPermError => error
119
- opnn; e swarn('We could not remove the remote directory at ')+
120
- sdir(i)+swarn(' as it is not empty.')
121
- pp error
122
- if force_remove
123
- opnn; e 'We will now try to enter into this directory'
124
- opnn; e 'and then remove all files of that directory.'
125
- rcd(this_dir)
126
- update_file_listing
127
- all_remote_files?.each {|file| remove(file) } # Now it should be removed.
128
- rcd('..') # Go back again.
129
- rmdir(i, be_verbose, :do_not_force_remove) # But we won't force again, to avoid recursive loops.
130
- opnn; e "The remote directory at #{sdir(i)} has been removed."
131
- end
132
- end
133
- else
134
- if be_verbose
135
- opnn; e "The given input #{sfancy(i)} is not a directory."
136
- end
137
- end
138
- end
139
- end; alias rmdir remove_remote_directory # === rmdir
140
- alias remove_these_remote_directories remove_remote_directory # === remove_these_remote_directories
141
- alias remove_directory remove_remote_directory # === remove_directory
142
-
143
- end; end
@@ -1,78 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/reset.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- require 'ftp_paradise/connection/port.rb'
12
- require 'ftp_paradise/connection/set_array_available_hosts.rb'
13
- require 'ftp_paradise/connection/transfer_mode.rb'
14
- require 'ftp_paradise/connection/username.rb'
15
-
16
- # ========================================================================= #
17
- # === reset
18
- # ========================================================================= #
19
- def reset
20
- super()
21
- # ======================================================================= #
22
- # === @input
23
- # ======================================================================= #
24
- @input = nil
25
- # ======================================================================= #
26
- # === @ftp_object
27
- # ======================================================================= #
28
- @ftp_object = nil
29
- populate_internal_hash_with_default_values
30
- # ======================================================================= #
31
- # The next method-call must come after
32
- # populate_internal_hash_with_default_values().
33
- # ======================================================================= #
34
- set_be_verbose if BE_VERBOSE
35
- set_port
36
- set_array_available_hosts
37
- set_default_transfer_mode :be_quiet
38
- set_username
39
- end
40
-
41
- # ========================================================================= #
42
- # === populate_internal_hash_with_default_values
43
- # ========================================================================= #
44
- def populate_internal_hash_with_default_values
45
- # ======================================================================= #
46
- # === @internal_hash
47
- # ======================================================================= #
48
- @internal_hash = {}
49
- # ======================================================================= #
50
- # === :port
51
- #
52
- # The internal Hash keeps track of some configure-settings and slots
53
- # to be used that are of relevance to this class.
54
- # ======================================================================= #
55
- @internal_hash[:port] = nil # Has to be nil initially.
56
- @internal_hash[:be_verbose] = nil
57
- @internal_hash[:raw_entries] = nil
58
- @internal_hash[:file] = nil
59
- @internal_hash[:transfer_mode] = :binary
60
- @internal_hash[:show_full_names] = false # Is false on startup.
61
- @internal_hash[:debug] = false
62
- # ======================================================================= #
63
- # === :array_available_hosts
64
- # ======================================================================= #
65
- @internal_hash[:array_available_hosts] = []
66
- # ======================================================================= #
67
- # === :padding
68
- # ======================================================================= #
69
- @internal_hash[:padding] = ' ' # This padding value is used for remote directory listing.
70
- # ======================================================================= #
71
- # The following Array keeps track over the files that were uploaded
72
- # successfully. This gives us the possibility to query this from other
73
- # classes.
74
- # ======================================================================= #
75
- @internal_hash[:uploaded_these_files] = []
76
- end
77
-
78
- end; end
@@ -1,18 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/run.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- # ========================================================================= #
12
- # === run (run tag)
13
- # ========================================================================= #
14
- def run
15
- do_connect
16
- end
17
-
18
- end; end
@@ -1,27 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/set_array_available_hosts.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- # ========================================================================= #
12
- # === set_array_available_hosts
13
- #
14
- # Use this method if you wish to define the available hosts. This is
15
- # useful whenever you already have some pre-defined hosts that you wish
16
- # to use.
17
- # ========================================================================= #
18
- def set_array_available_hosts(i = nil)
19
- if Object.const_defined? :RoebeFtpConstants
20
- i = ARRAY_AVAILABLE_HOSTS
21
- else
22
- i = []
23
- end
24
- @internal_hash[:array_available_hosts] = i
25
- end
26
-
27
- end; end
@@ -1,18 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/set_input.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- # ========================================================================= #
12
- # === set_input
13
- # ========================================================================= #
14
- def set_input(i)
15
- @input = i
16
- end
17
-
18
- end; end
@@ -1,153 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/show.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- # ========================================================================= #
12
- # === show_remote_directory_listing
13
- #
14
- # This will simply show the content of a remote directory.
15
- #
16
- # Invocation examples:
17
- #
18
- # show_remote_directory_listing
19
- # show_remote_directory_listing :default, :show_only_directories
20
- #
21
- # ========================================================================= #
22
- def show_remote_directory_listing(
23
- i = list,
24
- array_options = []
25
- )
26
- unless array_options.is_a? Array
27
- array_options = [array_options]
28
- end
29
- case i
30
- when :default
31
- i = list
32
- end
33
- if i.is_a? Array
34
- # ===================================================================== #
35
- # Get rid of '.' and '..'.
36
- # ===================================================================== #
37
- i.reject! {|entry| entry.end_with?('..') or entry.end_with?('.') }
38
- # ===================================================================== #
39
- # First, turn them into entries.
40
- # ===================================================================== #
41
- i.map! {|entry| FtpParadise::Entry.new(entry) }
42
- # ===================================================================== #
43
- # Next, we can use different behaviours.
44
- # ===================================================================== #
45
- if array_options.include? :show_only_directories
46
- i.select! {|entry| entry.is_a_directory? }
47
- end
48
- i.each {|entry| entry.show_the_line }
49
- end
50
- end; alias show_remote_files show_remote_directory_listing # === show_remote_files
51
-
52
- # ========================================================================= #
53
- # === show_full_names?
54
- # ========================================================================= #
55
- def show_full_names?
56
- @internal_hash[:show_full_names]
57
- end
58
-
59
- # ========================================================================= #
60
- # === show_remote_listing
61
- #
62
- # Use this method whenever you want to show the remote entries.
63
- #
64
- # As of June 2016, you can pass in your own dataset into this method
65
- # as well. It must conform to the Array with the four entries, which
66
- # is also returned via the method sanitized_remote_directory_content?.
67
- # ========================================================================= #
68
- def show_remote_listing(
69
- dataset = sanitized_remote_directory_content?,
70
- be_verbose = be_verbose?
71
- )
72
- n_rjust = 10
73
- _ = dataset
74
- if show_full_names?
75
- _.map! {|entry|
76
- filename = entry[0]
77
- entry[0] = remote_pwd?+filename # This is the file size.
78
- entry
79
- }
80
- end
81
- _.each_with_index { |array, index|
82
- if be_verbose # Display only when in verbose mode, which is the default.
83
- file_or_directory = array[1]
84
- name_of_the_file = array.first
85
- # =================================================================== #
86
- # Get a pointer to the filesize as well.
87
- # =================================================================== #
88
- filesize = array[2].to_s.rjust(n_rjust)
89
- if file_or_directory == 'directory'
90
- name_of_the_file << '/' unless name_of_the_file.end_with? '/'
91
- end
92
- # =================================================================== #
93
- # === Put a proper padding to the index
94
- # =================================================================== #
95
- new_index = (index+1).to_s.rjust(_.size.to_s.size)
96
- n_pad = 125
97
- case file_or_directory
98
- when 'directory' # Display for directories.
99
- name_of_the_file = sdir(name_of_the_file)
100
- e (padding?+sdir(new_index+') ')+name_of_the_file).ljust(n_pad)+' '+
101
- filesize
102
- else
103
- e (padding?+sfancy(new_index+') ')+sfancy(name_of_the_file)).ljust(n_pad)+' '+
104
- filesize
105
- end
106
- end
107
- }
108
- end; alias show_file_listing show_remote_listing # === show_file_listing
109
- alias show_remote_file_listing show_remote_listing # === show_remote_file_listing
110
-
111
- # ========================================================================= #
112
- # === show_remote_directories
113
- # ========================================================================= #
114
- def show_remote_directories
115
- show_remote_directory_listing :default, :show_only_directories
116
- end
117
-
118
- # ========================================================================= #
119
- # === show_full_names=
120
- # ========================================================================= #
121
- def show_full_names=(i = true)
122
- @internal_hash[:show_full_names] = i
123
- end; alias show_full_names show_full_names= # === show_full_names
124
-
125
- # ========================================================================= #
126
- # === show_user_and_password
127
- # ========================================================================= #
128
- def show_user_and_password
129
- ljust = 12
130
- e
131
- e ('User-Name: ').ljust(ljust)+sfancy(user_name?.to_s)
132
- e ('Password: ' ).ljust(ljust)+sfancy(password?)
133
- e
134
- end; alias show_user_name_and_password show_user_and_password # === show_user_name_and_password
135
-
136
- # ========================================================================= #
137
- # === show_host_user_name_port_and_password
138
- #
139
- # Inform us about the basic settings.
140
- # ========================================================================= #
141
- def show_host_user_name_port_and_password(
142
- do_use_spacer_around_the_output = true
143
- )
144
- ljust = 15
145
- e if do_use_spacer_around_the_output
146
- e ('Host: ' ).ljust(ljust)+sfancy(host?)
147
- e ('User-Name: ').ljust(ljust)+sfancy(user_name?.to_s)
148
- e ('Port: ' ).ljust(ljust)+sfancy(port?)
149
- e ('Password: ' ).ljust(ljust)+sfancy(password?)
150
- e if do_use_spacer_around_the_output
151
- end
152
-
153
- end; end
@@ -1,24 +0,0 @@
1
- #!/usr/bin/ruby -w
2
- # Encoding: UTF-8
3
- # frozen_string_literal: true
4
- # =========================================================================== #
5
- # require 'ftp_paradise/connection/sync_ftp_object_onto_the_main_namespace.rb'
6
- # =========================================================================== #
7
- module FtpParadise
8
-
9
- class Connection
10
-
11
- require 'ftp_paradise/connection/ftp_object.rb'
12
- require 'ftp_paradise/toplevel_methods/ftp_object.rb'
13
-
14
- # ========================================================================= #
15
- # === sync_ftp_object_onto_the_main_namespace
16
- #
17
- # Invoke this method only after having made sure that ftp_object?
18
- # returns a non-nil object.
19
- # ========================================================================= #
20
- def sync_ftp_object_onto_the_main_namespace
21
- ::FtpParadise.ftp_object = self
22
- end
23
-
24
- end; end