Class: RBT::Cookbooks::DisplayCookbookDataset

Inherits:
Base show all
Defined in:
lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback_url.rb,
lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb,
lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb

Overview

RBT::Cookbooks::DisplayCookbookDataset

Direct Known Subclasses

Feedback

Defined Under Namespace

Classes: Feedback

Constant Summary collapse

REPLACE_PLUS_WITH_LONG_NAME =
#

REPLACE_PLUS_WITH_LONG_NAME

#
RBT::Action::Cookbooks::SanitizeCookbook
LEFT_PADDING =
#

RBT::Cookbooks::DisplayCookbookDataset::LEFT_PADDING

#
30

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(this_program = ARGV, run_already = true) ⇒ DisplayCookbookDataset

#

initialize

#


36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 36

def initialize(
    this_program = ARGV,
    run_already  = true
  )
  reset # Defined in reset.rb
  set_program(this_program)
  # ======================================================================= #
  # === Handle blocks next
  # ======================================================================= #
  if block_given?
    yielded = yield
    case yielded
    when :do_not_show_md5sum
      set_show_md5sum false
    end
  end
  run if run_already
end

Class Method Details

.e(i = '') ⇒ Object

#

RBT::Cookbooks::DisplayCookbookDataset.e

#


19
20
21
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback_url.rb', line 19

def self.e(i = '')
  puts i
end

.feedback_all(i) ⇒ Object

#

DisplayCookbookDataset.feedback_all

#


406
407
408
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 406

def self.feedback_all(i)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_all(i)
end

.feedback_all_binaries(i) ⇒ Object

#

DisplayCookbookDataset.feedback_all_binaries

Usage:

DisplayCookbookDataset.feedback_all_binaries 'coreutils'
#


416
417
418
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 416

def self.feedback_all_binaries(i)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_all_binaries(i)
end

.feedback_all_libraries(i) ⇒ Object

#

RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_all_libraries

Usage:

DisplayCookbookDataset.feedback_all_binaries 'coreutils'
#


390
391
392
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 390

def self.feedback_all_libraries(i)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_all_libraries(i)
end

.feedback_extra_description(of_this_program) ⇒ Object

#

DisplayCookbookDataset.feedback_extra_description

#


423
424
425
426
427
428
429
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 423

def self.feedback_extra_description(
    of_this_program
  )
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_extra_information(
    of_this_program
  )
end

.feedback_local_base(i) ⇒ Object

#

RBT::Cookbooks::DisplayCookbookDataset.feedback_local_base

#


434
435
436
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 434

def self.feedback_local_base(i)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_base(i)
end

.feedback_local_location(i) ⇒ Object

#

DisplayCookbookDataset.feedback_local_location

#


373
374
375
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 373

def self.feedback_local_location(i)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_local_location(i)
end

.feedback_make_options(i = ARGV) ⇒ Object

#

DisplayCookbookDataset.feedback_make_options

#


380
381
382
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 380

def self.feedback_make_options(i = ARGV)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_make_options(i)
end

.feedback_program_description(i) ⇒ Object

#

DisplayCookbookDataset.feedback_program_description

#


397
398
399
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback.rb', line 397

def self.feedback_program_description(i)
  RBT::Cookbooks::DisplayCookbookDataset::Feedback.feedback_description(i)
end

.feedback_url(i = ARGV) ⇒ Object

#

RBT::Cookbooks::DisplayCookbookDataset.feedback_url

This method will feedback information about the url of a program. Each member inside @remote_urls is a string, and we will report all of them.

#


30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/rbt/cookbooks/display_cookbook_dataset/feedback/feedback_url.rb', line 30

def self.feedback_url(
    i = ARGV
  )
  i = i.first if i.is_a? Array
  Feedback.register(i) unless Feedback.dataset?
  result = nil
  can_be_found_in_this_cookbook = RBT.individual_cookbooks_directory?+i+'.yml'
  cliner {
    print Colours.simp(' => URL for ')+
          Colours.sfancy(i)
    # ===================================================================== #
    # Next, display where it is defined.
    # ===================================================================== #
    unless can_be_found_in_this_cookbook.nil?
      e Colours.simp(' (as defined in ')+
        Colours.sfile(can_be_found_in_this_cookbook)+')'
    end
    e Colours.simp('    points to: ')
    e
    # ===================================================================== #
    # We must ensure to not fill up empty URLs
    # ===================================================================== #
    Feedback.dataset?.remote_urls.each_with_index { |_, index| index += 1
      unless _.empty?
        e Colours.simp('    ('+index.to_s+') '+_)
        result = _
      end
    }; e
  }
  return result
end

Instance Method Details

#dataset?Boolean

#

dataset?

#

Returns:

  • (Boolean)


110
111
112
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 110

def dataset?
  @dataset
end

