koeだめ 過去アーカイブ[〜2013-12-14]

最新情報は https://www.pixiv.net/fanbox/creator/3780274 にて

オフィスではじめるRubyの世界

要旨

すでに別言語のプログラマ*1Rubyに手を出す場合、また仕事場でRubyを公然と使う場合には、ExcelやERBの利用からRubyに触れるのが良いよ、という話です。

  • 非常によく使われる、Excelをからめること
  • シンプルなテンプレートエンジンであるERBを使い、日常的に発生するテキストファイル生成を楽にすることで、周囲の人に「Rubyって便利やね」と思わせる

提示資料と発表の様子

D

ERB

Rubyの標準ライブラリに添付されているテンプレートエンジンであり、RailsではViewに使われています。「アプリケーションサーバのいらないJSP」であり、導入が簡単です。
呼び出し元のメインプログラムのローカル変数をERBで利用でき、またRuby文法を使うため、Rubyを少し触れたらすぐ使えるようになり、学習時間が短くて済みます。

実際に使われている例としては、下記サイトを参照するとすごく分かりやすいです。

Win32OLE

Rubyの標準ライブラリに添付されているWindows環境でRubyからWindowsCOMを叩くためのブリッジです。これを使って、RubyからExcelAPIを叩きます。

具体的な使い方は、下記サイトを参照してください。

書籍としては、『Rubyist Magazine出張版 Ruby on Windows 』が出てるので、是非読みたい(まだ買っていないので)

Excel(API)

日本で最高に使われる構造化データの作成・編集を行うツール。リッチな構造化データを、綺麗に整備された*2高レベルAPIを叩くことで扱うことができます。でも*NIXの人やMacの人はExcelが嫌い(偏見)
ビジネスシーンでも多く使われているので、担当者レベルで業務とITとを結ぶシンプルなインターフェイスとなります。

プログラマサイドからはExcelさを消す

Win32OLE+Excelのままでは、Excelとの密結合となるため移植性や可搬性が下がる。また本質的ではないコードが増えてしまいます。
そこで、Excelファイルを読み取って、各行をハッシュで返す『XLSクラス』http://rubyforge.org/projects/xls/を作りました。

Ruby+ERB+Excelの効果

  • 時間を節約

手作業よりよっぽど早くテキストファイルを生成でき、コーディングに時間がかからず、説明にも時間がかからなくて済みました。

  • 多言語ユーザの興味

Rubyにあんまり興味のないひともこの話にはくいついてきました。つまり、何かをインプットにしてテキストファイルを吐き出す事が必要な問題に対して、良いソリューションとして勧められる!

まとめ

  1. テキストファイル生成のような日常的な問題に、Ruby(+ERB)は役に立つ
  2. Excelと絡めることで、Rubyのような新技術の導入に関する感情的な障壁を減らすことができるので、Excel使いこなしテクの一環としてRubyを位置づける。
  3. そしてRuby便利ってことを広めて、お気に入りのRubyを利用できるフィールドを増やしていく!

*1:特に非LLの人

*2:1クラスにメソッドやプロパティ突っ込みすぎな感はあるものの