2013/08/20

[#nshgrb]西脇.rb & 東灘.rb もくもく会 6th と Kobe Rubyist Meetup に参加してきました

8/17に西脇.rb & 東灘.rb もくもく会 6th と Kobe Rubyist Meetup に続けて参加してきました。
いつも Kyoto.rb に参加してくださってる @spring_aki さんから、宣伝があったのと、SonicGarden の人が来るというのと、コードレビューつきもくもく会に興味があったので、新快速で一時間ほど揺られて行ってきました。

作ったもの

redmine_yare という簡単な Redmine のプラグインを作りました。
最近プライベートで Redmine のプラグインを作っているので、勉強がてらということととりあえず今回はもくもく会の中で完結するものを作りたかったので、シンプルなものにした。
画面遷移する度に今日が期限のチケットをダイアログ表示する非常に迷惑なプラグインです。

苦労したところ

フックのロジックとビューを分離するところが苦労した。
コレについてのまとめは後日に別エントリであげます。

もくもく会の感想

意外と3時間というのは短くて思ったより実装が進まなかった。調査に時間がかかったというのもあるけれど。結構時間を無駄に使っていたと思う。その都度しっかり意思決定していればもっと効率的な進め方が出来たと思う。
コードレビューでは、自分のコードはコード量自体が少なくてあまり突っ込まれなかった。(スペルミスしたけど)
気になったのは、レビューイと限られた人がメインでしゃべっている感じだったので、もっと全員でコードレビューしている感じがでるといいなと思う。(一人15分だし、スキルや経験の差があるのでしかたのないこととは思うが)

Meetup

懇親会はやっているけど、規模を拡大して Meetup は初の試みだったそうだ。
やっぱり酒が入って話しやすくなってくると濃い話が自然発生するのが楽しい。
正規表現の話や、Railsのコントリビュータの体験談などの話を酒を聞けるのは貴重な機会だった。

今後

特性上、大人数で行えないタイプの勉強会なので毎回参加というのは難しいとは思うが、また参加したいなと思う。
今回の ProMotion のお話のように、他者に新しい体験を提供できるようなネタがあればいいんだけど、しばらくは難しいかもな。Redmine のプラグインを頑張らねば。

西脇.rb と東灘.rb の皆様お疲れ様でした。

2013/08/01

Redmine plugin にて自動ロード対象のディレクトリを追加するには

どうやら Redmine はプラグインの lib は自動的にロードパスに登録するが、app 以下は controllers, models, helpers のみを autoload の対象にするようだ。
lib/redmine/plugin.rb にこんな記述があった。

# Adds the app/{controllers,helpers,models} directories of the plugin to the autoload path
Dir.glob File.expand_path(File.join(p.directory, 'app', '{controllers,helpers,models}')) do |dir|
ActiveSupport::Dependencies.autoload_paths += [dir]
end

例えば、フォームクラスを作って app/forms に配置したい場合は、init.rb に処理を追加してやる必要がある。
Redmine::Plugin.register :hoge do
# other plugin settings
# simple
ActiveSupport::Dependencies.autoload_paths += [File.dirname(__FILE__) + "/app/forms"]
# multiple
Dir.glob(File.expand_path(File.join(File.dirname(__FILE__), "app", "{forms,services}"))) do |dir|
ActiveSupport::Dependencies.autoload_paths += [dir]
end
end
一つしか追加しないなら simple の方でいいだろうし、複数追加するなら plugin.rb をパクって multiple で書くのがいいんじゃないかな。