Rubyの部屋

Rubyについて

 最初からオブジェクト指向のサポートを意識して作られた、Perlに優るとも劣らない機能を持つ日本産のインタプリタ(スクリプト)言語です。もともとの傾向としては移植性が高いのですが、OS独自の機能を利用するためのライブラリも充実していますし(Windows独自の便利で面白い機能へのアクセス手段も豊富)、TkをはじめとするGUIライブラリとの連携もスムーズで、趣味プログラミングの観点から見ても、凝った用途に十分対応できる幅広さがあります。また楽しく気軽にプログラミングできる言語としても定評があります。

 対応プラットフォーム: 多くのUNIX、DOS、Windows、MacOS Xなど
 公式サイト: オブジェクト指向スクリプト言語Ruby

Rubyニュース

2014/05/10 Rubyist Magazine 50号 発行

過去のRubyニュース

Ruby/GTK2, Ruby-GNOME2

TreeViewウィジェットの概要 - Gtk::TreeView、Gtk::TreeModel、およびその関連クラスについて

複数行テキスト表示ウィジェットの概要 - Gtk::TextBuffer、Gtk::TextView、およびその関連クラスについて

Glade3のgladeファイルからRubyプログラムのひな型を生成するプログラム(ruby_glade3_create_template.exe)

TweetConsole(t_higashiさん作)とearthquake(jugyoさん作)を利用したタイムライン閲覧専用Twitterクライアントのサンプル(zip直リンク。Readme)

古いコンテンツ

wassru - 投稿専用Wassr/Twitterクライアント

Windows XPにRubyとRuby-GNOME2をインストールする

Rubyサンプルスクリプト

 (Windows XP / Ruby ver.1.8.3 以降 で動作確認)

 ここにあるスクリプトは目的にかかわらず自由に利用していただいてかまいません。自己責任でお使い下さい。

ロリポップ ウェブサーバのアクセスログ解析

Ruby Tips

コマンドライン引数の取得
ファイル分割(スクリプト挿入)
Ruby/Tk環境を作る
クリップボードを利用する
確実にキーボードからの入力を取得する

おすすめRuby関連ツール

エディタ

JmEditor
RDE
Notepad++

v4.5対応ランゲージファイル

 標準添付のenglish.xmlと公式サイトで公開されているjapanese.xmlをベースに作ったものですが、翻訳済みの部分も自分の好みに合わせて改変しています。nativeLang.xmlにリネームしてインストールフォルダに置いてください。

過去のRubyニュース

2014/04/05 Rubyist Magazine 46号 発行
2013/07/31 Rubyist Magazine 43号 発行
2009/02/10

Rubyist Magazine 25号 発行

(主な内容)
●Ruby 1.9.1 の歩き方
●Ruby M17N の設計と実装
●Ruby 1.9 で Web アプリを想定したベンチマークをとってみた
●Ruby 仮想マシン・ガチンコバトル (2008 年 12 月版)
●レアでアレなGCの話
●Ruby ビジネス・コモンズ(RBC) および主催勉強会の紹介
●学術会議とRuby
●るびまゴルフ 【第 5 回】
●Ruby Conference 2008 レポート
●RegionalRubyKaigi レポート (02) 札幌 Ruby 会議 01
●RegionalRubyKaigi レポート (03) 関西 Ruby 会議 01

2009/01/26

書籍 『プログラミング言語 Ruby』 発売

 表現力の高い文法と、強力で内容の豊かなAPIを持つコアクラスライブラリを備えた動的プログラミング言語であるRubyは、プログラミングの楽しさを感じる言語として世界中のプログラマから大きな支持を集めています。本書はRubyプログラミング言語を徹底的に、かつわかりやすく解説するものです。字句構造、データ型、式と演算子から条件分離、関数プログラミング、クラスとモジュール、メタプログラミングまでRuby言語のすべてを包括的に説明しています。Rubyコアプラットフォームやプログラミング環境についても詳述。Rubyを学ぶすべての人におくるRuby解説書の決定版です。(オライリーの商品紹介ページより)

2007/10/18

Rubyist Magazine 21号 発行

(主な内容)
●【三周年記念企画】 Rubyist Magazine へのたより
●Rubyist Hotlinks 【第 20 回】 石塚圭樹さん
●Erubis の Preprocessing 機能を使って Ruby on Rails の View 層を高速化する
●C# と Ruby を連携させる
●スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)
●るびまゴルフ 【第 1 回】
●標準添付ライブラリ紹介 【第 14 回】 正規表現 (3)
●Rubyist のための他言語探訪 【第 13 回】 Prolog
●書籍紹介『Rubyist Magazine 出張版 正しい Ruby コードの書き方講座』

2007/8/23

