私がすべてを正しく理解していれば、コマンドラインインターフェイスとWebベース(またはデスクトップGUIベース)インターフェイスを打ち破ることを検討することをお勧めします。ですから、例えば、私はあなたが
-a
は、「追加」機能のためのものであり、その後、あなたが
-s
、
-d
、および
-m
(減算を持っているかもしれません
$ myscript -a 2 3
の形で使用電卓CLIを、作成していた場合分裂、乗算)...平均的なJoeユーザーのためにそれを覚えなければならないことはあまりありません。あなたは、このような
class Calculator
class<<self
def perform(operation, left_side, right_side)
# figure out from operation what I need to do and do it or delegate it
end
end
end
としてクラスを作成することができ、その後、あなたは
#!/usr/bin/env ruby
require 'calculator'
# parse options, couple ways to do this, you probably already have one in mind
operation_option = ... # check for -a or -s or -d or -m
left_side_option = ...
right_side_option = ...
Calculator.perform(operation_option, left_side_option, right_side_option)
をCLIスクリプトを作成して、今、あなたはまた、Webベース(またはデスクトップベース)を作成することができますも、ちょうど呼び出し、それのためのインターフェース電卓クラスに:
require 'calculator'
# read from text fields/drop downs/whatever
operation_option = ...
left_side_option = ...
right_side_option = ...
Calculator.perform(operation_option, left_side_option, right_side_option)
この方法では、テキストインターフェイスからのフィールドとだけではなく、書き込みを解析する必要がありますいずれかの方法で重複の小さな少しではなく、本当に...これらのファイルを中間ファイルにコピーしてCLIから読み込み、CLIをバイパスして実行したいコードに直接移動します。したがって、特定のインターフェイスを表示(該当する場合)し、そのインターフェイスから読み込み、データを共通の形式で「作業馬」クラスに渡す責任を負う2つ(またはそれ以上)のインターフェイスファイルがあります。第2のインタフェースを作るためにどのような面で
、Rubyはあなたがあなた自身の上のフォームとの相互作用を構築する必要がありますけれども限り、私は「として((私はその名前でインストールされた宝石を持っている)curses
のサポートを持っています私が気づいたことは、呪われた形を作るのを助けるために宝石を探したことはありませんでした)、そしてデスクトップベースのものはあなたの説明からWebベースのものを書くよりはおそらくいいです(ルビーはかなりの数のGUI宝石を持っていますが、呪い以外のものは一度も使用していませんでしたが)、この時点では「あなたのプロジェクトには何が正しいのですか」だけです。
ほとんどのGUIツールキットにはバインディングがあります。質問はまた少しです:あなたのユーザは誰ですか?彼らはどのシステムを実行し、どのようにあなたのプログラムにアクセスしますか?どのように配布されていますか? – Felix