Class: Launchy::Application::Browser
- Inherits:
-
Launchy::Application
- Object
- Launchy::Application
- Launchy::Application::Browser
- Defined in:
- lib/launchy/applications/browser.rb
Overview
The class handling the browser application and all of its schemes
Instance Attribute Summary
Attributes inherited from Launchy::Application
#host_os_family, #ruby_engine, #runner
Class Method Summary collapse
Instance Method Summary collapse
-
#app_list ⇒ Object
use a call back mechanism to get the right app_list that is decided by the host_os_family class.
-
#browser_cmdline ⇒ Object
Get the full commandline of what we are going to add the uri to.
- #browser_env ⇒ Object
- #cmd_and_args(uri, options = {}) ⇒ Object
- #cygwin_app_list ⇒ Object
- #darwin_app_list ⇒ Object
- #nix_app_list ⇒ Object
-
#open(uri, options = {}) ⇒ Object
final assembly of the command and do %s substitution www.catb.org/~esr/BROWSER/index.html.
- #windows_app_list ⇒ Object
Methods inherited from Launchy::Application
#find_executable, find_executable, handling, #initialize, #run
Methods included from DescendantTracker
#children, #find_child, #inherited
Constructor Details
This class inherits a constructor from Launchy::Application
Class Method Details
.handles?(uri) ⇒ Boolean
10 11 12 13 |
# File 'lib/launchy/applications/browser.rb', line 10 def self.handles?( uri ) return true if schemes.include?( uri.scheme ) return true if File.exist?( uri.path ) end |
.schemes ⇒ Object
6 7 8 |
# File 'lib/launchy/applications/browser.rb', line 6 def self.schemes %w[ http https ftp file ] end |
Instance Method Details
#app_list ⇒ Object
use a call back mechanism to get the right app_list that is decided by the host_os_family class.
40 41 42 |
# File 'lib/launchy/applications/browser.rb', line 40 def app_list host_os_family.app_list( self ) end |
#browser_cmdline ⇒ Object
Get the full commandline of what we are going to add the uri to
53 54 55 56 57 58 59 60 61 |
# File 'lib/launchy/applications/browser.rb', line 53 def browser_cmdline possibilities = (browser_env + app_list).flatten possibilities.each do |p| Launchy.log "#{self.class.name} : possibility : #{p}" end browser = possibilities.shift Launchy.log "#{self.class.name} : Using browser value '#{browser}'" return browser end |
#browser_env ⇒ Object
44 45 46 47 48 49 50 |
# File 'lib/launchy/applications/browser.rb', line 44 def browser_env return [] unless ENV['BROWSER'] browser_env = ENV['BROWSER'].split( File::PATH_SEPARATOR ) browser_env.flatten! browser_env.delete_if { |b| b.nil? || (b.strip.size == 0) } return browser_env end |
#cmd_and_args(uri, options = {}) ⇒ Object
63 64 65 66 67 68 69 70 |
# File 'lib/launchy/applications/browser.rb', line 63 def cmd_and_args( uri, = {} ) cmd = browser_cmdline args = [ uri.to_s ] if cmd =~ /%s/ then cmd.gsub!( /%s/, args.shift ) end return [cmd, args] end |
#cygwin_app_list ⇒ Object
19 20 21 |
# File 'lib/launchy/applications/browser.rb', line 19 def cygwin_app_list [ 'cmd /C start /b' ] end |
#darwin_app_list ⇒ Object
23 24 25 |
# File 'lib/launchy/applications/browser.rb', line 23 def darwin_app_list [ find_executable( "open" ) ] end |
#nix_app_list ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/launchy/applications/browser.rb', line 27 def nix_app_list app_list = %w[ xdg-open ] if nix_de = Launchy::Detect::NixDesktopEnvironment.detect then app_list << nix_de.browser app_list << nix_de.fallback_browsers end app_list.flatten! app_list.delete_if { |b| b.nil? || (b.strip.size == 0) } app_list.collect { |bin| find_executable( bin ) }.find_all { |x| not x.nil? } end |
#open(uri, options = {}) ⇒ Object
final assembly of the command and do %s substitution www.catb.org/~esr/BROWSER/index.html
74 75 76 77 |
# File 'lib/launchy/applications/browser.rb', line 74 def open( uri, = {} ) cmd, args = cmd_and_args( uri, ) run( cmd, args ) end |
#windows_app_list ⇒ Object
15 16 17 |
# File 'lib/launchy/applications/browser.rb', line 15 def windows_app_list [ 'start /b' ] end |