Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Ruby > [MacOS X] RubyAEOSA and Address Book

Reply
Thread Tools

[MacOS X] RubyAEOSA and Address Book

 
 
Une bévue
Guest
Posts: n/a
 
      12-27-2005
i'm trying RubyAEOSA with Address Book, it works great and much more
faster than AppleScript

actually i get 12 s to get the result with AppleSCript and only 0.868 s
with RubyAEOSA script (not finished yet)

however i have a syntax prob using Address Book.

the prob comes only when attempting to retrieve attributes related to
address.

if in RubyAEOSA i write :

set al to label of every address of every person

that's ok, i'm able to retrieve the label of the address howver, when
adding :

set as to street of every address of every person

i get an error :

[0m~/work/Ruby/rubyaeosa-0.2.3/sample> ./AddressBook2vCardXml.rb
/opt/local/lib/ruby/site_ruby/1.8/osx/aeosa/osacomponent.rb:32:in
`compile_execute': (-1753) OSACompileExecute (RuntimeError)
from
/opt/local/lib/ruby/site_ruby/1.8/osx/aeosa/osacomponent.rb:32:in
`do_script'
from
/opt/local/lib/ruby/site_ruby/1.8/osx/aeosa/osacomponent.rb:17:in
`do_osascript'
from ./AddressBook2vCardXml.rb:12:in `album_list'
from ./AddressBook2vCardXml.rb:57


same error when doing :

set {al,as,az,ac,ast,aco} to {label, street, zip, city,
state, country} of every address of every person
{c,o,d,t,f,l,n,el,ev,ul,uv,pl,pv,al,{al,as,az,ac,a st,aco}}

what surprised me here is in the fact i'm using the same approach for
email address :

set el to label of every email of every person
set ev to value of every email of every person

and that IS working...

what do you think is the good syntax for address ???

in case you have some light for me !

interested part of my AppleScript version :
-------------------------------------------
tell application "Address Book"
set theCount to count of every person
set companies to company of every person
set organizations to organization of every person
set departments to department of every person
set titles to title of every person
set firstNames to first name of every person
set lastNames to last name of every person
set {emailLabels, emailValues} to {label, value} of every email
of every person
set {urlLabels, urlValues} to {label, value} of every url of
every person
set {phoneLabels, phoneValues} to {label, value} of every phone
of every person
set {addressLabels, addressStreets, addressZips, addressCities,
addressStates, addressCountries} to {label, street, zip, city, state,
country} of every address of every person
set notes to note of every person
end tell
-------------------------------------------


interested part of my RubyAEOSA version :
-------------------------------------------
def album_list
result = OSX.do_osascript %{
tell application "Address Book"
set c to company of every person
set o to organization of every person
set d to department of every person
set t to title of every person
set f to first name of every person
set l to last name of every person
set n to note of every person
set el to label of every email of every person
set ev to value of every email of every person
set ul to label of every url of every person
set uv to value of every url of every person
set pl to label of every phone of every person
set pv to value of every phone of every person
set {al,as,az,ac,ast,aco} to {label, street, zip, city,
state, country} of every address of every person
{c,o,d,t,f,l,n,el,ev,ul,uv,pl,pv,al,{al,as,az,ac,a st,aco}}
end tell
}
co = result[0].map {|i| i.to_s}
org = result[1].map {|i| i.to_rbobj }
de = result[2].map {|i| i.to_rbobj }
ti = result[3].map {|i| i.to_rbobj }
fn = result[4].map {|i| i.to_rbobj }
ln = result[5].map {|i| i.to_rbobj }
no = result[6].map {|i| i.to_rbobj }
el = result[7].map {|i| i.to_rbobj }
ev = result[8].map {|i| i.to_rbobj }
ul = result[9].map {|i| i.to_rbobj }
uv = result[10].map {|i| i.to_rbobj }
pl = result[11].map {|i| i.to_rbobj }
pv = result[12].map {|i| i.to_rbobj }
return ln.map {|k| [ rand(10000),
[co.shift,org.shift,de.shift,ti.shift,fn.shift,k,no .shift,el.shift,ev.sh
ift,ul.shift,uv.shift,pl.shift,pv.shift]]}
end
-------------------------------------------
i don't use {al,as,az,ac,ast,aco} to this time because it's buggy ))
--
une bévue
 
Reply With Quote
 
 
 
 
Une bévue
Guest
Posts: n/a
 
      01-01-2006
Une bévue <(E-Mail Removed)> wrote:

> however i have a syntax prob using Address Book.


sorry for the noise, i've forgotten that even if the script is written
in Ruby, in the AppleScript tell part i don't to use a reserved word as
"as" )))
--
une bévue
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[RubyAEOSA] RuntimeError: (-1753) OSACompileExecute Une bévue Ruby 1 07-19-2006 09:29 PM
RubyAEOsa return values changed? tom@tmedhurst.co.uk Ruby 0 07-06-2006 10:09 PM
java and wab windows address book cmos.srv@gmail.com Java 5 01-11-2006 02:27 PM
RubyAEOSA improvements, esp. for iTunes. Dave Howell Ruby 0 09-26-2005 11:32 PM
Help- Transfer Address Book and Mail Folders WeeWilly Computer Support 2 10-22-2003 04:06 PM



Advertisments