# Ruby appscript 0.1.1 released

**URL:** <https://www.ruby-forum.com/t/ruby-appscript-0-1-1-released/71863>\
**Category:** Ruby\
**Created:** [October 12, 2006, 12:36am UTC](https://www.ruby-forum.com/t/ruby-appscript-0-1-1-released/71863 "2006-10-12T00:36:08Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 12, 2006, 12:36am UTC](https://www.ruby-forum.com/t/ruby-appscript-0-1-1-released/71863/1 "2006-10-12T00:36:08Z")

</div>

Announcing the first public release of Ruby appscript, a high-level,  
user-friendly Apple event bridge that allows you to control scriptable  
Mac OS X applications using ordinary Ruby scripts.

[http://rb-appscript.rubyforge.org/](http://rb-appscript.rubyforge.org/)

Appscript makes Ruby a serious alternative to Apple’s own AppleScript  
language for automating your Mac. Here’s a quick example:

require “appscript”

AS.app(‘TextEdit’).documents.end.make(  
:new =\> :document,  
:with\_properties =\> {:text =\> “Hello World!\n”})

Ruby appscript is a port of the popular Python appscript package  
[http://appscript.sourceforge.net/](http://appscript.sourceforge.net/), so while this initial release may  
lack a little polish in places, it’s based on a mature, well-proven  
architecture that has been developed, tested and refined over several  
years. As a result, rb-appscript 0.1.1 offers a level of power,  
robustness and performance that is already very close to  
py-appscript’s, with further improvements to come.

The rb-appscript package includes additional example scripts,  
documentation and a tutorial, and can be downloaded from:

[http://rubyforge.org/frs/?group\_id=2346](http://rubyforge.org/frs/?group_id=2346)

Forums for discussing rb-appscript are also available. Questions, bug  
reports, suggestions for improvements, etc. will all be very welcome.

Enjoy!

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 12, 2006, 12:52am UTC](https://www.ruby-forum.com/t/ruby-appscript-0-1-1-released/71863/2 "2006-10-12T00:52:20Z")

</div>

On Oct 11, 2006, at 3:35 PM, removed\_email\_address@domain.invalid wrote:

> Appscript makes Ruby a serious alternative to Apple’s own AppleScript  
> language for automating your Mac. Here’s a quick example:
> 
> require “appscript”
> 
> AS.app(‘TextEdit’).documents.end.make(  
> :new =\> :document,  
> :with\_properties =\> {:text =\> “Hello World!\n”})

Could you explain what the differences are with ruby aeosa? Below is  
an example from the website:

require ‘osx/aeosa’  
app = OSX::AEDesc.application “Internet Explorer”  
app.open\_docs “html/INDEX.en.html”  
app.activate  
app.quit\_app

[http://www.fobj.com/rubyaeosa/](http://www.fobj.com/rubyaeosa/)

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 12, 2006, 2:21am UTC](https://www.ruby-forum.com/t/ruby-appscript-0-1-1-released/71863/3 "2006-10-12T02:21:18Z")

</div>

Ryan D. wrote:

> Could you explain what the differences are with ruby aeosa?

Appscript is a much, much higher-level bridge for creating and sending  
Apple events. Constructing complex commands and references in aeosa  
requires a detailed understanding of the low-level Apple Event Manager  
API and lots and lots of grungy code.

For example, just getting the text of the front TextEdit document in  
aeosa involves writing:

require ‘osx/aeosa’

app = OSX::AEDesc.application(“TextEdit”)  
app.ae\_send\_mode = 3

query = OSX::AEDesc.record({  
‘want’ =\> OSX::AEDesc.new(‘type’, ‘prop’),  
‘form’ =\> OSX::AEDesc.new(‘enum’, ‘prop’),  
‘seld’ =\> OSX::AEDesc.new(‘type’, ‘ctxt’),  
‘from’ =\> OSX::AEDesc.record({  
‘want’ =\> OSX::AEDesc.new(‘type’, ‘docu’),  
‘form’ =\> OSX::AEDesc.new(‘enum’, ‘indx’),  
‘seld’ =\> 1,  
‘from’ =\> OSX::AEDesc.null})}).coerce('obj ')

p app.ae\_send(‘core’, ‘getd’, query).coerce(‘reco’).  
to\_rbobj[’----’].to\_rbobj

Pretty hairy stuff (and even after a half-hour’s troubleshooting I  
still couldn’t get it to work correctly for some reason).

With appscript, you just write:

require “appscript”

p AS.app(“TextEdit”).documents[1].text.get

Constructing the application object model query, translating  
human-readable terminology to four-character codes, and packing and  
unpacking Ruby values is all handled automatically, and the whole lot’s  
wrapped up in a very user-friendly OO-like syntax.

HTH

---

<div class="post-metadata">

**Author:** ![unknown](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/u/4bbf92/32.png) [@unknown](https://www.ruby-forum.com/u/unknown)\
**Post date:** [October 18, 2006, 10:38am UTC](https://www.ruby-forum.com/t/ruby-appscript-0-1-1-released/71863/4 "2006-10-18T10:38:53Z")

</div>

rb-appscript-0.1.2 has just been posted:

[http://rubyforge.org/frs/?group\_id=2346&release\_id=7361](http://rubyforge.org/frs/?group_id=2346&release_id=7361)

This release fixes a bug where enumerator values returned by  
applications were being unpacked incorrectly.
