hakeの日記

Windows環境でプログラミングの勉強をしています。

devkitのインストール方法 -- MinGW版ruby

ruby 1.9.3をインストールしたついでにいれてみたのでメモ。
dev-kitをいれておくとバイナリの無いgemをインストールしようとした場合にコンパイルを行ってくれるので対応できる場合が多いということみたい。

入手先

RubyInstallerのページから入手。現時点でのファイル名は、DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe

インストール

ファイルを実行するとインストール先を訊いてくるので入力、今回はd:\devkit
ここで以下を実行

> d:
> cd dekit
> ruby dk.rb init

[INFO] found RubyInstaller v1.9.3 at D:/Ruby193

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.


config.ymlというファイルが作成される、ファイルの一番下にrubyのインストールディレクトリが記載される。

# This configuration file contains the absolute path locations of all
# installed Rubies to be enhanced to work with the DevKit. This config
# file is generated by the 'ruby dk.rb init' step and may be modified
# before running the 'ruby dk.rb install' step. To include any installed
# Rubies that were not automagically discovered, simply add a line below
# the triple hyphens with the absolute path to the Ruby root directory.
#
# Example:
#
# ---
# - C:/ruby19trunk
# - C:/ruby192dev
#
---
- D:/Ruby193

以下を実行してrubyからdevkitが使用可能になるみたい。

> ruby dk.rb install

[INFO] Updating convenience notice gem override for 'D:/Ruby193'
[INFO] Installing 'D:/Ruby193/lib/ruby/site_ruby/devkit.rb'

既にMinGW環境がある場合

devkitのファイルを展開してできたのは、MinGW環境そのものの様なので、dk.rbをMinGWがインストールされているディレクトリにコピーしてきて、そこで実行すれば、インストール済みのMinGW環境をそのまま利用できそう。

    • 実際に試してみたところmakeがみつからないというエラーで失敗、素直にdevkitで実行した方が良さそう。

IronRubyを試してみる

インストールしたのは、こちらの最新版の1.1.3(ruby 1.9.2ベース)

>ir -v
IronRuby 1.1.3.0 on .NET 4.0.30319.225

.NETの作法がまったく分からないので、こちらのソースを参考にさせて頂き、1行目に文字コード指定を追記、ソース内の文字列を日本語にしてみました。
stable(v1.0)版(ruby 1.8.6ベース)では日本語表示が上手くいかない様ですが、v1.1.3では問題なく表示するようですね。

続きを読む

IronRubyの統合開発環境

Visual Studio 2010 Shell

IronRubyは、Visual Studio 2010に対応しているのですが、残念ながらExpress Editionでは使用できないようです。ただし、Microsoft Visual Studio 2010 Shellをインストールした後、IronRubyをインストールすると新規テンプレートとしてIronRubyが使用できる様になりました。

でも、使い方が今ひとつ良く解りません。個人的にはSharpDevelopの方が良さそうです。

SharpDevelop

本体入手はこちらから最新バージョンは4.0です。インストールしたPCには.Net 4.0のみしか無かった為にインストール時に.Net 3.5sp1 runtimeを要求されましたのでダウンロードページにあったリンクから入手。
日本語化リソースは、こちらから入手。現時点でSharpDevelop 4.0用の日本語リソースは公開されていませんが、3.2用を使用しても問題なさそうです。



なおソース上での日本語コードは、CP932ではなくUTF-8になるので1行目の指定には間違えないようにする必要あり。

# coding: utf-8

Visualu Ruby 自動レイアウト

VisualuRubyの勉強 その8
最近使用する機会があったので基本の勉強、自動でレイアウトさせる方法。
環境は、WinXP上のActivescriptRuby ver.1.9.2p136(入手先
こちらのサンプルを参考にしました。

部品を縦に並べる場合

VRVertLayoutManagerをincludeするか、ベースの部品にて以下を記述

    self.extend VRVertLayoutManager
    self._init


部品を横に並べる場合

VRVertLayoutManagerの代わりにVRHorizLayoutManagerを使用する。

部品を縦横に並べる場合

他の部品と一緒にVRPanelを縦に並べてから、VRPanel上に横に並べたい部品を置く。
この場合、VRHorizLayoutManagerをincludeして使用する方法は不明。

続きを読む

後方参照のレベル - Ruby1.9の正規表現

「正規表現」に無限のパワーを与える"田中哲スペシャル" - Atzy->getLog() を拝見して、田中哲スペシャルというのを知りました。


対応する括弧やタグのマッチが簡単にできます。いやぁ、正規表現って奥が深いっす。

# coding: windows-31j

s = '<a><b>text1</b>text2</a>'
re = /(?<xml><(?<elem>\w+)>\g<xml><\/\k<elem+0>>\g<xml>|\w*)/
p re =~ s #=> 0
p $&       #=> <a><b>text1</b>text2</a>


で、後方参照にレベルを指定できるって書いてあったので上の例を修正して試して見ました。既にサンプル文字列がXMLの体を為していないですが……

# coding: windows-31j

s  = '<a><b><>text1</>text2</b>'
re = /(?<xml><(?<elem>\w*)>\g<xml>(<\/\k<elem+1>>|)g<xml>|\w*)/

p re =~ s #=> 0
p $&       #=> <a><b><>text1</>text2</b>

レベルを+1すると内側(ひとつ下?)の\kのマッチ結果を持ってくるようです。


でも、この機能ってどんな場面で実用になるのだろう?