#determine_dataset(i = program?) ) ⇒ Object

#

determine_dataset

#


103
104
105
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 103

def determine_dataset(i = program?)
  @dataset = action(:SanitizeCookbook, i) { :fast }
end

#display_this_option(i = :short_name) ⇒ Object

#

display_this_option

#


117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 117

def display_this_option(i = :short_name)
  result = ''.dup
  result << case i
  when :prefix
    'Prefix: '
  when :base_dir
    'Base dir: '
  when :short_name,
       :real_short_name
    'Short name: '
  end
  result = result.ljust(30)
  name_of_the_method = "#{i}?"
  result << sfancy(
    @dataset.send(name_of_the_method.to_sym).to_s
  )
  e "#{result}#{rev}"
end

#main_program_entries?Boolean

#

main_program_entries?

Query method over ARRAY_MAIN_PROGRAM_ENTRIES.

#

Returns:

  • (Boolean)


81
82
83
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 81

def main_program_entries?
  self.class.main_program_entries?
end

#program?Boolean

#

program?

#

Returns:

  • (Boolean)


96
97
98
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 96

def program?
  @program
end

#resetObject Also known as: clear

#

reset (reset tag)

#


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
176
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 139

def reset
  super()
  infer_the_namespace
  # ======================================================================= #
  # === :show_md5sum
  # ======================================================================= #
  @internal_hash[:show_md5sum]    = show_md5sum?
  # ======================================================================= #
  # === :this_program
  # ======================================================================= #
  @internal_hash[:this_program]   = nil # Initialize it.
  # ======================================================================= #
  # === :programs_dir
  # ======================================================================= #
  @internal_hash[:programs_dir]   = programs_directory?
  # ======================================================================= #
  # === :base_dir
  # ======================================================================= #
  @internal_hash[:base_dir]       = source_directory? # Keep a reference to "/home/x/src/" or to any other value.
  # ======================================================================= #
  # === :extra_commands
  # ======================================================================= #
  @internal_hash[:extra_commands] = []
  @internal_hash[:found_result]   = false # We have not yet searched, so this defaults to false.
  @internal_hash[:may_we_exit]    = false
  @internal_hash[:wrap_result]    = true # If true then we will wrap the description of a given program.
  # ======================================================================= #
  # === :replace_plus_with_long_name
  #
  # We can replace '+' with 'plus' depending on whether the constant
  # REPLACE_PLUS_WITH_LONG_NAME tells us to do so. The program gtk+
  # is an example for this - it would become "gtkplus". If you do not
  # want to have '+' as directory names under /Programs/, then you
  # can enable this via that constant.
  # ======================================================================= #
  @internal_hash[:replace_plus_with_long_name] = REPLACE_PLUS_WITH_LONG_NAME
  reset_yaml_dataset
end

#reset_yaml_datasetObject

#

reset_yaml_dataset

#


181
182
183
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 181

def reset_yaml_dataset
  @yaml_dataset = {}
end

#runObject

#

run

#


188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 188

def run
  determine_dataset
  opne "#{rev}Displaying information about the "\
       "program #{sfancy(@program)}#{rev}."
  dataset = dataset?
  ljust_value = 30
  # ======================================================================= #
  # Display important values.
  # ======================================================================= #
  display_this_option :prefix; ee rev
  e 'Program path: '.ljust(ljust_value)+sfancy(dataset.program_path?.to_s)+rev
  e 'Dependencies on: '.ljust(ljust_value)+sfancy(dataset.deps_on?.join(',').rstrip.to_s)+rev
  display_this_option :base_dir
  display_this_option :short_name
  display_this_option :real_short_name
  e 'Archive size: '.ljust(ljust_value)+sfancy(dataset.archive_size?.to_s)+rev
  if show_md5sum?
    e 'md5sum: '.ljust(ljust_value)+sfancy(dataset.md5sum?.to_s)+rev
  end
end

#set_program(i) ⇒ Object

#

set_program

#


88
89
90
91
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 88

def set_program(i)
  i = i.first if i.is_a? Array
  @program = i
end

#set_show_md5sum(i) ⇒ Object

#

set_show_md5sum

#


58
59
60
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 58

def set_show_md5sum(i)
  @internal_hash[:show_md5sum] = i
end

#show_md5sum?Boolean

#

show_md5sum?

#

Returns:

  • (Boolean)


65
66
67
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 65

def show_md5sum?
  @internal_hash[:show_md5sum]
end

#use_only_symbols_for_the_main_hash?Boolean

#

use_only_symbols_for_the_main_hash?

#

Returns:

  • (Boolean)


72
73
74
# File 'lib/rbt/cookbooks/display_cookbook_dataset/display_cookbook_dataset.rb', line 72

def use_only_symbols_for_the_main_hash?
  false # Hardcoded for now. We keep only Strings.
end