rb-appscript

Licence: Freeware
Version 0.5.1 | Release Date: 2008-02-18 | Download

2008-02-18 -- 0.5.1

- fixed bug in Appscript::Application#launch where calling it on an application specified by_pid/by_url/by_aem_app would raise error -1708

- aem by-range specifiers now accept non-reference values (these are expanded to con-based references when packed)

- fixed bug in Appscript::Reference#_send_command method's auto-reconnection code where a re-sent event that fails now raises the correct CommandError (previously re-raised the original 'invalid connection' error)

- fixed bug when packing Fixnums in 64-bit Ruby

- fixed a memory leak in AE.get_app_terminology

- fixed minor bug and improved error reporting in Appscript::Reference#[]

- removed AEMReference::PositionSpecifier's #and, #or, #not methods as these shortcuts are no longer supported

- basic Ruby 1.9 compatibility

2007-12-18 -- 0.5.0 (beta 2)

- OSAX module no longer errors on import in 10.5 if a ScriptingAdditions folder (e.g. ~/Library/ScriptingAdditions) doesn't exist

- added Appscript::Application#is_running? method

- added hfs_path, #hfs_path methods to MacTypes::Alias, MacTypes::FileURL; existing path, #path methods now use CFURL functions to convert between POSIX paths and URLs

- aem/appscript now raises Connect::CantLaunchApplicationError instead of AE::MacOSError if unable to launch an application. Users should update existing code as necessary.

- fixed extconf.rb so that universal binaries build correctly

- built-in help system now uses ASDictionary 0.9.0+ instead of AppscriptHelpAgent. (AppscriptHelpAgent is no longer used as-of rb-appscript 0.5.0 and may be removed if previously installed.)

- #help method now writes messages to stderr instead of stdout

- Appscript::Reference#respond_to? now has identical signature to Object#respond_to? (optional second argument was previously missing)

- fixed bug in AE.convert_long_date_time_to_unix_seconds (used to unpack AEDescs of typeLongDateTime) where it would crash if passed a FixNum instead of a BigNum

- now allow methods that have been added to Object class at runtime (e.g. importing the 'pp' module adds #pretty_print and #pretty_inspect) to be invoked on Appscript::Reference and Appscript::Application instances, assuming that the reference object doesn't already have a property/element/command by the same name. In other words, instances of these classes now behave more or less the same as instances of ordinary subclasses that use bound methods rather than #method_missing to handle incoming messages. Previously, calling (e.g.) #pretty_inspect on an appscript reference would result in a 'property/element/command not found' error.

- improved behaviour of Appscript::Application#AS_new_reference when argument is nil (now returns a new reference to the root application object)

- OSAX::Application initialiser now optionally accepts static terminology 'glue' module as its second argument. This is partly to provide scripts that need to run in 64-bit processes with a workaround for accessing the OSAX module, which can't yet automatically obtain osax terminology under 64-bit (see TODO file).

- added process_exists_for_path?, process_exists_for_pid?, process_exists_for_url?, process_exists_for_desc? class methods to AEM::Application

- deprecated AEM::Application.is_running? (will be removed in 1.0.0); any existing code that uses this method should be updated to use AEM::Application.process_exists_for_path? instead

- fixed minor formatting flaw in generic references' #to_s method

- AEM::Application is now a subclass of AEMReference::Base, allowing aem Codecs instances to pack it

- added AB_export_vcard.rb sample script

2007-08-17 -- 0.4.0 (beta 1)

- renamed the following aem/appscript methods to be consistent with AppleScript:

start -> beginning
starts_with -> begins_with
does_not_start_with -> does_not_begin_with
start_transaction -> begin_transaction

Users should update existing code as necessary.

- aem and appscript no longer accept non-test references as test clauses. Previously, a reference such as 'its.visible' would automatically be expanded to the comparison test 'its.visible.eq(true)' as a convenience. However, this shortcut didn't apply when these non-test references appeared as arguments to the #and and #or logical test methods, which meant that this shortcut behaviour was inconsistent and potentially confusing; therefore it has been removed. Users should update existing code as necessary.

- added AE::AEDesc#send_thread_safe; this is now used by AEM instead of AE::AEDesc.send to allow reply events to be received on non-main threads (note: this is a non-issue in non-threaded processes or in processes that only use Ruby 1.x's green threads within the main native thread, but as the additional overhead isn't noticeable it does no harm to make it the default behaviour anyway).

- added AE::AEDesc#flatten and AE::AEDesc.unflatten for serialising AEDescs

- added support for custom reference roots in AEM and Appscript

- AEM::Application#inspect now displays correct class name when Application class is subclassed

- Appscript::Reference#[] now accepts real references and aem specifiers as by-filter test clauses (previously only accepted GenericReference)

- added note about rubygems to appscript manual; added rubygems support to sample scripts

- aete parser no longer raises error if aete isn't fully parsed (i.e. same as AppleScript) [SI]

- added Appscript::Reference#help

2007-04-10 -- 0.3.1

- 64-bit support in rbae.c [JB]

- Terminology.dump will use 'ascrgdte' event to obtain aetes if AE.get_app_terminology is unavailable

- added TypeUInt16, TypeUInt64 support to Codecs#unpack

- added Codecs#pack_uint16; by default, this packs numbers in range (2**63)..(2**64 - 1) as 64-bit floats (lossy), but clients could override this to pack as TypeUInt64 where supported by OS and applications

- changed timeout for ascrgdte event to 120 sec

- terminology parser no longer errors on zero-length aetes

Version 0.3.0 | Release Date: 2007-04-22 | Download
No changes specified