class Boom::Platform

Public Class Methods

copy(item) click to toggle source

Public: copies a given Item's value to the clipboard. This method is designed to handle multiple platforms.

Returns the String value of the Item.

# File lib/boom/platform.rb, line 86
def copy(item)
  begin
    IO.popen(copy_command,"w") {|cc|  cc.write(item.value)}
    item.value
  rescue Errno::ENOENT
    puts item.value
    puts "Please install #{copy_command[0..5]} to copy this item to your clipboard"
    exit
  end
end
copy_command() click to toggle source

Public: returns the command used to copy a given Item's value to the clipboard for the current platform.

Returns a String with the bin

# File lib/boom/platform.rb, line 72
def copy_command
  if darwin?
    'pbcopy'
  elsif windows? || cygwin?
    'clip'
  else
    'xclip -selection clipboard'
  end
end
cygwin?() click to toggle source

Public: tests if currently running on cygwin.

Returns true if running on Cygwin, else false

# File lib/boom/platform.rb, line 16
def cygwin?
  !!(RbConfig::CONFIG['host_os'] =~ /cygwin/)
end
darwin?() click to toggle source

Public: tests if currently running on darwin.

Returns true if running on darwin (MacOS X), else false

# File lib/boom/platform.rb, line 23
def darwin?
  !!(RbConfig::CONFIG['host_os'] =~ /darwin/)
end
edit(json_file) click to toggle source

Public: opens the JSON file in an editor for you to edit. Uses the $EDITOR environment variable, or %EDITOR% on Windows for editing. This method is designed to handle multiple platforms. If $EDITOR is nil, try to open using the open_command.

Returns a String with a helpful message.

# File lib/boom/platform.rb, line 103
def edit(json_file)
  unless ENV['EDITOR'].nil?
    unless windows?
      system("`echo $EDITOR` #{json_file} &")
    else
      system("start %EDITOR% #{json_file}")
    end
  else
    system("#{open_command} #{json_file}")
  end

  "Make your edits, and do be sure to save."
end
open(item) click to toggle source

Public: opens a given Item's value in the browser. This method is designed to handle multiple platforms.

Returns a String of the Item value.

# File lib/boom/platform.rb, line 58
def open(item)
  unless windows?
    system("#{open_command} '#{item.url.gsub("\'","'\\\\''")}'")
  else
    system("#{open_command} #{item.url.gsub("\'","'\\\\''")}")
  end

  item.value
end
open_command() click to toggle source

Public: returns the command used to open a file or URL for the current platform.

Currently only supports MacOS X and Linux with `xdg-open`.

Returns a String with the bin

# File lib/boom/platform.rb, line 42
def open_command
  if darwin?
    'open'
  elsif windows?
    'start'
  elsif cygwin?
    'cygstart'
  else
    'xdg-open'
  end
end
windows?() click to toggle source

Public: tests if currently running on windows.

Apparently Windows RUBY_PLATFORM can be 'win32' or 'mingw32'

Returns true if running on windows (win32/mingw32), else false

# File lib/boom/platform.rb, line 32
def windows?
  !!(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/)
end