Class: Roebe::OutputUrlThenOpenInBrowser

Inherits:
Browser show all
Defined in:
lib/roebe/browser/output_url_then_open_in_browser.rb

Overview

Roebe::OutputUrlThenOpenInBrowser

Constant Summary

Constants inherited from Browser

Browser::FILE_BROWSER, Browser::MENU, Browser::NAMESPACE

Constants inherited from Base

Base::COLOURS, Base::HOME_DIRECTORY_OF_USER_X, Base::N, Base::NAMESPACE

Instance Method Summary collapse

Methods inherited from Browser

[], #considering_opening_this_remote_url, e, #generate_tab_completions, #menu, #permanently_use_this_browser, permanently_use_this_browser, #return_remote_homepage_of_this_lecture, return_remote_homepage_of_this_lecture, rev, #set_name, #set_path_to_the_browser, #set_use_this_url, sfile, #show_help, #show_which_browser_is_in_use, #use_this_url?

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

Methods included from Base::CommandlineArguments

#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 = nil, run_already = true) ⇒ OutputUrlThenOpenInBrowser

#

initialize

#


44
45
46
47
48
49
50
51
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 44

def initialize(
    i           = nil,
    run_already = true
  )
  reset
  set_input(i)
  run if run_already
end

Instance Method Details

#input?Boolean

#

input?

#

Returns:

  • (Boolean)


87
88
89
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 87

def input?
  @input
end

#resetObject

#

reset

#


56
57
58
59
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 56

def reset
  super()
  infer_the_namespace
end

#runObject

#

run (run tag)

#


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
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
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 114

def run
  try_to_require_the_rbt_url_class
  try_to_require_the_rbt_registered_binaries_functionality
  # ======================================================================= #
  # Next, we work on a copy of the input. That way we can also query
  # whether the program is registered, via RBT. We can also query
  # whether a binary exists with that name, should the input NOT be
  # registered.
  # ======================================================================= #
  use_this_as_input = input?
  unless RBT.is_a_registered_program?(use_this_as_input)
    # ===================================================================== #
    # This clause is entered when the program is NOT registered as part
    # of RBT but instead the name is the same as one of the registered
    # binaries.
    # ===================================================================== #
    if RBT.registered_binaries?.include?(use_this_as_input)
      # =================================================================== #
      # In that case, "re-write" the original input.
      # =================================================================== #
      begin
        require 'rbt/actions/actions.rb'
        replacement = RBT.action(:map_this_input_to_that_registered_program, use_this_as_input)
      rescue LoadError; end
      orev "No program called #{steelblue(use_this_as_input)} was found."
      orev 'However had, a binary with that name was found,'
      orev "belonging to #{royalblue(replacement)}#{rev}, which will next "\
           "be used"
      orev 'as input.'
      use_this_as_input = replacement
    else # else try for a replacement still
      possible_replacement = RBT.action(:map_this_input_to_that_registered_program, use_this_as_input)
      unless possible_replacement == use_this_as_input
        use_this_as_input = possible_replacement
        orev "Will be using the name #{steelblue(use_this_as_input)}#{rev} "\
             "instead."
      end
    end
  end
  if Object.const_defined?(:RBT) and RBT.const_defined?(:Cookbooks) and
     RBT::Cookbooks.const_defined?(:Url)
    # ===================================================================== #
    # Simply show the URLs next, via class RBT::Cookbooks::Url
    # ===================================================================== #
    RBT::Cookbooks::Url.new(use_this_as_input) {
      :show_the_homepage_as_well_and_the_git_URL_should_it_exist
    } # (1)
    # e burl.url? # No longer necessary. Was tagged to the above before.
    # XorgBuffer.set_xorg_buffer(burl.url2?) # Set the buffer here.
    if Object.const_defined? :Open
      Open.last_url(:be_quiet) # (2)
    else
      e 'OpenLastUrl does not appear to be available.'
    end
  else
    opne "#{rev}The class #{steelblue('RBT::Cookbooks::Url')}"\
         "#{rev} is not available."
  end
end

#set_input(i = N) ⇒ Object

#

set_input

#


64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 64

def set_input(
    i = N
  )
  i = i.first if i.is_a? Array # For now, only use first argument.
  case i
  when nil
    # ===================================================================== #
    # In this case we will use the current working directory as input.
    # ===================================================================== #
    i = File.basename(return_pwd)
  end
  if i
    i = i.dup if i.frozen?
    if i.include?('-')
      i.delete!('-')
    end
  end
  @input = i
end

#try_to_require_the_rbt_registered_binaries_functionalityObject

#

try_to_require_the_rbt_registered_binaries_functionality

#


105
106
107
108
109
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 105

def try_to_require_the_rbt_registered_binaries_functionality
  begin
    require 'rbt/registered/registered_binaries.rb'
  rescue LoadError; end
end

#try_to_require_the_rbt_url_classObject

#

try_to_require_the_rbt_url_class

This method will try to require the url.rb file from the RBT project.

#


96
97
98
99
100
# File 'lib/roebe/browser/output_url_then_open_in_browser.rb', line 96

def try_to_require_the_rbt_url_class
  begin
    require 'rbt/cookbooks/url/url.rb'
  rescue LoadError; end
end