Shibuya.rb[:20221128] に参加した

shibuyarb.connpass.com

会場がすぐそこだったので参加した。前半は朝に素振りしてたTurboについて調べてたり、RubyRailsのドキュメントサイトについてしゃべってた。

みたいなことをしゃべっていたと思う。

Railsのドキュメントサイトの生成方法

結論、rails/railsbundle install したあとに rake rdoc を実行すると doc/rdoc に静的サイトが出力されるので、 doc/rdoc/index.html を眺めると良い。

$ rake --tasks
(in /Users/ikaruga/src/github.com/rails/rails)
rake build            # Build gem files for all projects
rake default          # Run all tests by default
rake gem              # Run gem task for all projects
rake install          # Install gems for all projects
rake package          # Run package task for all projects
rake prep_release     # Prepare the release
rake publish_docs     # Publishes docs, run this AFTER a new stable tag has been pushed
rake rdoc             # Generate documentation for the Rails framework
rake release          # Release all gems to rubygems and create a tag
rake smoke            # Smoke-test all projects
rake test             # Run test task for all projects
rake test:isolated    # Run test:isolated task for all projects
rake update_versions  # Bump all versions to match RAILS_VERSION
rake verify           # Build, install and verify the gem files in a generated Rails app

コードとしては以下のあたり。Rakefilerdoc なんてタスク無いじゃん、と思ってたら、 Rails::API::EdgeTask.new("rdoc") の引数がタスクの名前だった。 Rails::API::EdgeTaskRails::API::RepoTask を継承していて、 最終的に RDoc::Task#initialize に引数が渡る。 RDoc::Task までくるとそれはRubyの標準ライブラリである。

github.com

desc "Generate documentation for the Rails framework"
if ENV["EDGE"]
  Rails::API::EdgeTask.new("rdoc")
else
  Rails::API::StableTask.new("rdoc")
end

class Rake::RDocTask (Ruby 3.1 リファレンスマニュアル)

後半はPHP勉強会@東京との合同LT合戦を聞いていた。

  • irbedit コマンドでREPLの中にいながらエディタを開ける
  • bundler/inline の中で binding.irb を書いておくと事前処理を行った上でREPLが動いて便利
  • gh pr list | fzf | awk '{print $1}' | xargs gh pr checkout

あたりが自分の中で刺さった。

現場参加の勉強会はかなり久々だったけど、発表の空気感やオフでの挨拶自己紹介周りについては圧倒的にオンラインより快適。これから現地参加できる勉強会が増えるのであれば積極的に参加していきたいなあと思った。