松本 拓也
@upinetree
http://slid.es/upinetree/tidesdk-and-ruby
例えば
Rubyで便利なスクリプトを作ったとして
自分だけで使う分には
黒い画面があれば十分ですよね
でも、それを誰かに配ろうとして
ちょっとしたGUI付きのアプリを
作りたくなったことありませんか

http://www.tidesdk.org
というわけで
試しにこんなの作りました
こんなかんじで
簡単にHTMLやJavascriptと
Rubyを連携させられます
http://github.com/upinetree/kancolle-launcher
<script type="text/ruby" src="ruby/agent.rb"></script>
<iframe id="game_frame" name='game_frame'></iframe>
<script type="text/javascript">
window.onload = function()
{
var game_frame = document.getElementById('game_frame');
game_frame.src = fetch_game_uri();
}
</script>
全画面表示機能も実装したかった
でも、swfを受け取るには面倒な壁が…
なんか良い知恵ないですか

win, osx -> 1.8.7
linux -> 1.9.3
32bit(i386)でビルドされているっぽい
たとえば、macのSnowLeopardは64bit
nokogiri使うときにmach-oエラー起きる
nokogiri.bundleファイルが64bitになっちゃうので
対策
sudo env ARCHFLAGS='-arch i386' bundle install
bundle install --path Resource/ruby/gems
require 'rubygems'
Gem.use_paths(File.join(Ti.App.getHome, 'Resources/ruby/gems/ruby/1.8'))
require 'mechanize'
OSX: KancolleLauncher.app/Contents/Resources/ruby/gems/ruby/1.8/gems
Win: KancolleLauncher/Resources/ruby/gems/ruby/1.8/gems
※Linuxは試してません
OSごとにフォルダ構成が異なる
なので、こうすると
File.expand_path(File.dirname(__FILE__))
こうなる
OSX: KancolleLauncher.app/Contents/MacOS
Win: KancolleLauncher
だからTideSDKのAPIを使う
require 'rubygems'
Gem.use_paths(File.join(Ti.App.getHome, 'Resources/ruby/gems/ruby/1.8'))
require 'mechanize'
やったことの割に予想外に時間かかりました
でも一回躓いておけばあとは大丈夫
次期バージョンが近日公開らしいですよ

http://www.tidekit.com/
おしまい