「名古屋Ruby会議01」が2009年10月10日に開催されます

名古屋でRubyのイベントが開催されます。
名古屋Ruby会議01 - Regional RubyKaigi

あの!笹田さんとかのセミナーもあります!
Rubyに限らず名古屋周辺のコミュニティも多数参加!

僕も一応スタッフとして参加する予定なのですが、今のところろくに働けていません・・・。
(スタッフの皆様ごめんなさい・・・)

Rubyな人、Rubyのこと良くわからないけど興味がある人、名古屋でIT系のエンジニアと絡みたい人・・・。
皆さんこぞって参加してください!
僕だってRubyのことなんて全く分かりませんが、なぜかスタッフですからね!

現時点で残席残りわずかとのことで、興味のある方はお早めに!
参加登録: 名古屋Ruby会議01 - Regional RubyKaigi

では、皆さん、当日会いましょう!

rubyのインストール@Centos5のメモ

よくあるコマンドを叩く。
# yum install ruby ruby-devel rdoc irb

次にgemsをインストール。
# wget http://rubyforge.org/frs/download.php/45905/rubygems-1.3.1.tgz
tar xzf rubygems-1.3.1.tgz
cd rubygems-1.3.1
ruby setup.rb
gem -v
gem source add http://gems.github.com

ここまでは順調。
twitterとかsinatraとかのパッケージをインストールして行く。
で、次ではまった。
# gem install mysql
Building native extensions.  This could take a while...
ERROR:  Error installing mysql:
        ERROR: Failed to build gem native extension.

/usr/bin/ruby extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... no
checking for mysql_query() in -lmysqlclient... no
*** extconf.rb failed ***
で、いろんなオプションをつけて実行してみたけど、全部駄目。
gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
とかさ。
エラーメッセージ読んでも全然分からんし。
んで、gccをインストールしなくちゃいけないというのをネットでやっと見つける。
ホント1日がかりだったわ。
# yum install gcc
というか、なぜかインストールされてなかったのね。
入っているもんだと思っていたけども。

gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
これでOKくさい。
デフォルトの設定で全部インストールしているんだから、さくっとここは通って欲しいものなんだけどねえ。


なんだかなー。

Rubyのフレームワーク「Sinatra」を使ってみた(View編)

Sinatra自体にはView機能は無いので、他のテンプレートライブラリを使いことになります。
まあ、使わなくてもいけそうなんですが、それはそれでコードが見づらくなるし、PHPでSmartyに慣れきってしまっている僕としては無いと寂しいのです。

ざっと以下のライブラリがサポートされてます。
・Haml
・Sass
・Erb
・Builder

■テンプレートエンジン選び
まず、Builderは無し。
あんまり検索したけど、情報が出てこなかった。

SassはCSS用のライブラリだし、Hamlの機能の一つって事で、これも置いとく。

で、HamlとErbに絞られたんだけど、なんとなく勢い的にはHamlな感じ。
なんだかカッコいいでなー。

けど、Erbを使うことにした。
理由としては、

・覚える事が少ない
・Hamlは実装は綺麗だけど、あまりに原形をとどめていない=覚えることが多そう

難しいことは嫌なのです。


■Erbで頑張ってみる
Erbの使い方は以下のサイトを参考にした。
ERB More
まあ、適当です。

SinatraからErbを使う時は、
erb :index
とかやっちゃけば、
./views/index.erb
の内容が表示される。
※「./views」ディレクトリを変更も可


■レイアウト機能も使えるよ
レイアウト機能っていうのかしら。
一部分だけをページ毎に変えたいって時に使う場合に使う奴。

./views/layout.erb
ってファイルを作って、ページ毎に変えたい部分に
<%= yield %>
と書いておけば、宜しくやってくれます。
レイアウトファイル使いたくないわ!って時は、
erb :index, :layout => false 
でOK。


■テンプレートへの値の渡し方
2パターンあります。

(1)インスタンス変数で渡す
@hoge = 'unko'
とやっておけば、テンプレートファイルで
<%= @hoge %>
で、表示されます


(2)ローカル変数として渡す
erb :index, :locals => {:unko => 'unkoman'} 
とやっておけば、テンプレートファイルで
<%= unko %>
で、表示されますよー。


■その他、オプション値まとめ
ソースを見た感じ、こんぐらいな気がする。
:layout           #レイアウトの有無(true/false)、レイアウトファイルの指定も出来る模様
:locals           #ローカル変数指定
:views_directory  #テンプレートのディレクトリも指定可
試してないのもあるし、マニュアルに無いのもあるけど、動くくさい。


と、こんなところまで調べました。
ある程度切り捨てちゃってる感が、気持ちが良いのかもと思いました。

Rubyのフレームワーク「Sinatra」を使ってみた(設置編)

