[ruby-list:49944] [質問]コマンドライン引数から使用クラスを確定

From: MASAKI Yuhsuke <reasonset@...>
Date: 2014-09-01 04:37:07 UTC
List: ruby-list #49944
Hi "Ruby users \(Japanese\)" <ruby-list@ruby-lang.org>, This is MASAKI
Yuhsuke(MASAKI Yuhsuke <reasonset@yahoo.co.jp>).

こんにちは、正木です。

document
translation用で出力フォーマットに応じて交換可能な共通のスーパークラスを持つ複数のクラスがあります。
これらのクラスはそれぞれが独立したライブラリに収録されています。
出力フォーマットの選択をコマンドライン引数または$0名に応じてライブラリをロードし、変数に格納するクラスを選択することで行いたいと思っています。
しかし、引数に直接クラス名を指定させるような方法をとってもStringからClassオブジェクトを取得する方法が見つからず行き詰まりました。
かといってHashを使おうとすると、Hash作成時点でClassオブジェクトを必要とするため予め全てのライブラリを読まなくてはいけないことになります。
evalはなるべくなら使いたくありません。
Hash的な特異オブジェクトを用意し、#[]の引数に応じてロードとClassオブジェクトのreturnを行うのが一番マシかと思ったのですが、
その特異オブジェクトを用意するコードがダサいのと、
新たなフォーマットに対するトランスレータを追加するたびに起動スクリプトに手を加えなくてはいけないのはあまりよくないように思われます。

どなたか良い解決方法をご存知ありませんでしょうか。

******************************
* The Rider, Hacker and Musician.
* +++ ENABLE YOUR HEART +++
******************************
*           MASAKI Yuhsuke.
* reasonset@yahoo.co.jp
* http://reasonset.net/journal/
* Twitter: @reasonset
******************************

Attachments (1)

signature.asc (198 Bytes, application/pgp-signature)

In This Thread

Prev Next