Rails + OpenAPI なAPIにて、レスポンスボディがない場合、committee の assert_response_schema_confirm を使うとエラーになる

Rails + OpenAPI で作られているAPIのテストコードを書く時、 interagent/committee: A collection of Rack middleware to support JSON Schema. willnet/committee-rails: rails and committee are good friends を使うことで、OpenAPIスキーマのテストもし…

書籍レビュアーとして参加した、 #Python実践レシピ が発売になります

書籍レビュアーとして参加した「Python実践レシピ」が2022/01/13 (電子本)・2022/01/19 (物理本) に発売されます。 Pythonエンジニア育成推進協会監修 Python実践レシピ:書籍案内|技術評論社 先日、発売前の書籍をご恵贈いただきました。ありがとうござい…

2021年の振り返りと2022年の目標

例年通り、2021年の振り返りと2022年の目標っぽいものを書いてみます。 2021年の振り返り 2020年の振り返りと2021年の目標 - メモ的な思考的な で立てた目標を振り返ってみます。 新しい環境に溶け込む 2021年の新年から新しい環境でした。一度も物理出社す…

React + React Hook Form v7 なフォームに、MUI v5 の DateTime Picker を組み込んでみた

React Hook Form に MUI の DateTime Picker を組み込んだところ、いくつか悩んだことがあったため、メモを残します。 目次 環境 作るもの 実装の流れ MUI で Modal を作る React Hook Form を使ってフォームを作る MUI DateTime Picker と組み合わせる セッ…

React + localeText 設定済の MUI DataGrid にて、フィルタ用 Custom Operator の value を標準の Operator と同じ値にすると、自動で翻訳される

以前、MUI DataGrid の列の filterOperators に自作の Custom Operator を設定して、独自のフィルタ機能を実装したことがありました。 React + MUI のDataGridにて、ある列が複数の日付を持つデータに対し、valueFormatter・sortComparator・filterModelを使…

React + React Router v6 + MUI の Breadcrumbs で、動的ルーティングを含むパンくずリストを作ってみた

前回、MUI の Breadcrumbs のサンプルコードが React Router v6 では動かなかったため、React + React Router v6 + use-react-router-breadcrumbs を使って、パンくずリストを作ってみました。 React + React Router v6 + use-react-router-breadcrumbs でパ…

React + React Router v6 + use-react-router-breadcrumbs でパンくずリストを作ってみた

React + MUI の Breadcrumbs では、 React Router と統合して扱えます。 Integration with react-router | React Breadcrumbs component - MUI ただ、サンプルコードは React Router v5用のもののようで、 codesandbox で公開されているデモがエラーで止まっ…

Ruby 3.0.3 にアップデートしたところ、bootsnap の影響で Rails が起動しなくなったので対応した

先日、Rubyのセキュリティリリースが出ていました。 Ruby 3.0.3 Released そのため、Rubyのバージョンを 3.0.3 に上げたところ、Rails や RSpec が起動しなくなったため、対応した時のメモを残します。 環境 Ruby 3.0.3 Rails 6.1.4.1 bootsnap 1.9.1 エラー…

React + MUI DataGrid 用に作成した Custom Operator を、Jest + jest-mock-extended でテストしてみた

以前、 MUI DataGrid の Custom Operator を作りました。 React + MUI のDataGridにて、ある列が複数の日付を持つデータに対し、valueFormatter・sortComparator・filterModelを使って表示・ソート・フィルタしてみた - メモ的な思考的な この時に作成した C…

Ruby の WebMock では、クエリ文字列も考慮して stub_request する

外部サイトへのアクセスが発生する、 Railsアプリがあるとします。 このRailsアプリに対するテストコードでは、外部サイトへのアクセスが発生しないよう、 WebMock を使うのが便利です。 bblimke/webmock: Library for stubbing and setting expectations on…

React + MUI のDataGridにて、ある列が複数の日付を持つデータに対し、valueFormatter・sortComparator・filterModelを使って表示・ソート・フィルタしてみた

