使い方
インストール
前提として、PCにRuby 2.7以降がインストールされていることをご確認ください🙏
以下のコマンドを実行することでインストールします。
$ gem install fusic-cli-ruby
コマンド実行
トップページを開く例です。
$ fusic top
https://fusic.co.jp/
# => この時、ブラウザが自動起動してFusicコーポレートサイトのトップページが表示されます。
他にも以下のようなコマンドを用意しています。
$ fusic blog # Fusicってなんしようと? を開く
$ fusic members # メンバー紹介 を開く
$ fusic news # ニュース を開く
$ fusic outline # 会社概要 を開く
$ fusic techblog # Fusic Tech Blog を開く
サブコマンドは全て正確に入力する必要はなく、ほかと区別できる文字が入力されていれば機能します。
$ fusic m # メンバー紹介 を開く
$ fusic te # Fusic Tech Blog を開く
製作過程
せっかくなので、どのような手順で作成したかご紹介します。
ソースコードは こちら で公開しているので、適宜参照ください。
RubyGemを作る
以下のコマンドを実行することでRubyGemの雛形一式が自動生成されます。
$ bundle gem -t rspec --exe fizzbuzz
コードが生成されたら、gemspecファイルを編集し、RubyGemの情報や依存するGem等を記載します。詳細は fusic-cli-ruby.gemspec を参照ください。
ThorによるCLIの実装
RubyでCLIといえばThorですね。これを使うことでかなりお手軽に実装することができました。
ソースコードでいうと fusic-cli-ruby/lib/fusic_cli_ruby/cli.rb がThorを使ってコマンドの仕様を定義している部分となります。
RuboCopによるコードフォーマット
RuboCopに限らず早い段階でコードチェック・コードフォーマットしておくことは大事です。
基本的にはデフォルトのルールに則って、どうしても従えないものに限りルールを無効化しています。設定ファイルは .rubocop.yml を参照ください。
RSpecによるユニットテストとCLI実行テスト
ちゃんとテストを書いています。ユニットテストは fusic-cli-ruby/spec/fusic_cli_ruby/fusic_spec.rb が該当します。「所定のURLをブラウザで開く」というシンプルなCLIなのでテストもシンプルです。
これとは別に、 aruba というGemを使ってCLIの実行および出力もテストしています。fusic-cli-ruby/spec/cli_spec.rb がテストファイルです。
Guardによるコードフォーマットとテストの自動実行
コーディング中にRubocopやRSpecをいちいち起動するのは面倒なので、 Guard を使うことでファイル保存時に自動実行されるようにしています。快適です。
FAQ
なぜRubyで書いたのか?
今までRubyでCLIというものを書いたことがなかったからです。
他のページには対応してくれないのか?
随時対応したいと思います。要望などあれば issues へお願いします。
まとめ
良ければ使ってみてください!