Class: Roebe::CreateDesktopFile
- Inherits:
-
Base
show all
- Defined in:
- lib/roebe/classes/create_desktop_file.rb
Overview
Roebe::CreateDesktopFile.new
Constant Summary
collapse
- AUTOSTART_DIRECTORY =
"#{ENV['HOME']}/.config/autostart/"
- DOWNCASE_FILENAME =
true
- PATH_TO_IMG_DIRECTORY =
"#{HOME_DIRECTORY_OF_USER_X}DATA/IMG/"
Constants inherited
from Base
Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE
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 = '', run_already = true) ⇒ CreateDesktopFile
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 44
def initialize(
i = '',
run_already = true
)
reset
set_input(i)
if block_given?
yielded = yield
case yielded
when :mate
set_target_this_desktop_environment :mate
end
end
run if run_already
end
|
Instance Method Details
#add(i = '', append_newline = true) ⇒ Object
190
191
192
193
194
195
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 190
def add(
i = '', append_newline = true
)
@_ << i
@_ << N if append_newline
end
|
#append_everything ⇒ Object
#
append_everything
Use this to assemble the required data.
#
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
176
177
178
179
180
181
182
183
184
185
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 151
def append_everything
@_ << '[Desktop Entry]'+N+N
add ' Encoding=UTF-8'
add ' Type=Application'
add ' Icon='+PATH_TO_IMG_DIRECTORY+'PC/XCHAT_FAVICON.png'
add ' Terminal=false'
add ' Type=Application'
add ' Comment='+@input
add ' GenericName='+@input+'.desktop'
add ' Name='+@input+'.desktop'
add ' Name[en_US]='+@input+'.desktop'
case target_which_desktop_environment? when :gnome
@_ << ' X-GNOME-Autostart-enabled=true'+N when :mate_desktop,
:mate
@_ << ' X-MATE-Autostart-enabled=true'+N end
add ' Hidden=false' add " Exec=#{@input}" @_ << N
end
|
#consider_creating_this_directory(i) ⇒ Object
#
consider_creating_this_directory
#
139
140
141
142
143
144
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 139
def consider_creating_this_directory(i)
unless File.exist? i
opne "#{rev}Creating #{sdir(i)} #{rev}next."
FileUtils.mkdir_p(i)
end
end
|
#do_not_continue ⇒ Object
200
201
202
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 200
def do_not_continue
@continue = false
end
|
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 63
def reset
super()
infer_the_namespace
@continue = true
set_autostart_directory
set_input
@target_this_desktop_environment = :mate_desktop
@_ = ''.dup end
|
#
run (run tag)
General run method.
#
209
210
211
212
213
214
215
216
217
218
219
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 209
def run
if @continue
set_store_where
append_everything
consider_creating_this_directory(
File.dirname(@store_where)
)
opne "#{rev}Now storing into `#{sfile(@store_where)}#{rev}`."
write_what_into(@_, @store_where)
end
end
|
#set_autostart_directory(i = AUTOSTART_DIRECTORY) ⇒ Object
#
set_autostart_directory
This sets the autostart directory, through the ivar @autostart_directory.
#
112
113
114
115
116
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 112
def set_autostart_directory(
i = AUTOSTART_DIRECTORY
)
@autostart_directory = i
end
|
77
78
79
80
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 77
def set_input(i = '')
i = '' if i.nil?
@input = i
end
|
#set_store_where(i = @input+'.desktop') ⇒ Object
#
set_store_where
We need to keep in mind that the input could include directory paths as well as ‘ ’ characters, as part of the command, such as in “konsole –hold –something”. Since we wish to store into a .desktop file, we will avoid ‘ ’ characters; and ‘/’ characters will be rejected altogether.
#
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 91
def set_store_where(
i = @input+'.desktop'
)
name = File.basename(
i
).tr(' ','_').tr('/','_').tr('-','_').
delete('&').strip.squeeze('_').strip
if DOWNCASE_FILENAME
name.downcase!
end
if name.include? '_.'
name.gsub!(/_\./,'.')
end
@store_where = @autostart_directory+name
end
|
#set_target_this_desktop_environment(i) ⇒ Object
#
set_target_this_desktop_environment
#
128
129
130
131
132
133
134
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 128
def set_target_this_desktop_environment(i)
case i
when :mate
i = :mate_desktop
end
@target_this_desktop_environment = i
end
|
#target_which_desktop_environment? ⇒ Boolean
#
target_which_desktop_environment?
#
121
122
123
|
# File 'lib/roebe/classes/create_desktop_file.rb', line 121
def target_which_desktop_environment?
@target_this_desktop_environment
end
|