フロントもサーバーもrubyで完結するフレームワークのvoltを触ってみた

フロントもサーバーもrubyで完結するフレームワークのvoltを触ってみた

voltとは rubyのフレームワークで、フロントもサーバーもrubyで書いちゃおうってやつです。 javascriptの実装はOpalを使っているみたいです。 全体的に小難しくなく、直感的に書けるので、学習コストも余りかからないですね。 あとなぜか、ドキュメントがいい感じに日本語訳されてます。 自然な日本語で読みやすいです。 知名度があまりない中で、日本語ドキュメントが充実してるのは非常にありがたいです。 http://voltframework.com/docs チュートリアル せっかくなのでチュートリアルやってみました。 まずはインストール。 gem install volt そのあとはプロジェクト作成。 volt new sample_project cdで作成したプロジェクトに移動して、サーバー立ち上げ。 bundle exec volt server コンソールには以下のコマンドでアクセスできます。 bundle exec volt console 詳しくはドキュメントのチュートリアルを見て欲しいんですが、コントローラではルーティング処理をしていて、ロジックはほぼhtml上で記述しています。 この実装でとくに考えずともwebsocketが使えます。 app/main/views/main/main.html タグにシンボルが使われていることや、{{}}内部がrubyということがわかればそんなに難しくない感じです。 <:Title> {{ view main_path, "title", {controller_group: 'main'} }} <:Body> <div class="container"> <div class="header"> <ul class="nav nav-pills pull-right"> <:nav href="/">Home</:nav> <:nav href="/todos">Todos</:nav> <:nav href="/about">About</:nav> <:user_templates:menu /> </ul> <h3 class="text-muted">sample_project</h3> </div> <:volt:notices /> {{ view main_path, 'body', {controller_group: 'main'} }} <div class="footer"> <p>&copy; Company {{ Time.now.year }}</p> </div> </div> <:Nav> <li class="{{ if active_tab?