2021-01-01から1年間の記事一覧

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>…

Railsで、DeviseのMailerにControllerから値を渡す方法を調べてみた

Deviseの recoverable confirmable lockable の各モジュールでは、各種確認のためにメールを送信します。 メール送信時に使われるのが Devise::Mailer にある reset_password_instructions などのメソッドです。 https://github.com/heartcombo/devise/blob/…

Railsにて、Controllerのactionにクエリストリング付でリダイレクトする

RailsでControllerのactionにリダイレクトする時は redirect_to action: :index のように書くものの、クエリストリング付でリダイレクトする時はどうすれば良いか調べた時のメモ。 環境 Rails 6.1.4 対応 redirect_to の引数を def move_with_field redirect…

Railsで、うっかりトランザクションをネストしたところロールバックされなくなったため、requires_newとjoinableを調べてみた

Railsで、うっかりトランザクションをネストしてロールバックされなくなったので、requires_newとjoinableを調べた時のメモを残します。 なお、調査時のソースコードが長くなってしまったことから、一部のみ記載しています。 もしよろしければ、Github上のソ…