Can anybody tell me how to execute a command (e.g., beep) implemented
in /System/Library/ScriptingAdditions/StandardAdditions.osax from a
Ruby script using the appscript library? What I thought might work was
#! /usr/bin/env ruby -w
require “appscript”
include Appscript
std_adds =
app(’/System/Library/ScriptingAdditions/StandardAdditions.osax’)
std_adds.beep(3)
but it produced the following
/usr/lib/ruby/site_ruby/1.8/_aem/mactypes.rb:92: warning: method
redefined; discarding old desc
AE::MacOSError: #
method launch_application in connect.rb at line 76
method local_app in connect.rb at line 76
method by_path in aem.rb at line 116
method send in appscript.rb at line 47
method connect in appscript.rb at line 47
method reference_by_name in appscript.rb at line 82
method method_missing in appscript.rb at line 522
at top level in untitled document at line 8
Program exited.
Regards, Morton
a workaround for this:
- Execute applescript in shell command
- Execute shell command in ruby
Examle:
Applescript:
tell application "Finder"
delete file "Untitled.rtf"
delete file "untitled2.rtf"
end tell
Ruby:
command = "osascript -e 'tell application "Finder" to delete file
"untitled.rtf"' -e 'tell application "Finder" to delete file
"untitled2.rtf"'"
system (command)
That will execute the string in command inthe shell.
I couldn’t test it but hope it works.
On Aug 17, 2007, at 10:23 PM, Vasil V. wrote:
delete file “Untitled.rtf”
That will execute the string in command inthe shell.
I couldn’t test it but hope it works.
Yeah, I could do that. But it would kind of spoil the fun. As I see
it, the whole idea of the appscript library is make the sort of thing
you suggest unnecessary. The appscript library works pretty good for
replacing the AppleScript I tend to use. I much prefer writing
require "appscript"
include Appscript
finder = app(‘Finder’)
finder.count(finder.desktop, :each => :file) # => 2
finder.disks[its.local_volume.eq(true)].get.size # => 3
to
tell app "Finder"
set onDesk to count desktop's files
set drives to (disks whose local volume is true)
set drives to drives's length
{onDesk, drives}
end tell
I just wish I knew how to access the the standard scripting additions.
Regards, Morton
On 18 Aug, 02:11, Morton G. [email protected] wrote:
Can anybody tell me how to execute a command (e.g., beep) implemented
in /System/Library/ScriptingAdditions/StandardAdditions.osax from a
Ruby script using the appscript library?
Use the osax module bundled with appscript, e.g.:
require ‘osax’
StdAdditions = OSAX.osax
StdAdditions.beep
See the appscript documentation for more info.
HTH
has
On Aug 18, 2007, at 6:10 AM, has wrote:
StdAdditions.beep
See the appscript documentation for more info.
HTH
It does indeed help. Exactly the info I was looking for. Thanks a lot.
Regards, Morton