Yosemiteのアップデートに関する追記
追記: 2014/10/19
Yosemiteのアップデートで下で書いてるRuby 1.8が完全に削除されたので 別の方法が必要です。
YosemiteからRuby1.8が削除されたのでAppleScriptでのウィンドウのサインズ変更の取り扱いを変更した
追記ここまで
require ‘osx/cocoa’
AppleSCriptを使ってウィンドウサイズを変更するスクリプトを作って使ってるんですが、 その中でディスプレイの大きさを取ってくるのにruby+cocoaで行っています。
実際に使ってるスクリプトはこれ
この中で
require 'osx/cocoa';
...
というスクリプトを
set ret to do shell script "/usr/bin/ruby -e " & quoted form of cocoaScript & " '' " & " " & x & " " & y
こんな感じで実行していました。
このスクリプトを実行した所
error "/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require': cannot load such file -- osx/cocoa (LoadError)
from /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from -e:1:in `<main>'" number 1
こんな感じのエラーが。ここで気付いたんですが、 Macのデフォルトのrubyが1.8から2.0にバージョンアップされています。
$ ls -l /usr/bin/ruby
lrwxr-xr-x 1 root wheel 76 23 Oct 00:28 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
$ /usr/bin/ruby --version
ruby 2.0.0p247 (2013-06-27 revision 41674) [universal.x86_64-darwin13]
ただ、上のRuby.frameworksのところを除いてみると
$ ls -l /System/Library/Frameworks/Ruby.framework/Versions
total 8
drwxr-xr-x 6 root wheel 204 23 Oct 00:27 1.8
drwxr-xr-x 6 root wheel 204 23 Oct 00:27 2.0
lrwxr-xr-x 1 root wheel 3 23 Oct 00:27 Current -> 2.0
と1.8も残っています。 試しに、
set ret to do shell script "/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby -e " & quoted form of cocoaScript & " '' " & " " & x & " " & y
と1.8の方のrubyを使ってみると動きました。
Rubyのスクリプトでもshebangを
#!/usr/bin/ruby
から
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
に変えれば行けます。
根本的には
/System/Library/Frameworks/Ruby.framework/Versions/Current
の指し示す先を1.8に変えてしまえば他を変更せずに行けます。
osx/cocoa
についてもよく知らないのですが、何か他の物に変わったんでしょうか?
もしくはただまだ対応してないだけ?
まあ、差し当たりこのrubyを使ってるのは上のスクリプトだけなので これで良いかと。
デフォルトのrubyがアップデートされてるので、 Octopress用にrvmでインストールしたrubyを消して デフォルトのを使っても良いのかな、とも。
Sponsored Links