Using StandardAdditions.osax with appscript

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:

  1. Execute applescript in shell command
  2. 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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs