torutkのブログ

ソフトウェア・エンジニアのブログ

Redmine 4.0(Rails 5.1)でのプラグイン作成について(3)

id:torutk:20180506 の続きです。
この5月は、RedmineのGlossaryプラグインをステップ・バイ・ステップで再構築する試みをずっと続けています。その様子は次のWikiページに執筆中です。

Redmine Glossaryプラグイン再構築 - ソフトウェアエンジニアリング - Torutk

日記の方では、プラグイン再構築作業をしていて感じたことなどを随時書いていこうと思っていたものの、ゆとりがなく日記更新が追い付いていませんでした。

プログラミング言語Rubyについて

いままで、幾度かRubyをかじってみたものの手に馴染む前にあきらめて放置していました。また、Redmineプラグインを作ろうとして、あるいは既存のプラグインが動かないので手を入れようとして、そのプラグインが書かれているRubyのコードを見てみましたが、何をしているのか判然とせず、1行1行何をしているのか理解に至れていませんでした。

最初は、前置コロン、後置コロン、ハッシュの書き方がよく分からず、(例えば次のようなコード)

:name => 'glossary'
name: :glossary

メソッド呼び出しの引数の丸括弧の省略がよく分からず(例えば次のコード)

<%=l :label_category %>
<%=l(:label_category) %>

メソッド呼び出しの引数の最後がハッシュのときはハッシュの波括弧が省略できるので、それを理解せずコードを読むと多数の引数が指定されているように見えて、しかもリファレンス上そのような多数の引数が存在せず、大混乱したり、などなど。

そんなおり、去年の年末ごろは仕事の関係でExcel VBAを使って業務の手順を効率化するツールを作る機会があり(id:torutk:20171120)、VBAでは関数呼び出しで括弧が省略できることを知りました(省略できる場合、できない場合、setが必要な場合などかなり混乱させられましたが)。
また、今年1月からJava読書会BOFで「Kotlinイン・アクション」を読み始め、Kotlinもメソッド呼び出しでの括弧
省略や最後の引数の特別扱いなどを学び、ようやくRubyのコードに理解が及ぶようになりました。

面倒な表示設定

オリジナルのGlossaryプラグインでは、用語の一覧表示をべたに一覧する場合と、カテゴリ毎に分類してカテゴリ毎に別々に一覧表示する場合があります。

どちらの一覧表示にするかの設定は、サイドバーのラジオボタンで制御します。

しかし、Webアプリケーションでは、ユーザーの操作はフォームによってサーバーへサブミットし、その結果で表示が更新されるというものです。そのため、表示の見え方を設定するのにも、いったんサーバーへ情報を送る必要が生じます。

Webアプリケーションって一体誰得なんでしょうかねぇ。