書籍 『Rubyで作るWebアプリケーション入門―プログラムの基礎からCGI、Web API、Ruby on Railsまでアプリケーション作成の基本を学ぶ』 発売

 Rubyとは、まつもとゆきひろ氏によって開発されたオブジェクト指向のスクリプト言語である。もちろん、インターネット上のアプリケーションだけでなく、パソコンで動作するアプリケーションを作成したり、Windowsに対応するGUIソフトを作成することもできる。
 Rubyは、扱うものすべてをオブジェクトとしてとらえて、クラスや継承といった仕組みによって、飛躍的にアプリケーションの開発効率を高めている。初心者にとっては入門しやすく、アプリケーション開発現場では開発効率を高めるものとして、ますます注目を集めているのである。
 初心者がプログラム言語を習得するのは、残念ながらそれほど容易なことではない。これまでいくつもの言語を学び、挫折してきた読者も少なくはないだろう。
 だが、Rubyなら、簡単な約束事と文法を覚えるだけで、初心者でも実用的なプログラムを作成することが以外に簡単なのだ。また、それをWebに対応させ、ちょっとしたネット上のサービスを作ることも、それほど難しいことではない。
 本書では、まったくの初心者を対象に、Rubyによる基本的なプログラムの作成と、Webアプリケーションの作成について解説した。さらに、最近話題のRuby on Railsについても紹介した。なるべく多くのサンプルを掲載したから、どんどん作成していただくといいだろう。
 (メディア・テック出版ホームページより)

2007/8/15

Rubyist Magazine 20号 発行

(主な内容)
●Rubyist Hotlinks 【第 19 回】 伊尾木将之さん
●標準添付ライブラリ紹介 【第 13 回】 正規表現 (2)
●Ruby News
●Ruby Event Check

2007/7/4

書籍 『Rubyではじめるゲームプログラミング―人気の国産言語で、誰でも簡単にゲームが作れる!』 発売

 「Ruby」とは、まつもとゆきひろ氏が中心となって開発したプログラミング言語で、フリーソフトウェアなので、誰でも無料で使うことができます。
 Ruby の特徴はソース・コードがとてもシンプルに書けることです。
 この本は、「ゲーム・プログラミングに挑戦したいけど、プログラムをまったく知らないという方のために、「Ruby」を使ったゲーム・プログラミングを紹介します。
 本書ではいきなりゲームを作るのではなく、プログラミングの基礎部分の解説に多くのページを割き、プログラミングを知っている人とっては当たり前のことでも、ていねいに解説しています。
 それは、プログラミングの基礎をしっかり理解してもらうことが、ゲーム・プログラミング習得の近道であると筆者が信じているからです。
 本書を読めば、誰でも簡単にゲームが作れるようになるでしょう。
 (工学社ホームページより)

2007/6/9

Ruby 1.8.6-p36、Ruby 1.8.5-p52 リリース

2007/5/15

Rubyist Magazine 19号 発行

(主な内容)
●cairo: 2 次元画像描画ライブラリ
●Ruby/SDLで始めるゲームプログラミング【後編】
●標準添付ライブラリ紹介 【第 12 回】 正規表現 (1)
●Rubyist のための他言語探訪 【第 12 回】 APL と J
●RubyOnRails を使ってみる 【第 10 回】 パフォーマンスチューニング
●ニュース・イベント情報

2007/4/27

書籍 『Rubyクックブック - エキスパートのための応用レシピ集』 発売

(目次)
1章 日付と時間

