pockestrap

Programmer's memo

2020-12-01から1ヶ月間の記事一覧

今年はDuolingoをやりはじめた。

今年始めたDuolingoが続いているので、年末だし感想をまとめてみる。 idはpocke11です。 状態 一回ダイアモンドリーグまで行った後、ここ1ヶ月ぐらいは黒曜石リーグに落ち着いている 今が165 days streakで、これは初日からずっと続いている(はず) 広告出る…

2020年に作ったGitHubリポジトリ

年末なので、今年GitHubに作ったリポジトリを振り返ってみます。 このリストは次の記事のコードを使って生成しました。(記事は去年のものだけど、今年実行しても動くはず) pocke.hatenablog.com 今年は15個のリポジトリを作りました。去年の31個より減ってる…

RBSではmoduleのinclude先としてinclude先のクラスを指定してはいけない

タイトルを読んでも何を言っているのかわからないと思いますが、モジュールをincludeしようとするとRBS::RecursiveAncestorErrorが発生することがあります。 とくにObjectクラスにincludeするようなケースでは注意が必要です。 この記事ではrbs gem v1.0.0で…

RBS Railsを使ってRailsアプリケーションにSteepを導入する

RBS Railsを使ってRailsアプリケーションにSteepを導入するまでの解説します。 ただしこの「導入できる」というのは、解析が完走するという意味です。 型エラーを全てつぶすことや、Steepを実際の開発フローに乗っけることは私もまだできていないため、この…

OpenStructに信頼できない値を渡してはいけない

新しいOpenStructに信頼できない値を渡すと、GCされないシンボルが作成されメモリが使いつくされる可能性があります。 対象のバージョン 対象となるostruct gemのバージョンは、0.3.0かそれ以上です。 Ruby 3.0にはostructのバージョン0.3.1が添付されている…

Gitのコミットメッセージからブランチ名を作る

Git

設定 # .gitconfig [alias] new-br = !git checkout -b "$(git log --format=%s -n 1 @ | ruby -pe '$_=$_.chomp.gsub!(/[^a-zA-Z0-9_]/, ?_)')" 本文 最近コミットメッセージからブランチ名を作ってcheckoutするようにした。 適当に最新のコミットメッセー…

RubyからRBSを生成する各方法の特徴

この記事はRuby 3.0 Advent Calendar 18日目の記事です。 qiita.com 昨日の記事は id:Pocke さんで「ruby/rbsに取り込まれた私のパッチ」でした。 pocke.hatenablog.com この記事ではRuby 3で導入される型定義ファイルであるRBSファイルを自動生成する方法に…

ruby/rbsに取り込まれた私のパッチ

この記事はRuby 3.0 Advent Calendar 17日目の記事です。 qiita.com 昨日の記事は id:gamelinks007 さんで「C APIのヘッダーが分割された話」でした。 gamelinks007.hatenablog.com この記事では、Ruby 3に同梱されるrbsに対して私が書いたPull Requestを紹…

Active Recordのクエリの実行元の表示から、特定のパスを除外する

TL;DR ActiveRecord::LogSubscriber.backtrace_cleaner = Rails::BacktraceCleaner.new.tap do |c| c.add_silencer { |line| line.include?('path/to/meaningless/file.rb') } end Problem Active Recordにはクエリの実行元をログに表示する機能があります。…