Class: Boom::Platform
- Inherits:
-
Object
- Object
- Boom::Platform
- Defined in:
- lib/boom/platform.rb
Class Method Summary collapse
-
.copy(item) ⇒ Object
Public: copies a given Item’s value to the clipboard.
-
.copy_command ⇒ Object
Public: returns the command used to copy a given Item’s value to the clipboard for the current platform.
-
.cygwin? ⇒ Boolean
Public: tests if currently running on cygwin.
-
.darwin? ⇒ Boolean
Public: tests if currently running on darwin.
-
.edit(json_file) ⇒ Object
Public: opens the JSON file in an editor for you to edit.
-
.open(item) ⇒ Object
Public: opens a given Item’s value in the browser.
-
.open_command ⇒ Object
Public: returns the command used to open a file or URL for the current platform.
-
.windows? ⇒ Boolean
Public: tests if currently running on windows.
Class Method Details
.copy(item) ⇒ Object
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.
86 87 88 89 90 91 92 93 94 95 |
# 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 ⇒ Object
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
72 73 74 75 76 77 78 79 80 |
# File 'lib/boom/platform.rb', line 72 def copy_command if darwin? 'pbcopy' elsif windows? || cygwin? 'clip' else 'xclip -selection clipboard' end end |
.cygwin? ⇒ Boolean
Public: tests if currently running on cygwin.
Returns true if running on Cygwin, else false
16 17 18 |
# File 'lib/boom/platform.rb', line 16 def cygwin? !!(RbConfig::CONFIG['host_os'] =~ /cygwin/) end |
.darwin? ⇒ Boolean
Public: tests if currently running on darwin.
Returns true if running on darwin (MacOS X), else false
23 24 25 |
# File 'lib/boom/platform.rb', line 23 def darwin? !!(RbConfig::CONFIG['host_os'] =~ /darwin/) end |
.edit(json_file) ⇒ Object
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.
103 104 105 106 107 108 109 110 111 112 113 114 115 |
# 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) ⇒ Object
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.
58 59 60 61 62 63 64 65 66 |
# 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 ⇒ Object
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
42 43 44 45 46 47 48 49 50 51 52 |
# 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? ⇒ Boolean
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
32 33 34 |
# File 'lib/boom/platform.rb', line 32 def windows? !!(RbConfig::CONFIG['host_os'] =~ /mswin|mingw/) end |