Class: RBT::Prefix

Inherits:
Base show all
Defined in:
lib/rbt/prefix/prefix.rb

Overview

RBT::Prefix

Constant Summary collapse

USR_PREFIX =
#

USR_PREFIX

#
'/usr/'
DEFAULT_PREFIX =

This is the default prefix.

USR_PREFIX

Constants inherited from LeanPrototype

LeanPrototype::ALL_COLOUR_METHODS, LeanPrototype::ARRAY_KDE_KONSOLE_COLOURS_IN_USE, LeanPrototype::DAY_NAMES, LeanPrototype::NAMESPACE, LeanPrototype::SILENT_REDIRECTION

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#cat, #cd_back_to_the_current_working_directory, #consider_reporting_how_many_programs_are_registered, #cookbook_files?, #copy_recursively, #delete_code_of_conduct?, #determine_appdir_prefix_from_this_input, #directory_validation?, #do_not_show_names, #fast_return_file_size_of_this_program, #file_last_symlinked_program?, #file_programs_version_url, #gem_version, #is_a_64bit_system?, #is_ccache_available?, #is_porg_available?, #is_this_binary_registered?, #is_this_program_included?, #make_command?, #make_install_command?, #new_cookbook_instance_for, #program_exists?, #publish_list_of_all_programs_version, #rcp, registered_binaries?, #remove_symlink, #rename_kde_konsole_tab, #repackage, #report_n_programs, #report_working_directory, #return_compile_time_statistics, #return_n_random_characters, #return_version_of_this_program, #run_make_then_make_install, #sanitize_url1_entry, #set_source_directory, #show_overview_over_available_utility_scripts, #symlink_all_files_from_this_directory_to_that_directory, #system_tags?, #upload_list_of_all_programs_version, #use_yaml_database_for_tags?, #warn_and_exit, #wget

Methods inherited from LeanPrototype

#a_or_an?, #abbreviations?, #absolute_path, #action, #add_to_the_commandline_arguments, #all_binaries?, #all_files_from, #all_libraries?, #allowed_cookbook_entries?, #appdir_location_of?, #append_onto_the_internal_hash, #append_what_into, #archive_type_of?, #available_programs?, #be_quiet?, #be_verbose?, #begins_with_a_comment?, #capitalize_first_alphabetical_character, #cd_to_the_log_directory, #cd_to_the_temp_directory, #change_directory, #change_permission, #cheering_person?, #chmod, #chop_off_archive, #clear_commandline_options, #cliner, #coloured_and_padded_e, #coloured_and_padded_esystem, #coloured_esystem, #colourize_directory_for_system_results, #colourize_this_error, #colourize_this_file_path, #colourize_this_warning, #commandline_arguments?, #commandline_arguments_without_hyphens?, #comment, #convert_dd_mm_yyyy_to_its_long_variant, #convert_env_variable, #copy_directory, #copy_files, #cpr, #create_directory, #current_hour?, #dd_mmm_yyy, #debug, #debug?, #directory_expanded_cookbooks?, #disable_colours, #display_md5sum?, #do_not_debug, #does_the_cookbook_include_this_program?, #does_this_expanded_cookbook_file_exist_for_this_program?, #does_this_file_exist?, #does_this_file_exist_and_is_it_a_file?, #e, #eblue, #ecomment, #ecrimson, #edir, #editor?, #efancy, #eimp, #enable_colours, #enable_debug, #ensure_main_encoding_for, #eparse, #esystem, #esystem_gold, #etomato, #ewarn, #exit_program, #expanded_cookbooks_directory_exists?, #extract_this_archive, #extract_to?, #file_compiled_programs?, #file_dirname_retaining_trailing_slash, #file_predefined_installation_instructions?, #file_specification_of_registered_cookbook_entries, #find_cookbook_alias_for, #find_this_yaml_file, #first_argument?, #first_non_hyphen_argument?, #get_all_directories_from, #get_all_files_from, #get_all_programs, #get_date, #get_extended_date, #get_files_and_directories_from, #go_to_base_dir, #home_dir?, #host_system?, #infer_the_namespace, #internal_hash?, #internal_hash_set_commandline_arguments, #is_an_archive?, #is_directory?, #is_file?, #is_github_url?, #is_make_available?, #is_on_gobolinux?, #is_on_windows?, #is_roebe?, #is_superuser?, #is_symlink?, #is_this_a_header?, #is_this_a_library?, #is_this_program_included?, #iso_encoding?, #load_dataset_from_this_expanded_cookbook, #load_yaml, #load_yaml_file_from_the_cookbook_directory_for_this_program, #log_directory?, #main_encoding?, #meson_build_file_exists?, #months?, #move_file, #n_programs_are_available?, #n_programs_available?, #namespace?, #no_directory_exists_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #packages_directory?, #path_to_this_expanded_cookbooks_dataset, #pkgconfig_directory?, #populate_the_internal_hash_with_default_values, #predefined_installation_instructions?, #prepend_this_commandline_argument, #program_version_of?, #project_base_directory?, #project_yaml_directory?, #query_path?, #rarrow?, #read_file, #read_file_in_default_encoding, #read_file_with_default_encoding, #readlines, #readlines_with_proper_encoding, #register_sigint, #registered_cookbook_entries?, #remove, #remove_archive_from_the_end, #remove_comments_from_each_line, #remove_directory, #remove_double_slashes, #remove_file, #remove_newlines, #remove_parens, #remove_symlink, #remove_this_commandline_argument, #remove_this_entry_from_the_commandline_arguments, #remove_trailing_ANSII_escape_code, #remove_unnecessary_data_from_url, #rename, #report_pwd, #require_the_rbt_aliases, #reset_the_internal_hash, #return_all_archives_from_this_directory, #return_appdir_prefix, #return_commandline_arguments_with_leading_hyphens, #return_current_hour_minutes_second, #return_date, #return_day_of_the_month_based_on_utc, #return_full_time, #return_hours_minutes_seconds_based_on_utc, #return_location_to_this_programs_yaml_file, #return_month_based_on_this_number, #return_month_based_on_utc, #return_opnn, #return_program_information, #return_program_name_for_gobolinux_systems, #return_pwd, #return_unicode_warning_symbol_or_empty_string, #return_utc, #return_utc_time_in_a_format_similar_to_slackware, #return_weekday_based_on_utc, #return_year_based_on_utc, #rev, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_opn, #set_xorg_buffer, #sfancy, #sfile, #silent_redirection?, #silently_create_this_directory_if_it_does_not_yet_exist, #simp, #source_base_directory?, #ssym, #stderr, #store_into_this_directory?, #string_right_arrow?, #swarn, #symlink, #sysbin_directory?, #sysetc_directory?, #sysinclude_directory?, #syslib_directory?, #sysshare_directory?, #system_directory?, #temp_directory?, #to_bool, #to_camelcase, #to_iso_encoding, #to_unicode, #today?, #touch, #try_to_require_beautiful_url, #try_to_require_the_environment_information_gem, #try_to_require_the_extracter_gem, #try_to_require_the_open_gem, #try_to_require_the_xorg_buffer, #try_to_require_wget, #try_to_return_a_special_compile_component, #unicode_cliner, #unicode_middle_cliner, #use_colours=, #use_colours?, #use_opn=, #use_opn?, #utf_encoding?, #verbose_truth, #word_wrap, #write_what_into, #write_what_into_via_unicode, #yes_or_no