最近お邪魔しているFLOSS桜山で、主催者である河合先生が、「注目しているRubyのフレームワークはSinatra」とか言ってて、まあ、そうなのかで終わるところだったんだけど、その理由を聞いて俄然興味を持った。
それが

「僕、簡単なのが好きなんだよねぇ」

はいはい、僕も大好物ですよ、簡単なの。

ということで

「たくさんのこと覚えるの苦手」
「ちゃっちゃと作りたい」
「出来れば軽いのが最高」

な人に最適なフレームワークSinatraのサイトがこちら。


Sinatra

もう雰囲気がフレームワークって感じじゃないのが気に入った!
でらクール!!

で、トップページみたら、飛び込んできたサンプルコードががこれ。
# myapp.rb
require 'rubygems'
require 'sinatra'

get '/' do
  'Hello world!'
end
良いねえ、お手軽な雰囲気がプンプンするではないか。


で、早速動かそうとしたらはまりました。
ローカルで動かすなら、公式サイトのドキュメントに載ってるんだけど、CGIとして動かす方法が載っていない。

あ~でら不親切!
Rubyのフレームワークってみんなこんな感じなんだよね、ドキュメント。
Rubyistはみんなお金持ちってこと?
Coreserverみたいな激安レンタルサーバは使わないのかしら。

そこでなんとか見つけ出したのがこちらのサイト。
Sinatra を CGI スクリプトとして実行する - ursmの日記

助かりました、ホント。
ほとんど情報無いわ、フレームワークもシンプルなら、公式サイトのドキュメントもシンプルだわ、Rackもいまいちわからんわって状態だったので。

けど、これだけじゃイメージ通りに動きません。
参考サイトの通りに設定すると
get '/hello' do
  'Hello world!'
end

http://hogehoge.com/hoge.rb/hello
こんな感じでアクセスできた。

でも、そうじゃなくて
http://hogehoge.com/hello
といきたいわけです。

ということで、約1日かけてたどり着いたのがこちら。

#.htaccess

DirectoryIndex index.html index.php start.rb

AddHandler cgi-script .rb
Options +ExecCGI

SetEnv RUBYLIB /virtual/account/lib/site_ruby/1.8:/virtual/account/lib
SetEnv GEM_HOME /virtual/account/lib/ruby/gem

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*) start.rb/$1 [L]
もっとちゃんと書き方あるかと思いますが、まあ、これをみて察してください。

で、実際のアプリのコードはこんな感じ。
#/start.rb

require 'rubygems'
require 'sinatra'

set :run, false                #HTTPサーバ立ち上げないならfalse
set :environment, :production

get '' do                      #'/'だと駄目くさい
  'Hello world!'
end

Rack::Handler::CGI.run Sinatra::Application

こんな感じで
http://hogehoge.com/
でHello Worldが出ます。
泣ける。

これでやっと、Sinatraワールドが楽しめます。

長くなったので、今回はここまで。
余力があれば、DB周りやView周りのことも書きたいです。

※htaccessのSetEnvの箇所は大橋さんの記事を参考にさせていただきました(それまではstart.rbに直書きでした)。
htaccessに記述した方が何かとスマートかなと思います。
ありがとうございました。
Sinatra、結構いいかも | コンピューターと人の触媒になるのを目指して

coreserverにrailsをインストールした時のメモ

前のエントリーと前後するけど、一応残して置くか。
前のエントリー:
coreserverにruby twitter gemをインストールした時のメモ

なんでrailsいれたかというと、前のエントリーでruby twitter gemを入れようとしたら全然インストールできなかったので、他のパッケージならどうなんだろと思って、入れてみたのだった。

ごめんねrails。
まだ当分君を使いこなす自信がないよ。
ちなみにrailsは超余裕でインストールできた。

> gem install rails
Successfully installed rake-0.8.4
Successfully installed activerecord-2.3.2
Successfully installed actionpack-2.3.2
Successfully installed actionmailer-2.3.2
Successfully installed activeresource-2.3.2
Successfully installed rails-2.3.2
6 gems installed
Installing ri documentation for rake-0.8.4...
Installing ri documentation for activerecord-2.3.2...
Installing ri documentation for actionpack-2.3.2...
Installing ri documentation for actionmailer-2.3.2...
Installing ri documentation for activeresource-2.3.2...
Installing RDoc documentation for rake-0.8.4...
Installing RDoc documentation for activerecord-2.3.2...
Installing RDoc documentation for actionpack-2.3.2...
Installing RDoc documentation for actionmailer-2.3.2...
Installing RDoc documentation for activeresource-2.3.2...

> rails -v
Rails 2.3.2

イッツオートマチック!

アーカイブ

2012

  • 01
  • 02
  • 03
  • 04
  • 05
  • 06
  • 07
  • 08
  • 09
  • 10
  • 11
  • 12

2011

2010

2009

2008

2007

コンタクト

longkey1[at]gmail[dot]com