React の MUI (旧 Material UI) では、コンポーネントとして DataGrid が提供されていることから、グリッド表示したい時に便利です。 React Data Grid component - MUI そんな中 const rows = [ { id: 1, name: 'シナノドルチェ', purchaseDate: [new Date(2…

JetBrains IDEの2021.2系から Code completion の背景色設定が変わってたので、修正してみた

JetBrains IDE (PyCharmやRubyMine、IntelliJ IDEAなど) を2021.2系へバージョンアップしたところ、Code completion の背景色設定が変更されたようで、白っぽくなってしまいました。 これでは目がつらいので、設定変更したときのメモを残します。 目次 環境 …

React + Rails + Vite.js なSPAアプリをモノレポで作ってみた

RailsでWebpacker以外の方法で React のSPAアプリが作れないかを調べたところ、 vite_rails がありました。 Rails Integration | Vite Ruby webpackやRailsのWebpackerに詳しくないため、React と Rails と Vite.js を組み合わせてSPAが作れそうなのは魅力的…

Play Framework の View に React + TypeScript を組み込み、 sbt + Vite.js ですべてコンパイルできるようにしてみた

Play Framework アプリに React を組み込んでみる機会がありました。 ただ、Reactを使って SPA にするのではなく、まずは ルーティングは Play Framework (バックエンド)が担当 Play Framework の View上で React が動く Scriptタグでコンパイルした React …

Scala + Play Framework 2.8 系で、設定ファイル(application.conf)の内容を読み込む

Scala + Play Framework 2.8系で、設定ファイル (application.conf) の内容を読み込む機会があったため、メモを残します。 目次 環境 方法 動作確認 ソースコード 環境 Scala 2.13.6 Play Framework 2.8.8 方法 Play Framework 2.8系では Controllerで play.…

Scala + Play Framework なアプリを作る前段として、 sbt new した後のコードを読んで分かったこと/分からなかったことをまとめてみた

Scala + Play Framework を試してみようと、公式ドキュメントの Getting Started の Already know a bit about Play? に従ってみました。 Getting Started with Play Framework ただ、試してみていくうちに 分かったこと 分からないこと をまとめたくなった…

Next.js に CASL React を組み込んで権限管理をしてみた

アプリケーションの権限設計について調べていたところ、以下の記事に出会いました。 アプリケーションにおける権限設計の課題 - kenfdev’s blog 権限設計で考えなければいけないことがまとまっていて、とても参考になりました。ありがとうございました。 上…

Next.js と express-openid-connect を使った Relying Party を TypeScript 化してみた

前回、Next.js と express-openid-connect を使った Relying Party を書きました。 Next.js と express-openid-connect を使って、認証が必要/不要な各ページを持つ Relying Party を作ってみた - メモ的な思考的な 上記の記事では JavaScript で実装してい…

Next.js と express-openid-connect を使って、認証が必要/不要な各ページを持つ Relying Party を作ってみた

前回、Next.js + express-openid-connect を使って、全てのページでOpenID Connectによる認証が必要な Relying Party を作りました。 Next.js + express-openid-connect を使って、バックエンドで OpenID Provider と通信する Relying Party を作ってみた - …

Next.js + express-openid-connect を使って、バックエンドで OpenID Provider と通信する Relying Party を作ってみた

以前、Railsを使って OpenID Connectの Relying Party (RP) を作りました。 Railsとdoorkeeper-openid_connectやOmniAuth を使って、OpenID Connectの OpenID Provider と Relying Party を作ってみた - メモ的な思考的な そんな中、Next.jsを使う機会があっ…

doorkeeper製 OAuth 2.0 のAuthorization Serverにて、色々な状態のアクセストークンを使って Introspection エンドポイントの挙動を確認してみた

2021/08/26 00:42 追記 ご指摘いただいた内容に合わせ、記事を修正しました。 主な修正点は以下の通りです。 タイトルをOAuth2.0な文脈へ変更 環境に Resource Server を追加し、Resource Serverの中で Authorization Server の Introspection エンドポイン…

ヒドいぎっくり腰になったので、経過を記録してみた

最近、ヒドいぎっくり腰(急性腰痛症)になりました。 過去に何回かぎっくり腰をやった時は、しばらく安静にしていることで、いずれもその日のうちに動けるようになっていました。 それに比べて今回のはヒドく、人生初の救急車や入院を経験し、各方面にご迷惑…

Railsとdoorkeeper-openid_connectやOmniAuth を使って、OpenID Connectの OpenID Provider と Relying Party を作ってみた

OAuth2やOpenID Connectの理解を深めようと思い、 OAuth徹底入門 セキュアな認可システムを適用するための原則と実践(Justin Richer Antonio Sanso 須田 智之 Authlete, Inc.)|翔泳社の本 Auth屋さんの書籍 【電子版】雰囲気でOAuth2.0を使っているエンジ…

ブログのデザインを調整してみた

「昔やったことがある気がする」という時に、自分のブログを検索することがよくあります。 ただ、2014年からブログのデザインを変更していないせいか、なんとなく読みづらく感じていました。 振り返ってみると、2014年当時のブログ環境からは 開発環境がWind…

Railsで、Action Mailerの callback・interceptor・observer の実行タイミングを調べてみた

RailsのAction Mailerには callback 3 Action Mailer Callbacks | Action Mailer Basics — Ruby on Rails Guides interceptor 7.1 Intercepting Emails | Action Mailer Basics — Ruby on Rails Guides observer 7.2 Observing Emails | Action Mailer Basic…

Rails + Active Adminで、Active Admin向けのテストコードを request spec で書いてみた

Active AdminのControllerに手を加えた際、テストコードがほしくなりました。 Wikiを見たところ、controller specでの実装でした。 Testing your ActiveAdmin controllers with RSpec · activeadmin/activeadmin Wiki ただ、現在では controller spec よりも…

Active AdminのControllerでは、Strong Parameters のメソッド名は permitted_params だった

Rails の Controller で Strong Parametersを使う場合、 ***_params というプライベートメソッドを定義しています。 一方、Active Admin の Controller で Strong Parameters を使う時は、デフォルトだとどんな名前になるのかを調べた時のメモです。 目次 環…

Rails + Active Adminで、Active Admin Controllerのcreate/update/destroyをオーバーライドする

Railsでは、Active Adminを使うことで管理者画面を容易に作ることができます。 Active Admin | The administration framework for Ruby on Rails そんな中、Active AdminでModelの作成・更新・削除を行うと同時に、Modelとは関係ないAPIを呼ぶ処理を追加した…

Railsで、同一のbefore_actionを別オプションで複数定義した場合、最後の定義が有効になる

Railsで before_action などのフィルタでは、 only などのオプションを追加することで対象のActionを制限できます。 8 フィルタ | Action Controller の概要 - Railsガイド そんな中、同一の before_action を別オプションで複数定義してしまったことがあっ…

Rails + 名前空間付きのActionMailerを使う場合に、件名をi18nのロケールファイルで指定してみた

Railsガイドによると、Action Mailer の件名は mailメソッドに件名が渡されなかった場合、Action Mailerは既存の訳文の利用を試みます。「<mailer_scope>.<action_name>.subject」というパターンでキーが構築されます。 4.6 Action Mailerメールの件名を訳文に置き換える | Rails 国際化</action_name></mailer_scope>…