Class: Roebe::UsbDevices
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/usb/usb_devices.rb
Overview
Constant Summary
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === Roebe::UsbDevices[] ========================================================================= #.
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 = nil, run_already = true) ⇒ UsbDevices
26
27
28
29
30
31
32
33
34
35
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 26
def initialize(
commandline_arguments = nil,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
180
181
182
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 180
def self.[](i = '')
new(i)
end
|
Instance Method Details
#available_usb_devices? ⇒ Boolean
#
available_usb_devices?
#
64
65
66
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 64
def available_usb_devices?
@available_usb_devices
end
|
#determine_available_usb_devices ⇒ Object
#
determine_available_usb_devices
#
71
72
73
74
75
76
77
78
79
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 71
def determine_available_usb_devices
_ = `fdisk -l`.split(N).select {|line|
line.start_with? '/dev/sd'
}.reject {|line|
line.include? '/sda'
}
register_these_entries_as_available_usb_devices(_)
populate_the_main_hash_storing_information_about_external_usb_devices
end
|
#populate_the_main_hash_storing_information_about_external_usb_devices ⇒ Object
#
populate_the_main_hash_storing_information_about_external_usb_devices
#
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 84
def populate_the_main_hash_storing_information_about_external_usb_devices
result = `df -T -ah`.split(N)
available_usb_devices?.flatten.each {|this_usb_device|
splitted1 = this_usb_device.split(' ')
first_entry = splitted1.first
relevant_entry = result.select {|entry|
entry.include?(first_entry)
}
if relevant_entry.is_a? Array
unless relevant_entry.empty?
relevant_entry = relevant_entry.first
end
end
if (splitted1.size == 8) and relevant_entry.empty?
relevant_entry = first_entry
end
splitted = relevant_entry.split(' ')
name_of_the_usb_device = splitted.first
filetype = splitted[1]
storage_space = splitted[2]
occupied = splitted[3]
available = splitted[4]
n_percent_used = splitted[5]
mounted_at = splitted[6]
@hash_storing_information_about_external_usb_devices[name_of_the_usb_device] = {
filetype: filetype,
storage_space: storage_space,
occupied: occupied,
available: available,
n_percent_used: n_percent_used,
mounted_at: mounted_at
}
}
end
|
#register_these_entries_as_available_usb_devices(i) ⇒ Object
#
register_these_entries_as_available_usb_devices
#
56
57
58
59
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 56
def register_these_entries_as_available_usb_devices(i)
@available_usb_devices << i
@available_usb_devices.flatten!
end
|
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 40
def reset
super()
infer_the_namespace
@available_usb_devices = []
@hash_storing_information_about_external_usb_devices = {}
end
|
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
|
# File 'lib/roebe/classes/usb/usb_devices.rb', line 129
def run
determine_available_usb_devices
if @available_usb_devices.empty?
e 'No USB devices appear to be available.'
else
e
e grey('Available USB devices:')
e
@available_usb_devices.each_with_index {|this_device_entry, index| index += 1
padded_index = (index.to_s+') ').rjust(5)
splitted = this_device_entry.split(' ')
name_of_the_device = splitted.first
pointer = @hash_storing_information_about_external_usb_devices[name_of_the_device]
filesize = splitted[4]
n_percent_used = pointer[:n_percent_used]
available = pointer[:available]
filetype = pointer[:filetype]
colourized_filesize_entry = tomato(
('Filesize: '+filesize).ljust(12)
)+teal(
' ('+n_percent_used.to_s+' used; available: '+available.to_s+')'
)
colourized_filesystem_type = grey(' Filesystem: ')+
springgreen(splitted[6])+darkgreen(" (#{filetype})")
mounted_at = pointer[:mounted_at]
padded_name_of_the_device = name_of_the_device.ljust(10)
result = royalblue(padded_index)+
slateblue(padded_name_of_the_device)+
colourized_filesize_entry+
colourized_filesystem_type
if mounted_at
result << grey(' Mounted at: ')+
slateblue("#{mounted_at}/".squeeze('/'))
else
result << crimson('(not mounted)')
end
e result
}
e
end
end
|