かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

IronRuby 1.0 公開されたので使ってみた

やっとこさバージョン1.0がリリースされたというのでインストールして試してみました。
ダウンロードは以下からです。
http://ironruby.net/

インストールした先のbinに、パスを通して準備は完了です。

# hello.rb
puts "Hello world"

というファイルを作ってDOS窓あたりで

ir hello.rb

と打ち込むと

Hello world

と表示されます。

これだけじゃ面白くないので、以下のようなスクリプト書いてみました。ちょっとびっくりしたのが、.NETとの連携でrequire 'アセンブリ名'で読み込める点でした。これだけお手軽だと連携がんがんしちゃうよね?

# WPFに必須のやつ
require 'WindowsBase'
require 'PresentationCore'
require 'PresentationFramework'

# 毎回フルネームでアクセスするのがメンドクサイのでincludeしておく
include System::Windows
include System::Windows::Controls

# 画面に表示するためのModel
class PersonModel  
  attr_accessor :name
end

# WPFのWindow
class MyWindow < Window
  def initialize
    # DataContextへモデルの設定
    self.data_context = PersonModel.new
    self.data_context.name = "Tanaka"
    
    # TextBlockを画面に置いてnameプロパティをバインド
    self.content = TextBlock.new
    self.content.set_binding(TextBlock::text_property, "name")
  end
end


# Application起動
Application.new.run(MyWindow.new)

WPFのウィンドウを表示しています。実行すると以下のようなそっけないウィンドウが表示されます。

いやはや、よく出来てる。NPOIつかえば、Excelとかを読み込んでERB使ってごにょごにょするようなものが作れるかもしれない。