rubyメモ書き。

■refs
Ruby公式ドキュメントトップ
Ruby2.0.0リファレンスマニュアル
Ruby 1.9.3 リファレンスマニュアル
るりまさーち
ruby RDoc

ruby2.0 core reference
英語:クラス一覧やメソッド一覧のAPI

■rubyおすすめ参考本

パーフェクトRuby (PERFECT SERIES 6)/技術評論社

¥3,360
Amazon.co.jp



■ruby development kit
環境はwindows7。rubyのバージョン。
>ruby -v
ruby 2.0.0p195 (2013-05-14) [i386-mswin32_100]


rubyでライブラリを管理するにはRubyGemsという管理システムを使う。そして、RubyGemsを扱うためにパッケージングされたライブラリをgemsパッケージと呼ぶ。このRubyGemsを利用してgemパッケージをインストールする場合、中にはインストール時にビルドが必要なものがあります。RubyInstallerを利用してRubyをインストールしている場合は、同じダウンロードページから取得できる「Development kit」を使ってコンパイル環境を整えておくのが良い。以下、development kitのインストールについて

ruby Installerのダウンロードページ からDevelopment Kit For use with Ruby 2.0 (x64 – 64bits only)のDevKit-mingw64-64-4.7.2-20130224-1432-sfx.exeをダウンロードします。

ダウンロードしたexeを実行し適当なディレクトリに展開する。binディレクトリ下のdk.rbがあるディレクトリに移動し、rubyコマンドを実行。まずはinitで初期設定。

>ruby dk.rb init

Initialization complete! Please review and modify the auto-generated
'config.yml' file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

次にinstallコマンド。

>ruby dk.rb install
Invalid configuration or no Rubies listed. Please fix 'config.yml'
and rerun 'ruby dk.rb install'

なんかエラー出た。config.ymlファイルの中身を見る。

# Example:
#
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
#
---

rubyのホームディレクトリパスを追加

# Example:
#
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
#
---
- C:/Program Files (x86)/Ruby-2.0.0

もう一回実行。

C:\Program Files (x86)\RubyDevKit>ruby dk.rb install
[INFO] Installing 'C:/Program Files (x86)/Ruby-2.0.0/lib/ruby/2.0.0/rubygems/defaults/operating_system.rb'
[INFO] Installing '/devkit.rb'

成功したかな?

■rubyコーディングルール

・メソッド名、変数名は小文字スネーク
・クラス名、モジュール名は大文字キャメル

・引数なしのメソッドの呼び出しは、メソッド名だけで括弧はつけない
・引数ありで戻り値がある場合、括弧をつける

refs
rubyコーディング規約
rubyのコーディングルール
github ruby styleguide

■式の戻り値、⇒

putsで文字列を表示させると、⇒nilとかえてしくる。これはputsメソッドの戻り値がnilを返している

irb(main):086:0> puts 'hogehoge'
hogehoge
=> nil

■文字列、だぶるクォート、シングルクォートの違い
ダブルクォートは変数展開ができたり、特殊文字が扱える。逆に言えば、これらがない文字列はシングルクォートにすればいい。

■オブジェクトからメソッド呼び出し。::と.の違い
ドットとコロン二つの違い・・・なんだろ。下のrefs見ると特にないとか。
refs: インスタンスメソッド
クラスの定数とかは::を使うのかな
refs : クラス定数



■jruby

jrubyのダウンロードページからJRuby 1.7.9 Windows Executable (x64) (md5, sha1)のjruby_windows_x64_1_7_9.exeをダウンロードして実行。実行したらパスを通してバージョン確認。

>set path=%PATH%c:\jruby1.7.3\bin

>jruby -v
jruby 1.7.9 (1.9.3p392) 2013-12-06 87b108a on Java HotSpot(TM) 64-Bit Server VM 1.7.0_21-b11 [Windows 7-amd64]

なんか実行

>jruby list1.8.rb

■bundler
refs
ruby書くならbundler使え
ツールを使いたいだけの人のためのbundler入門

■sinatra
refs :
ruby+activerecordでmysqlを使うためのメモ
・sinatra+activerecord+mysqlで簡単APIさーば構築
sinatraで速攻でwebサイトを公開するための環境構築
ディレクトリ構成。sinatraのcontrollerをクラスで書いている。
小規模webフレームワークのためのsinatra
apahe-passengerで動かすsinatra環境のよさげな設定
初めてのsinatra
sinatraでセッションを使う方法


■デバッグ
aptanaでrubyのスクリプトをデバッグ実行したら、エラーが発生。エラーメッセージは「Unable to find 'rdebug-ide' binary script. May need to install 'ruby-debug-ide' gem or may need to add your gem executable directory to your PATH」

とりあえずメッセージ通りにruby-debug-ideをgemでインストール。
$ sudo gem install ruby-debug-ide
Fetching: rake-10.1.1.gem (100%)
rake's executable "rake" conflicts with /usr/bin/rake
Overwrite the executable? [yN] y
Successfully installed rake-10.1.1
Fetching: ruby-debug-ide-0.4.22.gem (100%)
Building native extensions. This could take a while...
Successfully installed ruby-debug-ide-0.4.22
Parsing documentation for rake-10.1.1
Installing ri documentation for rake-10.1.1
Parsing documentation for ruby-debug-ide-0.4.22
Installing ri documentation for ruby-debug-ide-0.4.22
2 gems installed

再度でバッグ実行してみたらできました。

■RubyGems
単にgemとも言う。gemという言葉には二つの意味があり、gemパッケージはRubyGemsでインストール可能なライブラリやコマンドをまとめたもの。gemコマンドはgemパッケージを操作するもの。

・ヘルプ
$gem help
$gem help commands
$gem help list # gem listのヘルプ
$gem help install # gem installのヘルプ
$gem help examples # gemコマンドの利用例を表示

バージョンを指定してインストール
$gem install mechanize -v 2.2.1

gemパッケージを取得するサーバ側のリストを表示
$ gem list mechanize --remote
$ gem list mechanize -r # --remoteと同じ

remoteのgemパッケージの検索。gem list mechanize --remoteとの違いがわからん。gem queryで検索時に正規表現も使える。
$ gem search mechanize --remote

gemパッケージのアップデート
$gem update mechanize

RubyGems自身のアップデート
gem update --system

gemパッケージのドキュメント参照
$gem server

インストールときにドキュメント生成を省略するには、--no-rdoc --no-riをオプション指定する。

ホームディレクトリ下の.gemrcが設定ファイル

RubeGemsの環境や設定一覧を表示
$gem environment または $gem env

まだ色々あるけど、とりあえずRubyGemsはこんなところ

■%記法

%q,%Qは文字列のエスケープに使える。%qはシングルクォート、%Qがダブルクォート

配列
irb(main):112:0> %w(Alice Bob Carol)
=> ["Alice", "Bob", "Carol"]

シンボル
irb(main):114:0> %i(red green blue yellow)
=> [:red, :green, :blue, :yellow]

アルファベットの大文字%W,%Iを使えば、式展開やバックスラッシュ記法が使える

irb(main):015:0> %r(/usr/bin)
=> /\/usr\/bin/

■組み込み変数、定数

○疑似変数
self,true,false,nil,__FILE__,__LINE__,__ENCODING__

○グローバル組み込み変数
$LOAD_PATH,$VERBOSE,$PROGRAM_NAME,$stdout,$stdin

○グローバル組み込み定数
STDIN,STDOUT,ENV,RUBY_ENGINE,UBY_PLATFORM,