[wifky] Rwifky! (開発中)

wifky! の Ruby による実装

取りあえず動かしてみる
ページを取得してそれをそのまま出力する
とりあえずテスト用に内部リンクだけはリンクするようにしてみた

TODO リスト

  • インラインプラグイン取り込み
  • アクションプラグイン取り込み
  • ページ読み込み
  • コンフィグ実装
  • Syntax engine 実装
  • Syntax engine 以外の HTML 関連
  • Attachment の表示とか
  • Attachment アップロード
  • ページ書き込み
  • デフォルトのインラインプラグイン実装
  • デフォルトのアクションプラグイン実装
  • 認証

クラス群

設定系クラス群
  • RWifky::Config
  • RWifky::ConfigEntryBody

以下のクラスは ConfigEntry Body を Wrap するクラス。RWifky::Config#[] で取得するのは以下のどれかのクラスです。

  • RWifky::ConfigPlainEntry
    • RWifky::ConfigTextEntry
    • RWifky::ConfigBoolEntry
物理ファイル 1 つ対するクラス群
  • RWifky::Entry
    • RWifky::Page
    • RWifky::Attachment
    • RWifky::Plugin
メイン、他
  • RWifky::Core
  • RWifky::Util

Config クラス

wifky 形式の設定ファイルを読み込んで情報を保持します。

メソッド

initialize( [ filename ] )
filename から設定を読み込み Config インスタンスを作成します。 明示的にファイル名を指定することも出来ます。
save( [ filename ] )
filename に現在保持している設定を全て書き込みます。
self[key]
設定変数名 key の個別設定エントリインスタンスを取得します。 取得できるエントリのクラスは entries_template で設定されている値です。 設定がない場合は nil を返します。
self[key] = text
設定変数名 key の内容を text にします。 設定が存在しない場合は新たに設定を作成します。
self << entry
add( entry )
entry 内容をこのクラスに上書きまたは追加します。
entries_template
[] メソッドで取得するオブジェクトのクラスのハッシュ表を取得します。 以下の形式になっています。このハッシュオブジェクトはデフォルトでは ConfigPlainEntry を返却します。
{ '設定変数名1' => (ConfigTextEntry | ConfigBoolEntry | ConfigPlainEntry ),
  '設定変数名2' => ...
  :
}
preferences ( 名前変更考慮中 )
preferences_template を元に以下のハッシュを作成して返却します。
{ 'セクション名1' => [エントリオブジェクト1, エントリオブジェクト2, ... ] 
  'セクション名2' => [...] 
  :
}
preferences_template
preferences メソッドでインスタンスを作成する際に元にするハッシュオブジェクトを取得します。 以下の形式になっています。
{ 'セクション名1' => ['設定変数名1',  '設定変数名2', ... ]
  'セクション名2' => [...] 
  :
}

ConfigEntryBody

Config 内では 1 設定項目をこのクラスのインスタンスで保持しています。

name
desc
desc=
text
text=
size
size=
to_s

ConfigPlainEntry

ConfigEntryBody を Wrap するクラス

initialize( body )
body
name
desc
desc=
text
text=
value
value=
to_s

ConfigTextEntry < ConfigPlainEntry

ConfigEntryBody を text 形式で Wrap するクラス

size
size=
type

ConfigBoolEntry < ConfigPlainEntry

ConfigEntryBody を Bool 形式で Wrap するクラス

text=
value
value=
type