Constructor Details

#initialize(optional_use_this_program_name = nil, run_already = true) ⇒ Prefix

#

initialize

#


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/rbt/prefix/prefix.rb', line 40

def initialize(
    optional_use_this_program_name = nil,
    run_already                    = true
  )
  reset # Must always come first.
  if optional_use_this_program_name
    set_original_input(optional_use_this_program_name)
    set_program(optional_use_this_program_name)
  end
  if block_given?
    yielded = yield
    case yielded
    # === :ntrad
    when :ntrad
      set_prefix(:ntrad)
    else
      run if run_already
    end
  else
    run if run_already
  end
end

Class Method Details

.prefix?(i = nil) ⇒ Boolean

#

RBT::Prefix.prefix?

#

Returns:

  • (Boolean)


366
367
368
369
# File 'lib/rbt/prefix/prefix.rb', line 366

def self.prefix?(i = nil)
  _ = RBT::Prefix.new(i)
  _.prefix? # Return value.
end

Instance Method Details

#<<(i) ⇒ Object

#

<<

#


289
290
291
# File 'lib/rbt/prefix/prefix.rb', line 289

def <<(i)
  @internal_hash[:prefix] << i
end

#_Boolean

#

prefix?

This query-method will output the prefix to use.

#

_

Returns:

  • (Boolean)


301
302
303
# File 'lib/rbt/prefix/prefix.rb', line 301

def prefix?
  @internal_hash[:prefix].to_s
end

#assign_prefix(i) ⇒ Object Also known as: assign_prefix=, use_this_prefix, set_use_this_prefix

#

assign_prefix

Simply assign the prefix, without any further checking.

#


261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
# File 'lib/rbt/prefix/prefix.rb', line 261

def assign_prefix(i)
  case i
  # ======================================================================= #
  # === :default
  # ======================================================================= #
  when :default,
       :default_prefix,
       nil
    i = DEFAULT_PREFIX
  end
  i = i.dup if i.frozen?
  i.strip!
  i << '/' unless i.end_with? '/'
  @internal_hash[:prefix] = i
