Posted filed under Ruby on Rails.

 色々試行錯誤した結果、Slingboxでアプリケーションを作ることができました。

ActiveScaffold (旧AjaxScaffold)で作った簡単なアドレス帳をサンプルアプリケーションにSlingshotの使い方を見てみましょう。

作業その0 元となるRailsアプリケーションを作る

 今回は元となるアプリケーションはActiveScaffoldで、さくっと作ってみます。

$ rails slingshot1 -d sqlite3
$ cd slingshot1
./script/plugin install http://activescaffold.googlecode.com/svn/tags/active_scaffold
$ ./script/generate model address name:string address:string mail:string
$ rake db:migrate
$ ./script/generate controller address
$ echo “class AddressController < ApplicationController;active_scaffold :address;end" > app/controllers/address_controller.rb
$ echo ‘ < %= javascript_include_tag :defaults %>< %= active_scaffold_includes %>
< %= yield %>‘ > app/views/layouts/application.rhtml
$ rm public/index.html
$ echo “ActionController::Routing::Routes.draw { |map| map.connect ”, :controller => ‘address'; map.connect ‘:controller/:action/:id’ } ” > config/routes.rb

 これでサンプルアプリケーション構築完了。

Slingshot サンプルアプリケーション1
 これをSlignshotを使ってブラウザ無しでうごかしてみましょう。

作業その1 データベースはSQLite3にする

 今回はサンプルアプリケーションのDBがSQLite3だったので問題ありませんが、既存のアプリケーションでMySQL等を使っている場合には、SQLite3にコンバートしてください。
たぶん、MySQLでも動くんですが、それだと別にMySQLサーバのセットアップが必要になるので、インストールの要らないSQLite3を推奨しているようです。

作業その2 Slingshotをダウンロード

 現在はSubversionでしか提供されていないので、svnでダウンロードします。

$ svn export http://svn.joyent.com/slingshot/osx

作業その3 VirtualMachine(VM)にアプリをセット

 先に作ったRailsアプリをVMにセット。

$ cp ~/slingshot1/* osx/VM/trunk/

作業その3 VMをSlingshot.appに移動

 アプリをセットした、VMをSlingshotの中に移動

$ mv osx/VM osx/Slingshot.app/

完成

Slingshot サンプルアプリケーション2

 これで完成。Slingshotアイコンをダブルクリックするとアプリケーションが起動します。

 今回ファーストリリースだけあって、起動したり、しなかったりと、かなり不安定な所があります。
とりあえず、内部で3000番ポートでmongrelを起動しているので、他で3000番ポートを使ってると、起動できません。

 とりあえず、安定さえすれば、簡単にデスクトップアプリが作ることができそうです。
Slignshotの特徴は、サーバとのデータ連係とドラックアンドドロップサポートなので、次はこれを試してみたいです。まだドキュメントされていませんが、アプリケーションの最新版のチェックと自動アップデートの仕組みもあるみたいなので、これからが楽しみです。

おまけ

 できあがったファイルは、これです。Intel OSX専用です。そのうちWin版も作ります。

Trackbacks/Pingbacks

  1.  railsで簡単に管理ツールを作る