|
|
|
#1 |
|
Messages: n/a
Hébergeur: |
I'm new to both Ruby and OS X. What I'm aiming for is to rename some
files that have been highlighted in Finder. How do I do it? So far I've got require 'rubygems' require 'rbosa' finder = OSA.app('Finder') w = finder.window but I'm getting NoMethodError: undefined method ‘window’ for <OSA::Finder::Application:0x548ee0 desc="'sign'($5343414D$)">:OSA::Finder::Applicatio n ![]() I'm all at sea. |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
Mark Carter <me@privacy.net> writes:
> I'm new to both Ruby and OS X. What I'm aiming for is to rename some > files that have been highlighted in Finder. ,---- | require 'rubygems' | require 'rbosa' | | finder = OSA.app('Finder') | | finder.selection.each do |item| | # path to file, using URL notation | puts "file=" + item.url | | # Rename the file | item.name = 'new-name' | end `---- You can also use rdoc-osa to generate documentation for a scriptable application: ,---- | rdoc-osa --name Finder `---- Finally, you might want to think about subscribing to the RubyOSA mailing list: http://rubyforge.org/mailman/listinfo/rubyosa-discuss Good luck. -- Peter Jones [pjones at domain below] pmade inc. - http://pmade.com |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Mark Carter wrote:
> I'm new to both Ruby and OS X. What I'm aiming for is to rename some > files that have been highlighted in Finder. How do I do it? So far I've > got > require 'rubygems' > require 'rbosa' > > finder = OSA.app('Finder') > w = finder.window Scriptable Mac apps are notorious for their inadequate API documentation, but for all its shortcomings the built-in dictionary is still the best place to start. e.g. If you open Finder's dictionary in Script Editor (only supports AppleScript-style formatting, but it's already on your system), you'll see that 'window' is an element (i.e. one-to-many relationship) of the root 'application' object, and elements are always written in the plural in RubyOSA, e.g. w = finder.windows[0]. That said, to get the current selection, you actually need to refer to the 'application' object's 'selection' property BTW, note that RubyOSA no longer appears to be actively developed or supported (I suspect Laurent has moved on to bigger and better things since Apple decided not to include RubyOSA in Leopard). I'd recommend using rb-appscript (see my sig) which aside from being actively supported is better featured and more reliable than RubyOSA/SB. Example: require 'appscript' include Appscript Finder = app('Finder') Finder.selection.get.each do |ref| ref.name.set("renamed #{ref.name.get}") end The ASDictionary application on the appscript website can be used to export appscript-style application dictionaries in HTML format, and the accompanying ASTranslate tool is very handy when you want to know how to translate an application command from AppleScript syntax to its appscript equivalent. As a bonus, with ASDictionary installed, you can use appscript's built-in # method to explore an application's dictionary interactively, e.g.: $ irb >> require 'appscript'; include Appscript => Object >> f = app('Finder') => app("/System/Library/CoreServices/Finder.app") >> f. ================================================== ============================ (-t) Reference: app("/System/Library/CoreServices/Finder.app") ------------------------------------------------------------------------------ Description of reference Terminology for application class Class: application -- The Finder See also: Finder Basics Properties: clipboard (r/o) : reference -- (NOT AVAILABLE YET) the Finder’s clipboard window name (r/o) : international_text -- the Finder’s name visible : boolean -- Is the Finder’s layer visible? frontmost : boolean -- Is the Finder the frontmost process? selection : reference -- the selection in the frontmost Finder window ... ================================================== ============================ => app("/System/Library/CoreServices/Finder.app") >> HTH has -- Control AppleScriptable applications from Python, Ruby and ObjC: http://appscript.sourceforge.net -- Posted via http://www.ruby-forum.com/. |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
In addition, before going terribly far with OS X scripting outside of
AppleScript itself, you'll do well to learn some AppleScript first to understand how it works (and how it doesn't). Matt Neuberg's book on AppleScript will teach you a lot of what it can and cannot do and the how and why. Other books may be gentler introductions/tutorials and will be useful, but Matt's explanations of the frustrations and workflow will be very reassuring. That said, you might be surprised how much you can pass to apps via the command line as well... (there's more than one way to do it in many cases) rb-appscript will make it more convenient to pass data to/from Ruby. |
|
![]() |
| Outils de la discussion | |
|
|