ぎょーぼのぶろぐ

IT系の話を書いていくブログです。今はRubyの勉強中。

【Ruby】Ruby でファイルバックアップツールを作ってみる その3

処理の流れを書いてみる

そんなに大きなツールではないので、処理の流れを書いて整理してみます。

1 設定ファイルの読み込み
    # iniファイルから読み込み:コピー元ディレクトリ(複数)、コピー先ディレクトリなど
    # 設定が取れなかったらエラー

2 読み込んだ設定のチェック
    # コピー元ディレクトリが存在するか?
        → パスがないものは除外する
    # 有効なコピー元ディレクトリがない場合は、エラーで終了する。
    # コピー先ディレクトリが存在するか?
        → コピー先が有効なパスではない場合、エラーで終了する。

3 確認のための情報を表示

4 実行するかどうか、確認( yes / no )

5 コピー実行
  (コピー元ディレクトリの数だけ、以下の処理を繰り返す)
    # コピー元ディレクトリの情報(総サイズ、ファイル数、ディレクトリ数など)
    # プログレスバーを生成
    # ディレクトリ直下のファイル、ディレクトリを一覧取得
    # ディレクトリの場合
        # コピー先にディレクトリを作成し、そのディレクトリを対象にして再帰呼び出し
    # ファイルの場合
        # コピー先ディレクトリにファイルをコピー。
        # プログレスバーの更新

6 結果表示

必要な機能

処理の流れを踏まえて、必要な機能を考えてみます。

  • 設定ファイルの読み込み
  • プログレスバーの機能
  • ファイルコピー関連
    • ディレクトリのパスをチェックする
    • バックアップフォルダーを生成する
    • 確認用ディレクトリ情報を生成する
    • コピーの実行確認を行う
    • コピーの実行を行う
  • メッセージ表示機能全般(「I18n」を使って、localeファイルにまとめたい)

最後の「I18n」の機能は、本来は多言語化対応のためのものですが、勉強のために使ってみます。実装は少し面倒になりますが、固定文字列を一つのファイルにまとめることで、表記揺れや誤記のチェックが簡単になります。