end

#clear_programObject

#

clear_program

#


173
174
175
# File 'lib/rbt/prefix/prefix.rb', line 173

def clear_program
  @internal_hash[:program]
end

#do_we_want_to_use_an_appdir_prefix?Boolean

#

do_we_want_to_use_an_appdir_prefix?

#

Returns:

  • (Boolean)


87
88
89
# File 'lib/rbt/prefix/prefix.rb', line 87

def do_we_want_to_use_an_appdir_prefix?
  @do_we_want_to_use_an_appdir_prefix
end

#eliminate_hyphensObject

#

eliminate_hyphens

#


180
181
182
183
# File 'lib/rbt/prefix/prefix.rb', line 180

def eliminate_hyphens
  program?.delete!('-')
  use_non_traditional_prefix # Also sync towards @internal_hash[:prefix] here.
end

#empty?Boolean

#

empty?

#

Returns:

  • (Boolean)


108
109
110
# File 'lib/rbt/prefix/prefix.rb', line 108

def empty?
  @internal_hash[:prefix].empty?
end

#end_with?(i) ⇒ Boolean

#

end_with?

Determine whether our prefix ends with a specific string.

#

Returns:

  • (Boolean)


124
125
126
# File 'lib/rbt/prefix/prefix.rb', line 124

def end_with?(i)
  @internal_hash[:prefix].end_with? i
end

#include?(i) ⇒ Boolean

#

include?

Use this to query whether we include a string.

#

Returns:

  • (Boolean)


133
134
135
# File 'lib/rbt/prefix/prefix.rb', line 133

def include?(i)
  @internal_hash[:prefix].include? i
end

#is_an_appdir_prefix?Boolean Also known as: makes_use_of_an_appdir_prefix?, appdir?

#

is_an_appdir_prefix?

#

Returns:

  • (Boolean)


309
310
311
# File 'lib/rbt/prefix/prefix.rb', line 309

def is_an_appdir_prefix?
  prefix?.start_with?(program_directory?)
end

#prefix?Boolean

#

prefix?

This query-method will output the prefix to use.

#

Returns:

  • (Boolean)


298
299
300
# File 'lib/rbt/prefix/prefix.rb', line 298

def prefix?
  @internal_hash[:prefix].to_s
end

#program?Boolean

#

program?

#

Returns:

  • (Boolean)


166
167
168
# File 'lib/rbt/prefix/prefix.rb', line 166

def program?
  @internal_hash[:program]
end

#program_name_and_program_version?Boolean

#

program_name_and_program_version?

#

Returns:

  • (Boolean)


242
243
244
# File 'lib/rbt/prefix/prefix.rb', line 242

def program_name_and_program_version?
  "#{program?}-#{@program_version}"
end

#queryBoolean

#

prefix?

This query-method will output the prefix to use.

#

query

Returns:

  • (Boolean)


300
301
302
# File 'lib/rbt/prefix/prefix.rb', line 300

def prefix?
  @internal_hash[:prefix].to_s
end

#resetObject

#

reset

#


66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/rbt/prefix/prefix.rb', line 66

def reset
  super()
  # ======================================================================= #
  # === :prefix
  # ======================================================================= #
  set_prefix(nil) # nil initially. This is our prefix variable.
  set_program
  set_be_quiet
  set_program_version
  # ======================================================================= #
  # === @do_we_want_to_use_an_appdir_prefix
  #
  # We want to be able to store here whether an AppDir prefix is to
  # be used.
  # ======================================================================= #
  @do_we_want_to_use_an_appdir_prefix = false
end

#return_non_traditional_prefix(i = program_name_and_program_version? ) ⇒ Object Also known as: do_use_appdir_prefix_from_this_input

#

return_non_traditional_prefix

This method will return a proper non-traditional prefix.

#


334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
# File 'lib/rbt/prefix/prefix.rb', line 334

def return_non_traditional_prefix(
    i = program_name_and_program_version?
  )
  program_information = ::ProgramInformation::ProgramInformation.new(
    i,
    true,
    be_verbose?
  ) # bl $RUBY_COOKBOOKS/lib/cookbooks/program_information.rb
  name    = program_information.name.to_s.capitalize.delete('-_').capitalize
  version = program_information.version
  i = "#{programs_dir?}#{name}/#{version}/".dup # This has the version name
  # ======================================================================= #
  # Ensure that it will always have a trailing '/' token.
  # ======================================================================= #
  i << '/' unless i.end_with? '/'
  # ======================================================================= #
  # As of May 2014 we get rid of all '-'.
  # ======================================================================= #
  i.delete!('-') if i.include? '-'
  return i # This here should usually return a string like "/Programs/Htop/1.1.0"
end

