「
rake」
とは、ビルドツールの一種で Ruby版のMake といったところ。
名前もいかにも それらしい。
rake の特徴としては、
- Makefile にあたる「Rakefile」が 完全に Rubyの文法で記述できるので、余計な変な文法を憶える必要がない。
- 必要条件と共にタスクを指定できる。
- 暗示的タスクを統合するためのルール・パターンを記述できる。
- FileList という機能で ファイル名やパスを柔軟に操作することがきる。
- Rakefileを簡単に記述するためのパッケージ・タスクのライブラリが揃っている。
となっている。
では、実際にインストールしてみる。
インストールの方法には 通常の方法 と gemを用いた方法が紹介されている。
先日せっかく RubyGems を インストールしたので、
ここでは gemコマンドを使って Rake をインストールしてみる。
# gem install --remote rake
すると
Bulk updating Gem source index for: http://gems.rubyforge.org
Successfully installed rake-0.8.1
1 gem installed
Installing ri documentation for rake-0.8.1...
Installing RDoc documentation for rake-0.8.1...
#
のように rake がインストールされた。
実際にインストールされたか確認してみると、
% rake -V
rake, version 0.8.1
%
のようにバージョンを確認することができる。
それから 如何にして「Rakefile」を記述するかに関しては
「Rakeの覚え書き」
に 非常に丁寧な説明があるのでこちらを参考のこと。
【参考リンク】
カテゴリー:
Ruby
22:13
| コメント (0)
| トラックバック (0)
昨日のブログで調査した「RubyGems」を
実際にインストールしてみる。
「
RubyGems Manuals」
の
「
Installing RubyGems」
によると、
RubyForge「rubygems ファイル」のページ (http://rubyforge.org/frs/?group_id=126)
に ソースコードがあるのでそれをダウンロードしてくる、とある。
現段階で最新のソースのアドレスが
「http://rubyforge.org/frs/download.php/17190/rubygems-0.9.2.tgz」
なので
# cd /usr/local/src
# wget http://rubyforge.org/frs/download.php/17190/rubygems-0.9.2.tgz
# tar xzf rubygems-0.9.2.tgz
# cd rubygems-0.9.2
# ruby ./setup.rb
これで gemコマンド が使えるハズである。
RubyGems の インストール後の注意点として重要な事項がある。
今後、gemコマンドを用いてRubyのパッケージ(ライブラリ)を
インストールして、それを使ってゆくわけだが、
その際に、Rubyにどうやって gemsレポジトリーを知らせるか、
ということが問題となる。
これは、RubyGemsがRubyの標準ライブラリ・ディレクトリではなく
RubyGems独自のディレクトリにライブラリを置いていることに起因している。
そのため、
今後、gemコマンドによってインストールされたライブラリを
Rubyスクリプト内から呼ぶ場合には、
require 'rubygems'
require 'some_gem_library'
# ...
のように
事前に「require 'rubygems'」の一行を加える必要がある。
ところが、これでは 全てのスクリプトを変更しなければならなくなってしまう。
それを回避する別の方法が用意されている。
それが
ruby -rubygems my_program_that_uses_gems
のように Rubyのコマンドラインに「-rubygems」オプションをつけること。
ところが、これでも Rubyを実行するたびに毎回 「-rubygems」オプションを
つけなければならない。
そこで もうひとつの別の方法が、
環境変数 RUBYOPT に rubygems という値をセットしておくこと。
例えば、Bシェル系であれば .profile 等に
export RUBYOPT=rubygems
を
Cシェル系であれば、.cshrc 等に
setenv RUBYOPT rubygems
を設定しておけばよい。
【参考リンク】
カテゴリー:
Ruby
22:31
| コメント (0)
| トラックバック (0)
「RubyGems」 とは Rubyのライブラリ管理ツールの1つであり
デファクトスタンダードとも言える
「RubyGems」というのがある。
これは、perl でいうところの CPAN。
PHP で言うところの pear のようなもの。
RubyGems では gem コマンドを使って
Rubyのパッケージの管理・作成・配布 等が簡単に行える。
例えば
gem install rake
とすると、rake という新しいパッケージが
自動的にインストールされてしまう。
RubyGemsの特徴としては、
- パッケージの簡単なインストールと削除
- ローカル・パッケージの管理と制御
- パッケージ間の依存関係の管理
- ローカルおよびリモートのパッケージの検索と問い合せ
- パッケージにおける複数の異なったバージョンのサポート
- インストールされたパッケージのドキュメントをウェブベースで閲覧可能
- 新規gemパッケージの構築が簡単
- 作成されたパッケージが簡単に配布可能
等が挙げられる。
RubyGemsについては
「
RubyGems Manuals」
に 英語ではあるが 詳しくまとめてある。
【参考リンク】
カテゴリー:
Ruby
22:01
| コメント (0)
| トラックバック (0)
インターネットを使っていろいろな作業をしていると、
場合によっては大きなファイルをダウンロードしたり、
または、多数のファイルを一機にダウンロードしなければならない場合もある。
そのような時に、ダウンロード・ユーティリティーを利用すると
早く簡単にダウンロードできたりする。
そのようなソフトを探してみると、
HTTP/HTTPS/FTPのダウンロードマネージャ
「
Irvineフリー版」
というソフトが人気あるようである。
このIrvine(アーバイン)の特徴しては、
- キューフォルダによるURLの整理・複数のキューの同時ダウンロード
- 大きいファイルを効率よくダウンロードする分割ダウンロード
- URLリストの読み込み・書き出し・コピー・貼り付け
- 連続したURLを生成するURL展開
- リンクを自動的にたどってURLを取得するリンクのインポート
- インターネットエクスプローラ・ネットスケープ6・モジラのメニュー拡張
- フィルタリング機能によるURL自動振り分け
- スクリプトによる機能拡張
などが挙げられている。
上記のように「キューフォルダ」というフォルダを作って
そこに「フォルダ設定」画面から いろいろな設定をすることができる。
特に「フォルダ設定」内の「ダウンロード」タブの設定が重要だ。
ここでは ダウンロードのリジューム(再開)機能 や 分割ダウンロード について
設定できるので、場合によっては、ここの設定によって、
ダウンロードの成否や、ダウンロードにかかる時間が大きく変わってくる。
詳細については、Irvine(アーバイン)のマニュアルページ
「ダウンロード」
にある。
このIrvine(アーバイン)には、他にも沢山の機能がある。
しかし、あまりにも高機能なソフトなので、
ダウンロードに関する基礎知識 と 基本的操作・設定方法をマスターしていないと
使いこなすのは難しそうだ。
【参考リンク】
カテゴリー:
Software
22:49
| コメント (0)
| トラックバック (0)
rubyのプログラムを実行してみて、
C:\soft\ruby>ruby URLencodeUTF8.rb
URLencodeUTF8.rb:1: Invalid char `\357' in expression
URLencodeUTF8.rb:1: Invalid char `\273' in expression
URLencodeUTF8.rb:1: Invalid char `\277' in expression
のようなエラーメッセージに遭遇することがあるかもしれない。
このエラーの原因は昨日のブログ
「UTF-8 と UTF-8N の違いは何か?」
でレポートした
ユニコードの「バイトオーダーマーク (BOM:Byte Order Mark)」が原因である。
ちなみに 昨日のブログで
BOMの値は 具体的には上記の通り、「U+FEFF」である。
このBOMの値のUTF-8での表現は3バイトとなり
16進数の「 EF BB BF 」となる。
ちなみにこれを8進数で現すと「 357 273 277 」となる。
と書いたが、この「 357 273 277 」って
rubyからのエラーメッセージの中にしっかり含まれている。
問題の原因がわかれば解決策は簡単である。
昨日のブログでも書いたが、
rubyのソース・ファイルを
例えば、「TeraPad」や「Xyzzy」のような
UTF-8 と UTF-8N の両方に対応したエディターを使って開き、
改めて「UTF-8N」を指定して保存すること。
ちなみに、rubyを実行する際、
ユニコードを指定する「-Ku」オプションを付けた場合は、
C:\soft\ruby>ruby -Ku URLencodeUTF8.rb
URLencodeUTF8.rb:1: undefined method `・ソrequire' for main:Object (NoMethodError)
のようなエラーとなった。
結局「-Ku」オプションをつける場合でも、
ソースファイルは「UTF-8N」で保存する必要があるようだ。
【参考リンク】
カテゴリー:
文字コード・文字化け
22:43
| コメント (0)
| トラックバック (2)
エディターの「TeraPad」 や
私が通常使っている「Xyzzy」などでは、
文字コードの指定に「UTF-8」 とは別に 「UTF-8N」というのがある。
はたして この2つはどう違うのだろうか?
ウィキペディア「Unicode」の 「UTF-8(UTF-2、UTF-FSS)」の欄に
日本国内でのみ、 BOM (Byte Order Mark) がついているものをUTF-8、
ついていないものをUTF-8Nとして区別することがあるが、
国際的には認知されていない。
Internet Explorerでは、
BOMのついていないUTF-8の文書を読み込むと(日本語版の場合)Shift_JISだと
誤認する一方で、BOMがついていると有効なデータとして受け付けない
アプリケーションも存在する。
簡単には BOM (Byte Order Mark) 付いているのと いないとの違いのようだ。
では「バイトオーダーマーク (BOM:Byte Order Mark)」とは何か?
上記ページの脚注で
BOMとは、8ビットを基本とするシステムで
バイトオーダーを識別するための印であり、
データストリームの先頭に付与される。
値はU+FEFF。
システムが読み込んだ先頭2バイトが0xFF,0xFEならリトルエンディアン、
0xFE,0xFFならビッグエンディアンとして後に続く文書を処理する。
RFC 2781 ではBOMが付いていないUTF-16文書は
ビッグエンディアンとして解釈することになっている。
Windowsのメモ帳で作成した「Unicodeテキスト」は
標準でBOMが付与されるようになっている。
と説明されている。
さらに
ウィキペディア「UTF-8」では「バイトオーダーマークについて」というセクションで
詳しく解説してある。
BOMの値は 具体的には上記の通り、「U+FEFF」である。
このBOMの値のUTF-8での表現は3バイトとなり
16進数の「 EF BB BF 」となる。
ちなみにこれを8進数で現すと「 357 273 277 」となる。
解説によると、
この BOMありのUTF-8 と BOMなしのUTF-8N は
場合によって使い分けなければならいようだ。
結局、適切な方を選択するためには、
UTF-8 と UTF-8N の両方に対応したエディターを使って、
エラーの出ない方を選択するということしかないようだ。
【参考リンク】
カテゴリー:
文字コード・文字化け
22:49
| コメント (0)
| トラックバック (0)
昨日のブログで「 URLエンコード(URIエンコード)」について
レポートしたが、
それでは、rubyで実際にプログラミングしてみよう。
rubyのサンプル・プログラムは以下の様に
require 'uri'
p URI.escape('ウィキペディア')
たった2行である。
これで「ウィキペディア」という言葉を
URLエンコードした結果が表示されるハズである。
ウィキペディア「URLエンコード」ページに
例題として「ウィキペディア」という言葉を
Shift_JIS、EUC-JP、UTF-8 の各漢字コードで
URLエンコードした結果があるので、
それと比較できるように、ここでは同じ言葉としてみた。
Shift_JIS、EUC-JP、UTF-8 の それぞれの漢字コードに
対応するために、それぞれに
URLencodeSJIS.rb、URLencodeEUC.rb、URLencodeUTF8N.rb
と名づけて、エディターから 漢字コードを指定して保存した。
それぞれを ruby で実行してみると、
C:\soft\ruby>ruby URLencodeSJIS.rb
"%83E%83B%83L%83y%83f%83B%83A"
C:\soft\ruby>ruby URLencodeEUC.rb
"%A5%A6%A5%A3%A5%AD%A5%DA%A5%C7%A5%A3%A5%A2"
C:\soft\ruby>ruby URLencodeUTF8N.rb
"%E3%82%A6%E3%82%A3%E3%82%AD%E3%83%9A%E3%83%87%E3%82%A3%E3%82%A2"
のような結果となり、当たり前であるが、
ウィキペディア「URLエンコード」ページ
の結果と同じになった。
【参考リンク】
カテゴリー:
DNS・URL・URI
,
Ruby
,
文字コード・文字化け
22:54
| コメント (0)
| トラックバック (0)