 |
こんにちは。Rubyマスコットキャラクターのるびくるです!
今日ははりきっておたよりを紹介するよ! |
 |
え、なにコレ? |
 |
ほら、この前パート1を公開したあと、いくつかメッセージをもらっちゃったから
せっかくだし、パート2までの場つなぎも兼ねて紹介していこうかなーって。 |
 |
ああ、なるほど。定番な企画だけど、たしかに試みとしてはいいかもね。
でもおたより紹介コーナーをやれるほど、メッセージって届いてるの? |
 |
さらに今回は、ドドン! 特別サービス!
rubicle.netの公開当時にもらったおたよりも、一緒に紹介しちゃうよ! |
 |
あれ、rubicle.netの公開って確か1年くらいま |
 |
それじゃ、おたより紹介いってみよー! |
- rakeのことを分かっていなかったので、とても参考になりました。良い企画をありがとうございます。続きも楽しみにしています。
- 分かりやすかった!
- rake の情報は少ないので勉強になります
 |
まずはこの前の記事に対する評判から紹介していくよ!
届いてるメッセージを見ると、「役に立つ」「分かりやすい」って声が多いみたいで
マスコット冥利に尽きるね! |
 |
Ruby 1.9.1から標準添付になったけど、やっぱりまだRakeのことをよく知らない人も多いんだね。 |
 |
意外とそんなもんだと思うよ。
わたしもRubyを使い始めてから1年くらいは、rdocもriももよく知らなかったし。 |
 |
え、irbなしでRuby初心者時代を乗り切ったの!? |
 |
いやー、今考えるとけっこう大変だったねー。
があることを知るまでは、ずっとメモ帳←→コマンドプロンプトの往復で、小さなコードも逐一試してたから
地味にめんどくさくて……。 |
 |
ああ、そういう話を聞いてると、Rake解説記事を始めて本当によかったと思うよ。 |
- Twitterで、共有できる等の機能があったほうが、面白いと思います。
 |
こんな提案が来てたんだけど、これってどういうことだと思う? |
 |
記事の右下にTwitterボタンが置いてあって、そのボタンを押すとリンク付きでツイートできるってことかな。
でもそれなら、Twitterに直接記事のURLを貼り付けてもらうだけで
よさそうなものだけど……。 |
 |
……あ、ひらめいた!
わたしが @rubicle_bot アカウントでツイートしてる内容を
1クリックで引用して、他の人と共有できる機能がほしいってことじゃない!?
それは確かに面白いかも! 実装しようRB! |
 |
るびくる、いいこと教えてあげる。それリツイート機能っていうんだよ。 |
※その後、各ページの右下にTwitterでツイートするためのボタンを置くようになりました。
- 「Rubyちゃんポータル」というサイトからリンクしました。: すぎむし
 |
この辺からはサイト公開当時のおたよりだね。 |
 |
すぎむしさん、リンクありがとうございます!
でもこのRubyちゃんポータルを見ると、けっこう前からRubyのマスコットがほしい!って話はあったんだね。
Rubyちゃん以外にも何人かいたみたいだし。 |
 |
ruby-talkの議論もけっこう白熱してたみたいだね。人型じゃなくて動物がいい!とかの意見もあったみたいだけど。
好きなものにマスコットやロゴを求めるのは万国共通なのかなあ。 |
 |
あれ、この海外版Rubyちゃんってだれ!? わたし見たことない! |
 |
ruby-talkを検索しても見つからないね。どんなキャラクターだったんだろ? |
 |
なんとなく海外のキャラクターっていうと、CodeRayさん(仮称)のイメージが…… |
 |
いや、さすがにそこまでハイセンスなお方じゃないと思うよ。 |
 |
WIN-WINの関係です。 |
 |
