Class: Roebe::Ethernet
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/ethernet.rb
Overview
Constant Summary
collapse
- MAIN_NETWORK_DEVICE =
'eth0'
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === [] ========================================================================= #.
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(i = nil, run_already = true) ⇒ Ethernet
29
30
31
32
33
34
35
36
|
# File 'lib/roebe/classes/ethernet.rb', line 29
def initialize(
i = nil,
run_already = true
)
reset
set_input(i)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
163
164
165
|
# File 'lib/roebe/classes/ethernet.rb', line 163
def self.[](i = '')
self.new(i)
end
|
Instance Method Details
#determine_which_ethernet_controller_is_in_use ⇒ Object
#
determine_which_ethernet_controller_is_in_use
#
73
74
75
76
|
# File 'lib/roebe/classes/ethernet.rb', line 73
def determine_which_ethernet_controller_is_in_use
result_from_lspci = `lspci`
@ethernet_controller_in_use = result_from_lspci.scan(/Ethernet.*/).first
end
|
66
67
68
|
# File 'lib/roebe/classes/ethernet.rb', line 66
def input?
@input
end
|
#main_device? ⇒ Boolean
59
60
61
|
# File 'lib/roebe/classes/ethernet.rb', line 59
def main_device?
MAIN_NETWORK_DEVICE
end
|
81
82
83
84
85
86
87
88
|
# File 'lib/roebe/classes/ethernet.rb', line 81
def report
e 'The following ethernet controller is in use:'
e
e sfancy(' '+@ethernet_controller_in_use)
e
report_the_entries_under_sys_class_net
try_to_report_the_connection_speed
end
|
#report_the_entries_under_sys_class_net ⇒ Object
#
report_the_entries_under_sys_class_net
#
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
|
# File 'lib/roebe/classes/ethernet.rb', line 135
def report_the_entries_under_sys_class_net
_ = '/sys/class/net/'
e 'Next showing the entries under '+sdir(_)+':'
e
Dir[_+'*'].each {|entry|
basename = File.basename(entry)
if basename == 'eth0'
@has_eth0_entry = true
end
e sfancy(' '+entry.ljust(20))+
orange(' (')+
sandybrown(basename)+
orange(')')
}
e
end
|
41
42
43
44
45
|
# File 'lib/roebe/classes/ethernet.rb', line 41
def reset
super()
@ethernet_controller_in_use = nil
@has_eth0_entry = false end
|
155
156
157
158
|
# File 'lib/roebe/classes/ethernet.rb', line 155
def run
determine_which_ethernet_controller_is_in_use
report
end
|
50
51
52
53
54
|
# File 'lib/roebe/classes/ethernet.rb', line 50
def set_input(i = '')
i = i.first if i.is_a? Array
i = i.to_s.dup
@input = i
end
|
#try_to_report_the_connection_speed(what_to_use = :local_filesystem_query) ⇒ Object
#
try_to_report_the_connection_speed
This method will only work if the eth0 entry has been found. In other words, if there is no internet connection then nothing will be reported.
Note that there are several ways to query the network device. We can use ethtool - or simply use a cat operation, such as:
cat /sys/class/net/eth0/speed
Some network interfaces, like bridges, will give an “Invalid argument” error when you cat “/sys/class/net/<interface>/speed”. We will keep this in mind.
#
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
# File 'lib/roebe/classes/ethernet.rb', line 107
def try_to_report_the_connection_speed(
what_to_use = :local_filesystem_query
)
if @has_eth0_entry
case what_to_use
when :ethtool
_ = `ethtool #{MAIN_NETWORK_DEVICE}`.chomp.split(N).grep(/.+Speed: .+$/)
when :local_filesystem_query
_ = File.read('/sys/class/net/'+main_device?+'/speed').strip
else
e 'Not supported ('+what_to_use.to_s+')'
end
_ = _.first if _.is_a? Array
unless _.empty?
unless _.include? 'Mb/s'
_ << ' Mb/s'
end
e 'The connection speed of '+slateblue(MAIN_NETWORK_DEVICE)+' is:'
e
e ' '+sfancy(_.strip)
e
end
end
end
|