Class: Bcat::Browser
- Inherits:
-
Object
- Object
- Bcat::Browser
- Defined in:
- lib/bcat/browser.rb
Constant Summary collapse
- ENVIRONMENT =
case `uname` when /Darwin/ ; 'Darwin' when /Linux/, /BSD/ ; 'X11' else 'X11' end
- COMMANDS =
browser name -> command mappings
{ 'Darwin' => { 'default' => "open", 'safari' => "open -a Safari", 'firefox' => "open -a Firefox", 'chrome' => "open -a Google\\ Chrome", 'chromium' => "open -a Chromium", 'opera' => "open -a Opera", 'curl' => "curl -s" }, 'X11' => { 'default' => "xdg-open", 'firefox' => "firefox", 'chrome' => "google-chrome", 'chromium' => "chromium", 'mozilla' => "mozilla", 'epiphany' => "epiphany", 'curl' => "curl -s" } }
- ALIASES =
alternative names for browsers
{ 'google-chrome' => 'chrome', 'google chrome' => 'chrome', 'gnome' => 'epiphany' }
Instance Method Summary collapse
- #browser_command(browser = @browser) ⇒ Object
- #command ⇒ Object
-
#initialize(browser, command = ENV['BCAT_COMMAND']) ⇒ Browser
constructor
A new instance of Browser.
- #open(url) ⇒ Object
- #shell_quote(argument) ⇒ Object
Constructor Details
#initialize(browser, command = ENV['BCAT_COMMAND']) ⇒ Browser
Returns a new instance of Browser.
40 41 42 43 |
# File 'lib/bcat/browser.rb', line 40 def initialize(browser, command=ENV['BCAT_COMMAND']) @browser = browser @command = command end |
Instance Method Details
#browser_command(browser = @browser) ⇒ Object
57 58 59 60 61 62 |
# File 'lib/bcat/browser.rb', line 57 def browser_command(browser=@browser) browser ||= 'default' browser = browser.downcase browser = ALIASES[browser] || browser COMMANDS[ENVIRONMENT][browser] end |
#command ⇒ Object
53 54 55 |
# File 'lib/bcat/browser.rb', line 53 def command @command || browser_command end |
#open(url) ⇒ Object
45 46 47 48 49 50 51 |
# File 'lib/bcat/browser.rb', line 45 def open(url) fork do $stdin.close exec "#{command} #{shell_quote(url)}" exit! 128 end end |
#shell_quote(argument) ⇒ Object
64 65 66 |
# File 'lib/bcat/browser.rb', line 64 def shell_quote(argument) '"' + argument.to_s.gsub(/([\\"`$])/) { "\\" + $1 } + '"' end |