[Linux-video-devel] 予約を表現する共通クラスライブラリ

アーカイブの一覧に戻る

Takuro Ashie ashie****@homa*****
2002年 5月 1日 (水) 05:16:12 JST


足永です。

At Wed, 01 May 2002 01:28:20 +0900,
Ken-ichi HASHIMOTO wrote:
> >controller.rbが繰り返し対応になったようですね。
> >program_item.rb が reservation_generator.rb に対応すれば
> >最終的には 全てのプログラムで program_item.rb を経由する事で
> >一つにまとまりそうですね。
> >ちと弄ってみます。

言い間違えました。
s/program_item.rb/program_admin.rb/
で読み変えて下さい。

私は,ProgramAdmin クラスで ProgramItem と Reservation*
をうまく吸収できるかな? と考えています。

ProgramAdminオブジェクトがReservationList と ProgramItemのリストを握っ
て,フロントエンドに対しては ReservationList を, バックエンドに対して
は ProgramItem を見せるというような感じです。

できれば,ReservationList は文字列の配列ではなくて, ReservationItem
とかなんとか言うオブジェクトの配列にして頂けると,フロントエンドから
扱い易いと思います

class ReservationItem
  attr_reader :repeate_mode # STRING
  attr_reader :start_time   # Time
  attr_reader :end_time     # Time
  attr_reader :channel      # String
  attr_reader :quality      # String
  attr_reader :filename     # String (ファイル名もプラグインで
                            #         生成できるといいですね!)
end

で,ReservationListが(ProgramAdminを介して)フロントエンドによって変更
された場合には,(ProgramAdminによって)自動的にProgramItemリストを更新
すると。

ReservationGenerator は 単に ReservationItem -> ProgramItem 変換器
という事で全てカタが付くと考えていますが,いかがでしょうか?
(という事は)


> そこで、各リピートモードプラグインにパラメータフォーマットを
> 返させる機構の考えをもっています。
> 
> 例えば、次のような感じです。
>  rg = ReservationGenerator.new
> 
>    ### アルゴリズム一覧の取得
>  algList = rg.getRepeatModePluginList()
>    # =>  ["ONE","EVERYWEEK","WEEKDAY"]   
> 
>    ### 各アルゴリズムのパラメータ順序とパラメータ意味の取得
>  rg.getParameterList('ONE')
>    # =>  ["StartDay","StartTime","EndTime","Channel","Quality","Filename"]

パラメータは各プラグインで自由に定義できるという事ですね。
ここは誤解していました。

だとすると前述の私の考えでは無理がありそうです。

しかし,現実的に考えるとせいぜい日付とファイル名(場合によってはクオリ
ティも?)を一定間隔で変えられるという程度で殆どのニーズに応えられると思
います。そして,おそらくそれ以上の細かい繰り返しパターンが用意できたと
しても,殆どのユーザーは使いこなす事ができないのではないかと思います。

私が個人的に思いつく繰り返しパターンとしては

毎日
毎週◯曜日
毎週月-金
毎週月-土
その他 毎週月水金 など特定曜日とか
毎月
毎年 (^^;;
毎月第◯週◯曜日

などといった感じですが,この程度なら

>    # =>  ["StartDay","StartTime","EndTime","Channel","Quality","Filename"]

の固定パラメータでもなんとか対応できる(もう一つ,繰り返しパターンの終
了日時くらいはあってもいいかもしれませんが)と思いますし,それ以上複雑
なパターンは,おそらく普通の人ならそれぞれ個別の予約にしてしまうかと思
います。

「あるパターンでは追加パラメータを設定できる」くらいはあっても良いと思
いますが,上記6項目くらいは固定しておかないと,たぶん破綻すると思いま
す。


>  # 新しいリピートモード(WeekEndなど)を追加する場合には
>  # repeat_mode_plugin の ディレクトリに 対応するプラグインを
>  # 正しく 導入すると、GUI などは、自動的に対応できるという...(^^;

たとえばGUIの場合は 特定の型に対して特定のWidgetを対応させるという事で
確かにできると思いますが,コロコロとインターフェースが変わってしまうと
ユーザーが混乱すると思います。

前述の「追加パラメータ」に対してはそれでもいいかもしれませんが,
やはりある程度基本部分は固定しておかないとまずいと思います。

>  # GUI は Linuxのネイティブで動くものも必要だろうし
>  # Web経由みたいなものも必要だろうし、CUI なものも必要だろうから
>  # 上記の機構は、全くいらないというわけでもなさそうなので。

個人的に

CLIインターフェース
GUIインターフェース
WEBインターフェース
メールインターフェース
Palm用インターフェース :D (WebやメールインターフェースのWrapper?)

があればいいなと思ってます。
で,よっぽど複雑な繰り返しパターンの場合は,結局 CLI インターフェース
を使って(あるいはファイルを直接編集?)シェルスクリプトを組むという感じ
になってしまうのではないでしょうか?



Linux-video-devel メーリングリストの案内
アーカイブの一覧に戻る