#runObject

#

run (run tag)

#


359
360
361
# File 'lib/rbt/prefix/prefix.rb', line 359

def run
  set_prefix
end

#set_original_input(i) ⇒ Object

#

set_original_input

#


115
116
117
# File 'lib/rbt/prefix/prefix.rb', line 115

def set_original_input(i)
  @internal_hash[:original_input] = i.to_s.dup
end

#set_prefix(i = program? ) ⇒ Object Also known as: prefix=, rebuild_prefix, update, set_new_prefix, use_this_as_the_new_prefix=

#

set_prefix

This methods assigns to the instance variable @internal_hash which keeps the prefix in use. The prefix instance variable is stored in the variable @internal_hash.

Input should include the version, i.e. “htop-1.0” would be a proper input.

#


195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# File 'lib/rbt/prefix/prefix.rb', line 195

def set_prefix(
    i = program?
  )
  case i.to_s # case tag
  # ======================================================================= #
  # === gobolinux
  #
  # This entry point essentially means "make use of an AppDir-like prefix.
  # ======================================================================= #
  when 'gobolinux',
       'gobolinux_prefix',
       'ntrad',
       'false',
       'default',
       'app_dir_like',
       /^app(_|-)?dir/
    we_will_use_an_appdir_prefix
    i = return_non_traditional_prefix(
      program_name_and_program_version?
    ).to_s # defined in this file here.
    # ===================================================================== #
    # As of May 2014 we get rid of all '-'
    # ===================================================================== #
    i.delete!('-') if i.include?('-')
  # ======================================================================= #
  # === true
  # ======================================================================= #
  when 'true',
       't',
       'trad',
       'traditional',
       'tra',
       'def' # True means "usr" prefix.
    i = USR_PREFIX
  else # Else default to USR_PREFIX.
    # i = USR_PREFIX
  end
  assign_prefix(i) if i # Now, simply assign it here.
end

#set_program(i = nil) ⇒ Object Also known as: assign

#

set_program

Use this method to set the instance variable @internal_hash.

It shall be kept like that. The input can contain a ‘-’.

#


144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
# File 'lib/rbt/prefix/prefix.rb', line 144

def set_program(i = nil)
  case i
  # ======================================================================= #
  # === :traditional
  # ======================================================================= #
  when :traditional,
       :trad
    set_prefix(i)
    i = nil
  # ======================================================================= #
  # === :nontrad
  # ======================================================================= #
  when :nontrad,
       :ntrad
    we_will_use_an_appdir_prefix
  end
  @internal_hash[:program] = i # Can contain something like htop.
end

#set_program_version(i = '1.0.0') ⇒ Object

#

set_program_version

#


317
318
319
# File 'lib/rbt/prefix/prefix.rb', line 317

def set_program_version(i = '1.0.0')
  @program_version = i
end

#strip!Object

#

strip!

#


282
283
284
# File 'lib/rbt/prefix/prefix.rb', line 282

def strip!
  @internal_hash[:prefix].strip!
end

#sub!(old, new) ⇒ Object

#

sub!

#


101
102
103
# File 'lib/rbt/prefix/prefix.rb', line 101

def sub!(old, new)
  @internal_hash[:prefix].sub!(old, new)
end

#text?Boolean

#

prefix?

This query-method will output the prefix to use.

#

text?

Returns:

  • (Boolean)


302
303
304
# File 'lib/rbt/prefix/prefix.rb', line 302

def prefix?
  @internal_hash[:prefix].to_s
end

#to_sBoolean

#

prefix?

This query-method will output the prefix to use.

#

to_s

Returns:

  • (Boolean)


303
304
305
# File 'lib/rbt/prefix/prefix.rb', line 303

def prefix?
  @internal_hash[:prefix].to_s
end

#use_appdir_prefix_for_this_program(i) ⇒ Object

#

use_appdir_prefix_for_this_program

#


324
325
326
327
# File 'lib/rbt/prefix/prefix.rb', line 324

def use_appdir_prefix_for_this_program(i)
  set_program(i)
  set_prefix(:ntrad)
end

#use_non_traditional_prefixObject Also known as: gobolinux_prefix, enable_non_traditional_compilation

#

use_non_traditional_prefix

This method will assign to a non-traditional (gobolinux) prefix.

#


251
252
253
# File 'lib/rbt/prefix/prefix.rb', line 251

def use_non_traditional_prefix
  set_prefix(:gobolinux)
end

#we_will_use_an_appdir_prefixObject Also known as: do_use_appdir_prefix

#

we_will_use_an_appdir_prefix

#


94
95
96
# File 'lib/rbt/prefix/prefix.rb', line 94

def we_will_use_an_appdir_prefix
  @do_we_want_to_use_an_appdir_prefix = true
end