Class: Launchy::Browser
- Inherits:
-
Application
- Object
- Application
- Launchy::Browser
- Defined in:
- lib/launchy/browser.rb
Class Method Summary collapse
- .desktop_environment_browser_launchers ⇒ Object
- .fallback_browsers ⇒ Object
-
.handle?(*args) ⇒ Boolean
return true if this class can handle the given parameter(s).
- .run(*args) ⇒ Object
Instance Method Summary collapse
-
#browser ⇒ Object
return the full command line path to the browser or nil.
- #desktop_environment_browser_launchers ⇒ Object
- #fallback_browsers ⇒ Object
-
#initialize ⇒ Browser
constructor
A new instance of Browser.
-
#nix_app_list ⇒ Object
Find a list of potential browser applications to run on *nix machines.
-
#visit(url) ⇒ Object
launch the browser at the appointed url.
Methods inherited from Application
#app_list, application_classes, #cygwin_app_list, #darwin_app_list, find_application_class_for, find_executable, #find_executable, inherited, known_os_families, my_os, #my_os, my_os_family, #my_os_family, #nix_desktop_environment, #run, #testing_app_list, #windows_app_list
Constructor Details
#initialize ⇒ Browser
Returns a new instance of Browser.
38 39 40 41 42 |
# File 'lib/launchy/browser.rb', line 38 def initialize @browser = nil @nix_app_list = [] raise "Unable to find browser to launch for os family '#{my_os_family}'." unless browser end |
Class Method Details
.desktop_environment_browser_launchers ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/launchy/browser.rb', line 9 def desktop_environment_browser_launchers @desktop_environment_browser_launchers ||= { :kde => "kfmclient", :gnome => "gnome-open", :xfce => "exo-open", :generic => "htmlview" } end |
.fallback_browsers ⇒ Object
17 18 19 |
# File 'lib/launchy/browser.rb', line 17 def fallback_browsers @fallback_browsers ||= %w[ firefox seamonkey opera mozilla netscape galeon ] end |
.handle?(*args) ⇒ Boolean
return true if this class can handle the given parameter(s)
25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/launchy/browser.rb', line 25 def handle?(*args) begin Launchy.log "#{self.name} : testing if [#{args[0]}] (#{args[0].class}) is a url." uri = URI.parse(args[0]) result = [URI::HTTP, URI::HTTPS, URI::FTP].include?(uri.class) rescue Exception => e # hmm... why does rcov not see that this is executed ? Launchy.log "#{self.name} : not a url, #{e}" return false end end |
Instance Method Details
#browser ⇒ Object
return the full command line path to the browser or nil
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/launchy/browser.rb', line 73 def browser if not @browser then if ENV['LAUNCHY_BROWSER'] and File.exists?(ENV['LAUNCHY_BROWSER']) then Launchy.log "#{self.class.name} : Using LAUNCHY_BROWSER environment variable : #{ENV['LAUNCHY_BROWSER']}" @browser = ENV['LAUNCHY_BROWSER'] elsif ENV['BROWSER'] and File.exists?(ENV['BROWSER']) then Launchy.log "#{self.class.name} : Using BROWSER environment variable : #{ENV['BROWSER']}" @browser = ENV['BROWSER'] elsif app_list.size > 0 then @browser = app_list.first Launchy.log "#{self.class.name} : Using application list : #{@browser}" else msg = "Unable to launch. No Browser application found." Launchy.log "#{self.class.name} : #{msg}" $stderr.puts msg end end return @browser end |
#desktop_environment_browser_launchers ⇒ Object
44 45 46 |
# File 'lib/launchy/browser.rb', line 44 def desktop_environment_browser_launchers self.class.desktop_environment_browser_launchers end |
#fallback_browsers ⇒ Object
48 49 50 |
# File 'lib/launchy/browser.rb', line 48 def fallback_browsers self.class.fallback_browsers end |
#nix_app_list ⇒ Object
Find a list of potential browser applications to run on *nix machines. The order is:
1) What is in ENV['LAUNCHY_BROWSER'] or ENV['BROWSER']
2) xdg-open
3) desktop environment launcher program
4) a list of fallback browsers
58 59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/launchy/browser.rb', line 58 def nix_app_list if @nix_app_list.empty? browser_cmds = ['xdg-open'] browser_cmds << desktop_environment_browser_launchers[nix_desktop_environment] browser_cmds << fallback_browsers browser_cmds.flatten! browser_cmds.delete_if { |b| b.nil? || (b.strip.size == 0) } Launchy.log "#{self.class.name} : Initial *Nix Browser List: #{browser_cmds.join(', ')}" @nix_app_list = browser_cmds.collect { |bin| find_executable(bin) }.find_all { |x| not x.nil? } Launchy.log "#{self.class.name} : Filtered *Nix Browser List: #{@nix_app_list.join(', ')}" end @nix_app_list end |
#visit(url) ⇒ Object
launch the browser at the appointed url
94 95 96 |
# File 'lib/launchy/browser.rb', line 94 def visit(url) run(browser,url) end |