Class: RBT::Cookbooks::FeedbackLicenses

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

Overview

RBT::Cookbooks::FeedbackLicenses

Constant Summary collapse

PADDING_TO_USE =
#

PADDING_TO_USE

#
'25'
TOKEN_LEFT_THEN_PADDING =
#

TOKEN_LEFT_THEN_PADDING

#
'| '
DEFAULT_FILTER_TO_USE =
#

DEFAULT_FILTER_TO_USE

#
'*'

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(filter_for_licenses = DEFAULT_FILTER_TO_USE, run_already = true) ⇒ FeedbackLicenses

#

initialize

Usage example:

FeedbackLicenses.new(filter_for_licenses = DEFAULT_FILTER_TO_USE, run_already = true)

If the filter is * then we will filter for ALL licenses.

#


46
47
48
49
50
51
52
53
54
55
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 46

def initialize(
    filter_for_licenses = DEFAULT_FILTER_TO_USE,
    run_already         = true
  )
  reset
  set_filter_for_licenses(
    filter_for_licenses
  )
  run if run_already
end

Class Method Details

.[](i = ARGV) ⇒ Object

#

RBT::Cookbooks::FeedbackLicenses[]

#


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

def self.[](i = ARGV)
  new(i)
end

Instance Method Details

#feedback_licensesObject

#

feedback_licenses

#


113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 113

def feedback_licenses
  cliner {
    _ = 'known licenses' # Placeholder for now.
    _ = filter? unless filter? == DEFAULT_FILTER_TO_USE
    opne 'Feedback licenses matching search-criteria for'
    opne '`'+sfancy(_.to_s)+rev+'` in alphabetical order next:'
  }
  output_header
  cliner {
    programs = available_programs?
    programs.each { |program|
      @cookbook = action(:SanitizeCookbook, program) { :do_not_run_yet }
      @cookbook.metafind(program)
      license = return_license
      if license.is_a? Array
        license = license.flatten.compact.join(', ') # We want to see it on the same line here.
      end
      next if license == 'unknown'
      program = File.basename(program).delete_suffix('.yml')
      padding_left = '%-25s' % program
      padding_left = steelblue(padding_left).dup
      padding_left.prepend(TOKEN_LEFT_THEN_PADDING)
      padding_right = '%-10s' % license
      full_license_text = "#{padding_left}"\
                          "#{rev}  | #{royalblue(padding_right)}#{rev}"
      if @filter == DEFAULT_FILTER_TO_USE
        e full_license_text
      else # else we assume user wants filtering done
        unless license.to_s.downcase.scan(/#{filter?}/).empty?
          e full_license_text 
        end
      end
    }
  }
end

#filter?Boolean

#

filter?

#

Returns:

  • (Boolean)


106
107
108
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 106

def filter?
  @filter
end

#output_headerObject

#

output_header

#


95
96
97
98
99
100
101
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 95

def output_header
  # ===================================================================== #
  # This is the header content.
  # ===================================================================== #
  e TOKEN_LEFT_THEN_PADDING+('%-25s' % 'Name  ')+
    '  | License                                         |'
end

#resetObject

#

reset

#


60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 60

def reset
  super()
  infer_the_namespace
  # ===================================================================== #
  # === @cookbook
  # ===================================================================== #
  @cookbook = action(:SanitizeCookbook) { :do_not_run_yet }
  # ===================================================================== #
  # === @filter
  # ===================================================================== #
  @filter   = ''.dup # Set the filter to use.
end

#return_licenseObject

#

return_license

#


152
153
154
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 152

def return_license
  @cookbook.license?.to_s
end

#runObject

#

run (run tag)

#


159
160
161
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 159

def run
  feedback_licenses
end

#set_filter_for_licenses(i = DEFAULT_FILTER_TO_USE) ⇒ Object Also known as: filter_for

#

set_filter_for_licenses

#


76
77
78
79
80
81
82
83
# File 'lib/rbt/cookbooks/feedback_licenses.rb', line 76

def set_filter_for_licenses(i = DEFAULT_FILTER_TO_USE)
  i = i.first if i.is_a? Array
  i = DEFAULT_FILTER_TO_USE if i.nil?
  i = DEFAULT_FILTER_TO_USE if i.empty?
  i = i.to_s.dup
  i = i.downcase
  @filter = i
end

#set_which_program(i) ⇒ Object

#

set_which_program

#


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

def set_which_program(i) # Set which program we are seeking.
  @which_program = i
end