今日の日付の割り出し、日付の正確な解析とファジィ解析、日付の出力、日付の反復、日付の演算、任意の日付からの経過日数、タイムゾーンの変換、夏時間のチェック、TimeオブジェクトとDateTimeオブジェクト間の変換、曜日の検出、商業日の処理、コードブロックの定期実行、待機時間の設定、長時間の処理に対するタイムアウトの追加
2章 コードブロックと反復処理
ブロックの作成と呼び出し、ブロックを受け取るメソッドの作成、ブロック引数の変数へのバインド、クロージャとしてのブロック:コードブロック内での外部変数の使用、データ構造の反復子の作成、オブジェクトの反復方法の変更、分類または収集のためのブロックメソッドの作成、反復処理の中止、複数の反復可能なオブジェクトの並行ループ処理、ブロックメソッドによるセットアップとクリーンアップの隠ぺい、コールバックによるシステムの疎結合
3章 モジュールと名前空間
ミックスインによる多重継承のシミュレーション、モジュールによる特定のオブジェクトの拡張、クラスメソッドのインクルード、Enumerableの実装、名前空間による名前の競合の回避、ライブラリの自動読み込み、名前空間のインクルード、モジュールによって定義されたインスタンス変数の初期化、ミックスインモジュールの自動的な初期化
4章 リフレクションとメタプログラミング
オブジェクトのクラスとスーパークラスの検出、オブジェクトのメソッドのリストアップ、オブジェクト固有のメソッドのリストアップ、メソッドへの参照の取得、他人が作成したクラスのバグの修正、クラスへの変更の待ち受け、オブジェクトに必要な属性があるかどうかのチェック、未定義のメソッド呼び出しへの応答、インスタンス変数の自動的な初期化、メタプログラミングによる決まりきったコードの回避、文字列評価によるメタプログラミング、以前のコンテキストでのコードの評価、メソッドの未定義化、メソッドのエイリアスの作成、アスペクト指向プログラミング、ソフトウェアコントラクトの適用
5章 データベースと永続性
YAMLによるデータのシリアライゼーション、Marshalによるデータのシリアライゼーション、Madeleineによるオブジェクトの保存、SimpleSearchによる非構造化テキストのインデックス付け、Ferretによる構造化テキストのインデックス付け、Berkeleyデータベースの使用、UNIX上でのMySQLの制御、クエリから返される行数の検出、MySQLデータベースとの直接のやり取り、PostgreSQLデータベースとの直接のやり取り、ActiveRecordによるオブジェクトリレーショナルマッピングの使用、Ogによるオブジェクトリレーショナルマッピングの使用、プログラムによるクエリの構築、ActiveRecordによるデータの検証、SQLインジェクション攻撃の阻止、ActiveRecordでのトランザクションの使用、テーブルイベントへのフックの追加、データベースミックスインによるタグ機能の追加
6章 インターネットサービス
Webページのコンテンツの取得、HTTPS Webリクエストの作成、HTTPリクエストヘッダーのカスタマイズ、DNSクエリの実行、メールの送信、IMAPによるメールの読み取り、POP3によるメールの読み取り、FTPクライアントの作成、Telnetクライアントの作成、SSHクライアントの作成、別のマシンへのファイルのコピー、BitTorrentクライアントの作成、マシンのping、インターネットサーバーの作成、URLの解析、CGIスクリプトの作成、クッキーおよびその他のHTTPレスポンスヘッダーの設定、CGIによるファイルアップロードの処理、WEBrickによるサーブレットの実行、現実的なHTTPクライアント
7章 Webサービスと分散プログラミング
Amazonでの書籍検索、Flickrでの写真検索、XML-RPCクライアントの作成、SOAPクライアントの作成、SOAPサーバーの作成、GoogleのSOAPサービスによるWeb検索、WSDLファイルによるSOAP呼び出しの簡易化、クレジットカード決済、UPSまたはFedExによる送料の検索、任意数のコンピュータ間でのハッシュ共有、分散キューの実装、共有「ホワイトボード」の作成、ACLによるDRbサービスの保護、RindaによるDRbサービスの自動検出、分散できないオブジェクトのプロキシ処理、MemCachedによる分散RAMへのデータの保存、MemCachedによる高価な結果のキャッシュ、リモート制御のジュークボックス
8章 テスト、デバッグ、最適化、文書化
デバッグモードでのコードの実行、例外の送出、例外の処理、例外送出後の再実行、アプリケーションへのログの追加、トレースバックの作成と理解、単体テストの作成、単体テストの実行、外部リソースを使用するコードのテスト、ブレークポイントによるアプリケーションの状態の調査と変更、アプリケーションの文書化、アプリケーションのプロファイリング、競合ソリューションのベンチマーク、複数の解析ツールの同時実行、コールグラフアナライザの作成
9章 ソフトウェアのパッケージ化と配布
gemリポジトリの検索によるライブラリの検出、gemのインストールと使用、特定バージョンのgemの要求、gemのアンインストール、インストールされたgemのドキュメントの参照、gemパッケージの作成、gemの配布、setup.rbによるスタンドアロンパッケージのインストールと作成
10章 Rakeによるタスクの自動化
単体テストの自動実行、ドキュメントの自動生成、生成されたファイルのクリーンアップ、gemの自動ビルド、コードに関する統計データの収集、ドキュメントの公開、複数のタスクの同時実行、汎用プロジェクトのRakefile
11章 マルチタスクとマルチスレッド
UNIXでのデーモンプロセスの実行、Windowsサービスの作成、スレッドによる2つの作業の同時実行、オブジェクトへのアクセスの同期、スレッドの終了、複数のオブジェクトによるコードブロックの同時実行、スレッドプールによるマルチスレッドの制限、popenによる外部プロセスの実行、UNIXシェルコマンドからの出力とエラーストリームの捕捉、別のマシン上のプロセスの制御、デッドロックの回避
12章 ユーザーインターフェイス
入力の行単位での取得、入力の文字単位での取得、コマンドライン引数の解析、プログラムが対話形式で実行されているかどうかのテスト、Cursesプログラムのセットアップとテアダウン、画面の消去、ターミナルサイズの検出、テキストの色の変更、パスワードの読み取り、Readlineによる入力の編集、キーボードライトの点滅、TkによるGUIアプリケーションの作成、wxRubyによるGUIアプリケーションの作成、Ruby/GTKによるGUIアプリケーションの作成、RubyCocoaによるMac OS Xアプリケーションの作成、AppleScriptによるユーザー入力の取得