るびくるストップ! その言い方何か生々しい! |
次の回へ(おたよりコーナー第2回)>>
- 注意事項
-
RubyGemsってツールで使われてる、Rubyのツールやライブラリをひとまとめにしたパッケージだよ。
最近では、新しいツールやライブラリをインストールするときには、まずgemからインストール! っていうのが定番になってきてるね。
- 参考:
- ライブラリ - Ruby公式サイト
http://pd.appbank.net/m206
をインストールするためのツールで、Ruby 1.9からはRubyに標準で組み込まれてるよ。詳しくはの説明を見てね。
Rubyに標準添付されてるライブラリの1つで、ファイル操作系の便利メソッドをたくさん集めたライブラリだよ。
cd, cp, cp_r, install, ln, mv, などなど……この辺のメソッド名を見たら、Linuxを使ってる人はどんな機能かピンとくるんじゃないかな?
- 参考:
- FileUtilsモジュール - Rubyリファレンスマニュアル
Ruby 1.9.1よりも前、たとえばRuby 1.8ではこのエンコーディング宣言は必要なかったんだよ。だからRuby 1.8だけを使うのならこの宣言もいらないんだけど、先のことを考えるならつけておいたほうが○、ってとこだね。
rakeはRuby 1.8にも対応してるんだけど、ruby本体に標準添付されるようになったのは、基本的にRuby 1.9.1以降なんだ。
ただし、Windows環境でActiveScriptRubyやRumixを使ってrubyをインストールしたのであれば、もしかしたらもうrakeも入ってるかもしれないね。
試しに、コマンドラインでrake
って打ってみると分かるかも。
rakeの最新版はRubyGemsで入手できるから、RubyGemsが入ってる(gemコマンドが実行できる)環境なら、gem install rake
コマンドの実行でOKだよ。
desc 'Create hello-rake.txt'
task :testfile do
open('hello-rake.txt', 'w'){|f|
f.write('Hello Rake world.')
}
end
interactive rubyの略で、小さなRubyコードをサクッと実行できるツール(対話式シェル)だよ。Ruby初心者から上級者まで、みんながお世話になるツールの1つじゃないかな?
最近ではpryっていう強化版も出てるね。
- 参考:
- irb - Rubyリファレンスマニュアル
Rakeの最新版は0.9.2.2なんだけど、最新版があるのはRubyGems.orgだけで、RubyForgeの方にはRake 0.8.7までしか置かれてないよ。
これはgemの標準ダウンロード先が、RubyForgeからRubyGems.orgに移行したからみたい。
- 参考:
- rake | RubyGems.org
パート1でも少しだけ話題に出したけど、ruby 1.8系と1.9系では文字エンコーディングの扱いが大きく違うから、ruby 1.8系と1.9系の両方に対応させようとすると、けっこう面倒な書き方をしないといけないんだよね。
というわけで、ここではサンプルとしての利便性を優先して、ruby1.8系に限定したスクリプトにしてるよ。あしからずご了承ください。
- 参考:
- Ruby 1.9.1の歩き方 - Rubyist Magazine
SQLを実行してデータをとってくるのはeachメソッドもallメソッドも同じなんだけど、eachメソッドではデータベースから1行ずつデータを読みこんで処理するのに対して、allメソッドでは一度に全行のデータを読み込んで、配列の中に格納することになる。
その結果、たとえばデータを一度に10万行も取得したとすると……10万件分のデータをいったんメモリに読み込むallメソッドでは、どうしても分が悪いんだ。
裏で何をやってるのかよくわからないコードだったり、コードをパッと見ただけでは中の動きが想像もつかないくらい複雑だったりするコードに対して、「黒魔術」って呼び方をすることがあるんだ。
とくにRubyは、動的言語で自由度もかなり高いから、いろいろな黒魔術的コードの余地があるし、実際にRailsなんかでは黒魔術的コードが多い(もしくは昔は多かった)ってよく言われるね。
method_missingは黒魔術の入り口。
- 参考:
- Rubyの黒魔術
- Rubyのmethod_missingを使って黒魔術を実装する
を使ってインストールしたは、じつはRubyのバージョンごとに別々に管理されているんだよ。
たとえば、ruby 2.0.0でインストールしたgemは、あくまでruby 2.0.0用にインストールされているだけで、ruby 2.1.0にバージョンアップしたときはもう1回インストールし直さないといけなくなっちゃったりする。なぜかというと、ruby 2.0.0用のgemとruby 2.1.0用のgemが別々に管理されてるから。
ただ、ruby 2.1.0→2.1.3 のように、大きなバージョンの変更がない場合であれば、入れ直さなくて済む場合もあるよ。