NUブログ 自作Webアプリで一発当てたいプログラマ

Ruby

タグ:Ruby, プログラミング

Ruby は純粋なオブジェクト指向言語と言われています。全てがオブジェクトで表現されていて、オブジェクトにはメソッドがあり、プロパティがあります。

true や false、さらには nil(他の言語のnullに相当) もオブジェクトです。

オブジェクトであるからにはメソッドを持っています。 そう、何もデータがないことを表すための nil ですらメソッドを持っていて驚きました。 以下に一部のメソッドを示します

メソッド名機能
nil?常にtrueを返す
to_a空の配列を返す
to_s空文字を返す
to_i0を返す

<参考>Rubyリファレンスマニュアル

空文字 とか 0 とか null をそれぞれ別のものとして扱いつつも、比較するときに手間をかけさせないRubyの心遣いがにくいですね。

インストール

以下のパッケージを aptitude でインストール

ruby   
rubygems
rails  
※rubyのバージョンを指定するなら ruby1.8 or ruby1.9

gemをソースからインストールする場合

以下の場所から最新版をダウンロードします。
http://rubyforge.org/projects/rubygems

$ tar zxvf rubygems-1.1.0.tgz
$ cd rubygems-1.1.0
$ sudo ruby setup.rb

Ruby用のVim設定

vim-rubyをインストールする

$ sudo gem install vim-ruby --remote
$ sudo /var/lib/gems/1.8/bin/vim-ruby-install.rb
※場所は環境によって変わるかも?

インストール先を聞かれます。

Possible Vim installation directories:
        1) /home/USERNAME/.vim
        2) /usr/share/vim/vimfiles

とりあえず自分の環境にインストールしたかったので、1を選択

.vimrc に以下を追加

filetype indent on
filetype plugin on

ruby用の設定を ruby.vim に書く

$ vim ~/.vim/ftplugin/ruby.vim
setlocal ts=2 sw=2 sts=2

他にもっといい場所があるかも知れない…

HTTPヘッダの出力

いつもどこかからコピペするので、あらかじめここに貼りつけておく

#!/usr/bin/ruby
print "Content-type:text/html;charset=UTF-8\n\n"

メモ

ruby には i++ は無いので i += 1 を使う

Apache + mod_proxy + Mongrel

Apacheをフロントサーバにし、特定ディレクトリにアクセスがあった場合に バックエンドのMongrelに処理を渡す設定を行った際のメモ。

Apacheに必要なモジュール

  • mod_proxy
  • mod_proxy_http
$sudo a2enmod proxy
$sudo a2enmod proxy_http
$sudo vim /etc/apache2/sites-available/www
# 以下を追加
ProxyRequests Off
<Proxy *>
    Order deny,allow
    Allow from all
</Proxy>
# リバース・プロキシの設定
ProxyPass /wikir/ http://localhost:8000/
ProxyPassReverse /wikir/ http://localhost:8000/
ProxyPreserveHost on

設定を有効にする

$sudo /etc/init.d/apache2 force-reload

Rubyの環境を調べる

以下のコマンドで調べられる

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 0.9.5 (0.9.5)
  - RUBY VERSION: 1.8.5 (2006-08-25) [i486-linux]
  - INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.8
  - RUBY EXECUTABLE: /usr/bin/ruby1.8
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86-linux
  - GEM PATHS:
     - /usr/lib/ruby/gems/1.8
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://gems.rubyforge.org

Ruby on Rails

Viewにアサインされた変数を調べる

後でちゃんとしたヘルパを作ろうと思いますが、とりあえずメモ。

<% self.instance_variables.each{|v| p v + ':' + instance_variable_get(v).to_s } %>

migration のコマンド