class Launchy::Application
Application
is the base class of all the application types that launchy may invoke. It essentially defines the public api of the launchy system.
Every class that inherits from Application
must define:
1. A constructor taking no parameters 2. An instance method ‘open’ taking a string or URI as the first parameter and a hash as the second 3. A class method ‘handles?’ that takes a String and returns true if that class can handle the input.
Attributes
Public Class Methods
Source
# File lib/launchy/application.rb, line 43 def find_executable(bin, *paths) paths = Launchy.path.split(File::PATH_SEPARATOR) if paths.empty? paths.each do |path| file = File.join(path, bin) if File.executable?(file) Launchy.log "#{name} : found executable #{file}" return file end end Launchy.log "#{name} : Unable to find `#{bin}' in #{paths.join(', ')}" nil end
Find the given executable in the available paths
returns the path to the executable or nil if not found
Source
# File lib/launchy/application.rb, line 33 def for_name(name) klass = find_child(:has_name?, name) return klass if klass raise ApplicationNotFoundError, "No application found named '#{name}'" end
Find the application with the given name
returns the Class that has the given name
Source
# File lib/launchy/application.rb, line 23 def handling(uri) klass = find_child(:handles?, uri) return klass if klass raise ApplicationNotFoundError, "No application found to handle '#{uri}'" end
Find the application that handles the given uri.
returns the Class that can handle the uri
Source
# File lib/launchy/application.rb, line 59 def has_name?(qname) qname.to_s.downcase == name.split("::").last.downcase end
Does this class have the given name-like string?
returns true if the class has the given name
Source
# File lib/launchy/application.rb, line 66 def initialize @host_os_family = Launchy::Detect::HostOsFamily.detect @runner = Launchy::Runner.new end
Public Instance Methods
Source
# File lib/launchy/application.rb, line 71 def find_executable(bin, *paths) Application.find_executable(bin, *paths) end
Source
# File lib/launchy/application.rb, line 75 def run(cmd, *args) runner.run(cmd, *args) end