[MacOS X] RubyAEOSA and Address Book

Discussion in 'Ruby' started by Une bévue, Dec 27, 2005.

  1. Une bévue

    Une bévue Guest

    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,ast,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,ast,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
    Une bévue, Dec 27, 2005
    #1
    1. Advertising

  2. Une bévue

    Une bévue Guest

    FOUND was (Re: [MacOS X] RubyAEOSA and Address Book)

    Une bévue <> 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
    Une bévue, Jan 1, 2006
    #2
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. ishtar
    Replies:
    1
    Views:
    275
    isthar
    Nov 21, 2005
  2. Michael J. Fromberger

    Python 2.5 and Unicode on MacOS

    Michael J. Fromberger, Sep 21, 2006, in forum: Python
    Replies:
    1
    Views:
    277
    Peter Otten
    Sep 21, 2006
  3. Dave Howell
    Replies:
    0
    Views:
    85
    Dave Howell
    Sep 27, 2005
  4. Replies:
    0
    Views:
    82
  5. Une bévue
    Replies:
    1
    Views:
    127
    Logan Capaldo
    Jul 19, 2006
Loading...

Share This Page