class Launchy::Application::Browser

The class handling the browser application and all of its schemes

Public Class Methods

handles?(uri) click to toggle source
# File lib/launchy/applications/browser.rb, line 13
def self.handles?(uri)
  return true if schemes.include?(uri.scheme)

  true if File.exist?(uri.path)
end
schemes() click to toggle source
# File lib/launchy/applications/browser.rb, line 9
def self.schemes
  %w[http https ftp file]
end

Public Instance Methods

app_list() click to toggle source

use a call back mechanism to get the right app_list that is decided by the host_os_family class.

# File lib/launchy/applications/browser.rb, line 40
def app_list
  host_os_family.app_list(self)
end
browser_cmdline() click to toggle source

Get the full commandline of what we are going to add the uri to

# File lib/launchy/applications/browser.rb, line 54
def browser_cmdline
  browser_env.each do |p|
    Launchy.log "#{self.class.name} : possibility from BROWSER environment variable : #{p}"
  end
  app_list.each do |p|
    Launchy.log "#{self.class.name} : possibility from app_list : #{p}"
  end

  possibilities = (browser_env + app_list).flatten

  if (browser = possibilities.shift)
    Launchy.log "#{self.class.name} : Using browser value '#{browser}'"
    return browser
  end
  raise Launchy::CommandNotFoundError,
        "Unable to find a browser command. If this is unexpected, #{Launchy.bug_report_message}"
end
browser_env() click to toggle source
# 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.empty? }
  browser_env
end
cmd_and_args(uri, _options = {}) click to toggle source
# File lib/launchy/applications/browser.rb, line 72
def cmd_and_args(uri, _options = {})
  cmd = browser_cmdline.to_s
  args = [uri.to_s]
  cmd.gsub!("%s", args.shift) if cmd.include?("%s")
  [cmd, args]
end
cygwin_app_list() click to toggle source
# File lib/launchy/applications/browser.rb, line 23
def cygwin_app_list
  ['cmd /C start "launchy" /b']
end
darwin_app_list() click to toggle source

hardcode this to open?

# File lib/launchy/applications/browser.rb, line 28
def darwin_app_list
  [find_executable("open")]
end
nix_app_list() click to toggle source
# File lib/launchy/applications/browser.rb, line 32
def nix_app_list
  nix_de = Launchy::Detect::NixDesktopEnvironment.detect
  list   = nix_de.browsers
  list.find_all(&:valid?)
end
open(uri, options = {}) click to toggle source

final assembly of the command and do %s substitution www.catb.org/~esr/BROWSER/index.html

# File lib/launchy/applications/browser.rb, line 81
def open(uri, options = {})
  cmd, args = cmd_and_args(uri, options)
  run(cmd, args)
end
windows_app_list() click to toggle source
# File lib/launchy/applications/browser.rb, line 19
def windows_app_list
  ['start "launchy" /b']
end