第11回Ruby勉強会@関西
いつもと会場が違うので迷いました。というかこの建物に入っていいのだろうかとどきどきしました。ノートPCの電源ケーブル忘れました。だめだめです。
Ruby初級者レッスン(8)前半 by かずひこさん、コウザイさん
- イテレータを作ってみよう。
- Enumerableモジュール。
- <<は「クク」と読む。by コウザイさん
- <<は引数がひとつだけ。pushは複数とれる。
- 神戸在住。飲み仲間募集中。
- rb→Exerb→Windows実行形式。
- デモ1。Hello, world!!。レシピがいらない(単体のファイルのみ可能)。
- デモ2。WIN32APIを使った場合。mkexy foo.rb。
- デモ3。tkを使ったGUIアプリの場合。現状、終了時にゴミプロセスが残る。
- デモ4。Down!!(原さん@京大マイコンクラブ)作のゲーム。
- 動機。利用者からすればどんな言語が用いられているかは関係ない(利用者にしてみれ開発者のわがままでしかない)。→でもRubyを使いたい。
- データファイル。StringIOで読める。
- 欠点。正常に動作しないライブラリがある。実行ファイルが大きい。リバースエンジニアリングが容易。MSVCRT版なので使用できない機能がある。
- レシピファイル。YAMLフォーマット。アイコンが書ける。コメントは日本語OK(UTF8)。
- コアファイル。インタプリタ+ロード用モジュール。CUI⇔GUI。スタンドアローン⇔ランタイム版。
- 3.3.1→4.0.0への差分。Ruby1.8.4対応。1ステップ生成機能。レシピファイルのフォーマット変更。
- 類似プロジェクト。RubyScript2Exe。rb2exe。rb2bat。
RRSE - Ruby Reference Seeker for Emacsen by 大林さん
- haskel-modeをヒントにしている。
- ワンタッチでマニュアルを読める。
- rdocでマニュアルを書けば表示できる。rdocのドキュメントを何も書かなくてもAPIの引数くらいは表示できる。
- 内部構造。~/.rrseにDB(?)を保存。post-command-hook。カーソル下のメソッド名抽出はadhoc。
- 今後。補完機能。Debianパッケージ。んー、補完機能は便利かも(でもRubyって基本的にメソッド名が短かいからあまりいらんかも)。
Rubyクイズ第一回 by cuzicさん
- <<は「クク」と読みましょう。
- 破壊的⇔非破壊的ネタ。
ライトニングトーク アジャイルドー えっくすぴーの森 by 川端さん
- 40時間労働。僕はこのプラクティスを聞くといつも溜息ついちゃいます。
- 姿勢が大事。いやとにかく。変化を受け入れる。
Ruby初級者レッスン(8)後半 by かずひこさん、コウザイさん
- グループわけして演習 + 発表。僕の参加したチームは、こんな感じでいったんハードコーディングなメソッドを書いておいて、その一部をyieldで置き換えてみました。Rubyでは頻出のリファクタリングパターンです。
#!/usr/bin/env ruby class Array def find3 each do |n| return true if n == 3 end false end def myfind each do |elem| return elem if yield(elem) end nil end end p [1, 2, 3].find3 # => true p [1, 2, 3].myfind {|n| n == 3} # => 3 p [1, 2].myfind {|n| n == 3} # => nil
- 今回からグループわけが導入されたのですが、よかったと思います。発表があるので真剣に課題に取り組めました。グループのメンバと会話もしやすかったです。レッスンが双方向になったような気がしました。
二次会