2007/4/21

書籍 『JavaからRubyへ ―マネージャのための実践移行ガイド』 発売

2007/3/27

書籍 『Rubyist Magazine 出張版 - 正しいRubyコードの書き方講座』 発売

(主な内容)
Pukipa / HexStruct / DBF / Tropy / Miyako + Midore DayBook + Lisp もどき / MyGame + HikiDoc + TMail

2007/3/16

Ruby、2007年日経BP技術賞大賞を受賞

2007/3/13

Ruby 1.8.5-p35 リリース

2007/3/12

Ruby 1.8.6 リリース

- 前バージョンからの変更点 - (正確な情報はこちらで確認してください)

●プラットフォームおよびビルドツールの新規サポート

 IA64 HP-UX / Visual C++ 8 SP1 / autoconf 2.6x

●ライブラリ

 date : date2 4.0.3 ベース
 digest : C と Ruby のための新しい内部 API。オートローディングのサポート。(新機能と互換性については別項目を参照)
 nkf : nkf as of 2007-01-28 ベース
 tk : Tk::X_Scrollable(Y_Scrollable) は Tk::XScrollable(YScrollable)に変更。ただし旧名も使用可能。Tile extension サポートが Tile 0.7.8 ベースに。Tcl/Tk Aqua など non-X11 バージョンの Tcl/Tk 用に --without-X11 configure オプションをサポート。IRB on Ruby/Tk のサンプルスクリプト irbtkw.rbw を追加。WindowsでのSTDINブロッキングによるトラブルは起こらない。

●新しいメソッドと機能

 組み込みクラス : メソッド Kernel#instance_variable_defined?, Module#class_variable_defined? を追加。Dir::glob() でグロブパターンの配列を取得可能に。
 digest : クラスメソッド file を追加。インスタンスメソッド clone, reset, new, inspect, digest_length (size / length のエイリアス), block_length() を追加。ライブラリ digest/bubblebabble を追加。関数 Digest(name) を追加。
 fileutils : FileUtils.cp_r() のためのオプション :remove_destination を追加。
 thread : mutex を C言語で実装し大幅に高速化。旧版を使用するには configure オプション --disable-fastthread を指定する。
 webrick : メソッド WEBrick::Cookie.parse_set_cookies() を追加。

●互換性関連

 組み込みクラス : $SAFE レベルが 0 より上のときは、String#intern が SecurityError を発生させるように。
 digest : コンストラクタが初期化文字列を取らなくなった。

(サンプル)
# 旧
md = Digest::MD5.new("string")
# 新 (全バージョンで動作)
md = Digest::MD5.new.update("string")
# 旧
hd = Digest::MD5.new("string").hexdigest
# 新 (全バージョンで動作)
hd = Digest::MD5.hexdigest("string")

 fileutils : 実装の小さな変更により、0.7.1 以下の Rake で問題が出る。0.7.2 以上を使用することで解決する。

2007/2/28

Rubyist Magazine 18号 発行

(主な内容)
●Rubyistインタビュー:立石孝彰さん
●Ruby/SDLで始めるゲームプログラミング【前編】
●標準ライブラリ紹介:zlib
●他言語探訪:C++
●RubyOnRailsを使ってみる【第9回】:RailsでXML-DBにチャレンジ
●ニュース・イベント情報

2007/2/26

書籍 『14歳からはじめる Ruby インターネットプログラミング教室』 発売

(目次)
Rubyってどんな言語?、Rubyの文法を覚えよう!、インタラクティブなゲームに挑戦!、CGIでWebプログラミングしよう!、ERBで埋め込みスクリプティング!、データベースを使って本格Webアプリ作り!

2007/2/1

書籍 『Rubyレシピブック 第2版 268の技』 発売

(目次)
1章 Rubyの文法
2章 文字列
3章 配列とハッシュ
4章 ファイルとディレクトリ
5章 入出力
6章 数値
7章 日付と時刻
8章 環境とのかかわり
9章 プロセスとプロセス間通信
10章 CGI
11章 オブジェクト

2006/12/25ver 1.8.5-p12 リリース
2006/12/05ver 1.8.5-p2 リリース
2006/10/26Rubyist Magazine 17号 発行
2006/09/21Rubyist Magazine 16号 発行
2006/08/25ver 1.8.5 リリース