Class: RBT::RegisteredTags

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

Overview

RBT::RegisteredTags

Constant Summary

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_arguments, #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_meson_installed?, #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_directory_was_found_at, #no_opn, #no_such_file_exists, #open_in_browser, #open_in_editor, #opncomment, #opne, #opnef, #opnerev, #opnerror, #opnesystem, #opnewarn, #opnfancy, #opnn, #otomato, #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_the_first_commandline_argument, #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_name, #return_program_name_for_gobolinux_systems, #return_program_name_via_program_information, #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, #rpn, #run_simulation=, #run_simulation?, #sdir, #sdir_return_pwd, #set_be_silent, #set_be_verbose, #set_first_commandline_argument, #set_namespace, #set_use_colours, #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_commandline_arguments = ARGV, run_already = true) ⇒ RegisteredTags

#

initialize

#


55
56
57
58
59
60
61
62
63
# File 'lib/rbt/registered/registered_tags.rb', line 55

def initialize(
    optional_commandline_arguments = ARGV,
    run_already                    = true
  )
  super()
  reset
  menu(optional_commandline_arguments) if optional_commandline_arguments
  run if run_already
end

Class Method Details

.[]Object

#

RBT::RegisteredTags[]

#


236
237
238
# File 'lib/rbt/registered/registered_tags.rb', line 236

def self.[]
  new
end

Instance Method Details

#also_storing_intoObject

#

also_storing_into

#


178
179
180
# File 'lib/rbt/registered/registered_tags.rb', line 178

def also_storing_into
  e "#{rev}Also storing into "
end

#available_cookbooks?Boolean

#

available_cookbooks?

#

Returns:

  • (Boolean)


127
128
129
# File 'lib/rbt/registered/registered_tags.rb', line 127

def available_cookbooks?
  RBT.available_programs?
end
#

menu

#


80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/rbt/registered/registered_tags.rb', line 80

def menu(i)
  if i.is_a? Array
    i.each {|entry| menu(entry) }
  else
    case i # case tag
    # ===================================================================== #
    # === registered_tags --help
    # ===================================================================== #
    when /help/i
      show_help(:then_exit)
    end
  end
end

#resetObject

#

reset

#


68
69
70
71
72
73
74
75
# File 'lib/rbt/registered/registered_tags.rb', line 68

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === @hash_available_tags
  # ======================================================================= #
  @hash_available_tags = {}
end

#runObject

#

run

#


192
193
194
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
# File 'lib/rbt/registered/registered_tags.rb', line 192

def run
  available_cookbooks?.each {|program|
    dataset = action(:SanitizeCookbook, program) { :fast }
    tags = dataset.tags?
    if tags
      if tags.empty?
        opne "#{crimson('Notice')}#{rev}: The program `#{sfancy(program)}"\
             "#{rev}` has no registered tags."
      else # else add it to the Hash.
        @hash_available_tags[program] = tags
      end
    else
      opne "#{rev}No tags for `#{sfancy(program.to_s)}#{rev}`."
    end
  }
  # ======================================================================= #
  # Note that at this point, the hash is not correct yet.
  # It will have entries such as:
  #   "thor"=>["ruby"]
  # but it should be the other way around. 
  # ======================================================================= #
  inverted_hash = {}
  tags?.each_pair {|name_of_the_program, value|
    unless value.is_a? Array
      e "#{rev}Must be an Array, but is a "\
        "`#{sfancy(value.class.to_s)}#{rev}`."
      e 'This is not allowed - correct the entry please.'
      e 'Exiting now as a consequence.'
      exit
    end
    value.each {|program_type|
      unless inverted_hash.has_key? program_type
        inverted_hash[program_type] = []
      end
      inverted_hash[program_type] << name_of_the_program 
    }
  }
  set_hash(inverted_hash)
  store_main_hash
end

#set_hash(i) ⇒ Object

#

set_hash

Use this method to set to the main hash.

#


119
120
121
122
# File 'lib/rbt/registered/registered_tags.rb', line 119

def set_hash(i)
  raise 'Must be a hash.' unless i.is_a? Hash
  @hash_available_tags = i
end

#show_help(shall_we_exit_afterwards = false) ⇒ Object

#

show_help

To invoke this method from the commandline, do:

registered_tags --help
#


102
103
104
105
106
107
108
109
110
111
112
# File 'lib/rbt/registered/registered_tags.rb', line 102

def show_help(
    shall_we_exit_afterwards = false
  )
  case shall_we_exit_afterwards
  when :then_exit
    shall_we_exit_afterwards = true
  end
  opne 'This class will simply register all available tags into the file'
  opne "  #{sfile(store_where?)}"
  exit if shall_we_exit_afterwards
end

#store_main_hashObject

#

store_main_hash

Write the hash into a file.

#


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
# File 'lib/rbt/registered/registered_tags.rb', line 143

def store_main_hash
  _ = store_where?
  e sfancy('Storing yaml dataset in ')
  e "  #{sfile(_)}"
  # ======================================================================= #
  # Purge the old file first before adding new data to it.
  # ======================================================================= #
  remove_file(_) if File.exist? _
  tags = tags?
  if tags
    File.open(_,'w+') { |file|
      YAML.dump(tags, file)
    }
  end
  # ======================================================================= #
  # Also store in the right file on my home system.
  #
  #   cat $RSRC/rbt/lib/rbt/yaml/registered_tags.yml
  #
  # ======================================================================= #
  if is_on_roebe?
    _ = RUBY_SRC_DIR_AT_HOME+'rbt/lib/rbt/yaml/'\
        'registered_tags/registered_tags.yml'
    File.delete(_) if File.exist? _
    e 'Also storing into:'
    e "  #{sfile(_)}"
    File.open(_,'w+') { |file|
      YAML.dump(tags?, file)
    }
  end
end

#store_where?Boolean

#

store_where?

#

Returns:

  • (Boolean)


134
135
136
# File 'lib/rbt/registered/registered_tags.rb', line 134

def store_where?
  RBT.file_registered_tags?
end

#tags?Boolean

#

tags?

#

Returns:

  • (Boolean)


185
186
187
# File 'lib/rbt/registered/registered_tags.rb', line 185

def tags?
  @hash_available_tags
end