Class: Roebe::TestOpenssl
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/test_openssl.rb
Overview
Constant Summary
collapse
- OPENSSL_DIR =
#
OPENSSL_DIR
This constant will typically, at the least on a Linux system, point to a directory such as “/etc/ssl”.
#
OpenSSL::X509::DEFAULT_CERT_AREA
- SUCCESS_IMAGE =
'✅'
- FAILURE_IMAGE =
'❌'
- URI_TO_RUBYGEMS =
URI('https://rubygems.or')
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === Roebe::TestOpenssl[] ========================================================================= #.
Instance Method Summary
collapse
Methods inherited from Base
#actions, #append_this_onto_that_file, #append_what_into, #be_silent, #be_verbose?, #beautiful_url, #burlywood, #call_next, #chdir, #cheerful_guy, #cliner, #complex_esystem, #convert_global_env, #copy_directory, #copy_file, #cornflowerblue, #create_directory, #crimson, #current_month?, #current_time?, #current_year?, #cyan, #darkcyan, #darkgreen, #darkkhaki, #darkslateblue, #deeppink, #delete_symlink, #do_not_use_the_base_colours, #do_use_the_base_colours, #e, #ecomment, #editor_to_use?, #efancy, #eimp, #emphasis, #ensure_main_encoding, #ensure_utf_encoding, #eparse, #erev, #esteelblue, #etomato, #ewarn, #exit_program, #firebrick, #get_current_day, #get_current_month, #get_files_and_directories, #get_files_from, #get_german_name_for_this_weekday, #gold, #green, #grey, #hh_mm_ss, #hh_mm_ss_day_month_year, #home_dir?, #home_directory_of_user_x?, #infer_the_namespace, #internal_hash?, #is_a_directory?, #is_a_file?, #is_a_jpg_file?, #is_an_image_file?, #is_archive?, #is_audio_file?, #is_in_studium_dir?, #is_multimedia_file?, #is_on_roebe?, #is_on_windows?, #is_studium_available?, #is_symlink?, #is_this_a_ruby_file?, #is_video_file?, #iso_encoding?, #le, #left_colour, #lightblue, #lightgreen, #lightseagreen, #lightsteelblue, #lime, #limegreen, #localhost_to_data, #log_directory?, #main_encoding?, #mediumorchid, #mediumpurple, #mediumseagreen, #mediumslateblue, #mediumspringgreen, #mediumturquoise, #mkdir_p, #mv, #n_days_in_this_month, #n_pages_in_this_pdf_file?, #namespace?, #no_file_exists_at, #ogrey, #olive, #olivedrab, #open_in_browser, #opne, #opnesystem, #opnn, #orange, #orchid, #orev, #palegoldenrod, #palevioletred, #pink, #powderblue, #programs_dir?, #project_base_dir?, #random_html_colour, #rds, #read_file_in_iso_encoding, #read_file_via_the_default_encoding, #read_lines_via_iso_encoding, #readlines_with_main_encoding, #red, #register_sigint, #remove, #remove_directory, #remove_file, #rename_kde_konsole_tab, #replace_localhost_with_data, #report_pwd, #require_rescue, #reset_the_internal_hash, #return_all_directories_from_this_directory, #return_all_files_from_this_directory, #return_current_directory, #return_dd_mm_yyyy, #return_file_or_directory_of, #return_files_from_pwd, #return_last_part_of_the_current_directory, #return_utc, #rev, #right_arrow?, #right_colour, #roebe_log_directory?, #rosybrown, #royalblue, #ruby_base_directory?, #run_in_background, #run_rcfiles_then_run_ata_via_qdbus, #sandybrown, #sdir, #seagreen, #set_be_verbose, #set_xorg_buffer, #sfancy, #sfile, #show_help, #silent_redirection?, #simp, #simple_esystem, #skyblue, #slateblue, #slategray, #springgreen, #steelblue, #string_italic, #swarn, #symlink, #teal, #temp_dir?, #to_camelcase, #to_counted_hash, #tomato, #touch, #try_to_require_the_beautiful_url_gem, #try_to_require_the_html_template, #try_to_require_the_open_gem, #try_to_require_the_program_information_gem, #try_to_require_the_xorg_buffer, #use_colours?, #verbose_truth, #weekday?, #word_wrap, #write_what_into, #yellow
#append_onto_the_commandline_arguments, #clear_commandline_arguments, #commandline_arguments?, #commandline_arguments_as_string?, #commandline_arguments_without_leading_hyphens?, #first_argument?, #first_argument_without_leading_hyphens?, #has_an_argument_been_passed?, #remove_hyphened_arguments_from_the_commandline_arguments, #return_commandline_arguments_with_leading_hyphens, #second_argument?, #set_commandline_arguments
Constructor Details
#initialize(commandline_arguments = ARGV, run_already = true) ⇒ TestOpenssl
64
65
66
67
68
69
70
71
72
73
|
# File 'lib/roebe/classes/test_openssl.rb', line 64
def initialize(
commandline_arguments = ARGV,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
177
178
179
|
# File 'lib/roebe/classes/test_openssl.rb', line 177
def self.[](i = '')
new(i)
end
|
Instance Method Details
#check_whether_bundler_can_connect_to_rubygems_org ⇒ Object
#
check_whether_bundler_can_connect_to_rubygems_org
#
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
|
# File 'lib/roebe/classes/test_openssl.rb', line 156
def check_whether_bundler_can_connect_to_rubygems_org
host = 'rubygems.org'
begin
_ = Bundler::URI(URI_TO_RUBYGEMS.to_s)
Bundler::Fetcher.new(Bundler::Source::Rubygems::Remote.new(
_
)).send(:connection).request(_)
bundler_status = "success ✅"
rescue => error
bundler_status = "#{swarn('failed')}\n "\
"#{mediumpurple(' Reason was: ')}"\
"#{swarn(error_reason(error))})"
end
e " #{mediumpurple('Bundler connection to')} #{sfancy(host)}: "\
"#{bundler_status}"
e
end
|
#error_reason(i) ⇒ Object
140
141
142
143
144
145
146
147
148
149
150
151
|
# File 'lib/roebe/classes/test_openssl.rb', line 140
def error_reason(i)
case i.message
when /certificate verify failed/
'certificate verification'
when /read server hello A/
'SSL/TLS protocol version mismatch'
when /tlsv1 alert protocol version/
'requested TLS version is too old'
else
i.message
end
end
|
78
79
80
|
# File 'lib/roebe/classes/test_openssl.rb', line 78
def reset
super()
end
|
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
# File 'lib/roebe/classes/test_openssl.rb', line 104
def run
e rev+mediumpurple('This class will try to "')+
lightgreen('test')+
mediumpurple('" openssl on the given computer system next.')
try_to_require_openssl
ruby_version = RUBY_VERSION.dup
ruby_version << "p#{RUBY_PATCHLEVEL}" if defined?(RUBY_PATCHLEVEL)
ruby_version << " (#{RUBY_RELEASE_DATE} revision #{RUBY_REVISION})"
ruby_version << " [#{RUBY_PLATFORM}]"
e
e mediumpurple("The Ruby and OpenSSL environment on "\
"the current computer system is:")
e
e " #{left_colour('Ruby:')} #{right_colour(ruby_version)}"
if defined?(Gem::VERSION)
e " #{left_colour('RubyGems:')} #{right_colour(Gem::VERSION)}"
end
if defined?(Bundler::VERSION)
e " #{left_colour('Bundler:')} #{right_colour(Bundler::VERSION)}"
end
e " #{left_colour('Compiled with:')} #{right_colour(OpenSSL::OPENSSL_VERSION)}"
e " #{left_colour('Loaded version:')} #{right_colour(OpenSSL::OPENSSL_LIBRARY_VERSION)}"
e " #{left_colour('SSL_CERT_FILE:')} #{right_colour(OpenSSL::X509::DEFAULT_CERT_FILE)}"
e " #{left_colour('SSL_CERT_DIR:')} #{right_colour(OpenSSL::X509::DEFAULT_CERT_DIR)}"
e
check_whether_bundler_can_connect_to_rubygems_org
e 'Next we will show the output of: openssl version -a'
ewarn('This has not yet been fully integrated into this class, though.')
e
esystem 'openssl version -a'
e
end
|
#try_to_require_openssl ⇒ Object
#
try_to_require_openssl
#
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/roebe/classes/test_openssl.rb', line 85
def try_to_require_openssl
begin
require 'openssl'
rescue LoadError => exception
pp exception
msg = slateblue(
"Your version of ruby does not have proper support for OpenSSL.\n"+
"Thus, connecting to hosts requiring openssl-support will "\
"not work.\n"+
"You may have to recompile or reinstall ruby with OpenSSL "\
"support, then try again.\n"
)
abort msg
end
end
|