Rspecで配列の値を検証するcontain_exactly

こんにちは!kossyです! さて、今回はRspecで配列の値を検証するcontain_exactlyの使い方を ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3.2 rspec-rails 4.0.1 使い方 前提として、TenantモデルとUserモデル(自己参照付き)があるとして、…

Angular CLI 11 で ng new してみた

こんにちは!kossyです! さて、今回はAngular11が最近リリースされたとのことで、 早速ng newコマンドを試して、何が変わったのか検証してみたいと思います。 環境 node 12.13.1 npm 6.14.8 Angular 11.0.1 コマンド実行! $ ng new sample ? Do you want t…

Angular 11 へのアップデート時の 'name' is defined as an accessor in class 'CdkColumnDef' エラーの対処法

こんにちは!kossyです! さて、今回はAngular 9のアプリケーションを11にアップデートした際に発生した、 'name' is defined as an accessor in class 'CdkColumnDef' エラーの対処法について、 ブログに残してみたいと思います。 環境 node 12.13.1 npm 6.…

graphql-rubyのGetting Startedを翻訳してみる

こんにちは!kossyです! さて、今回はGraphQLの勉強がてら、graphql-rubyのreadmeを翻訳してみようと思います。(こうでもしないと真面目に読まない気がして、、、) Getting Startedまでの翻訳を頑張ってみます。 偉大なる本家様リポジトリはこちら Getting …

RailsのGem devise のvalidatableのソースコードを読んでみた

こんにちは!kossyです。 さて、今回はRailsプロジェクトにおいて認証機能を作成する時に用いられるGemであるdeviseの、 validatableのソースコードを読んでみたので、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 devise まずはドキュメ…

RailsのRspecでランダムに落ちるテストを再現したい

こんにちは!kossyです! さて、今回はRailsでテストツールにRspecを採用している際に、 ランダムに落ちるテストをseed値を指定することでもう一度再現する方法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS catalina 設…

Railsのcreated_atがどのようにして自動で保存されているのか調べてみた

こんにちは!kossyです! さて、今回はRailsのcreated_atカラムにどのようにして値が自動で保存されるかについて、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS catalina まずはドキュメントを探す 自分のググり方が悪いのか、解説…

Exifとはなんぞや

こんにちは!kossyです! さて、今回は恥ずかしながらExifという用語を初めて耳にしましたので、 備忘録としてブログに残してみたいと思います。 Exifってなんぞや 初耳でしたので調べてみました。以下引用です。 Exifとは、デジタルカメラで撮影した画像デ…

Rubyで例外を起こすためのraiseとfailの違い

こんにちは!kossyです! さて、今回はRubyで例外を起こすためのraiseとfailの違いについて、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 MacOS catalina 両者に違いはない 調べてみましたが、raiseとfailには処理の違いはないようです。Rubyスタイ…

Railsのdependent: :restrict_with_error と :restrict_with_exception はなにが違うのか

こんにちは!kossyです! さて、今回はRailsのdependentオプションに指定できる、 restrict_with_error と restrict_with_exception はなにが違うのかについて、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Catalina そもそもdepe…

Rubyのdigメソッドの便利な使い方

こんにちは!kossyです! さて、今回はRubyのdigメソッドの便利な使い方について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 MacOS Catalina まずはドキュメント はい、まずはドキュメントを読んでみましょう。Hashクラスに生えているdigメソッド…

RailsのActiveRecordにidsメソッドが生えてた

こんにちは!kossyです! さて、今回はActiveRecordにidsメソッドの使い方について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Catalina まずはドキュメントを見る なにはともあれまずはAPIドキュメントをみてみます。 Pluck al…

Railsでroutingにconstraintsメソッドで制約を与える

こんにちは!kossyです! さて、今回はRailsでroutingにconstraintsメソッドで制約を与える方法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Cathalina 使い方 例えば、正規表現と組み合わせて、以下のように設定できま…

人事情報をRDBで管理する場合、どの情報を元に突合を行うべきか考えてみた

こんにちは!kossyです! さて、今回は人事情報(姓名、住所、役職、社員番号、メールアドレス、電話番号等)をRDBに格納する際、 どの情報を元に突合(存在確認)を行うべきか、考えてみたいと思います。 結論は、要件次第 はい、この結論だと記事として成立し…

Rubyの分割代入でワンライナーでfreeze付き定数を定義してみる

こんにちは!kossyです! さて、今回はRubyの分割代入でワンライナーでfreeze付き定数を定義する方法について、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 方法 早速コード全晒しです。 INITIAL_PLAN_PRICE, SECOND_PLAN_PRICE, THIRD_PLAN_PRICE =…

RailsのActiveRecordのmergeメソッドで綺麗にクエリを書いてみた

こんにちは!kossyです! さて、今回はRailsのActiveRecordのmergeメソッドを使って、 SQLを組み立てる方法について、ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Catalina 前提 テーブル定義は以下とします。・tenantsテーブル ・…

キャッシュレス推進協議会のAPI開発原則を読んでみた

こんにちは!kossyです! さて、今回はキャッシュレス推進協議会のAPI開発原則が 普段のAPI設計にも活かせると思ったので、ブログにて紹介できればと思います。 本記事は https://www.paymentsjapan.or.jp/wordpress/wp-content/uploads/2019/11/API_Guideli…

RDBの履歴テーブルにdefault値を設定するのは避けよう

こんにちは!kossyです! さて、今回はRDBの履歴テーブルにdefault値を設定するのは避けよう、という提言を ブログに残してみたいと思います。 前提 読書管理アプリ見たいなものを想像してください。読書記録の編集履歴を保存する機能があって、reading_reco…

日本の健康施策の変遷その1

こんにちは!kossyです! さて、今回は日本の健康施策の変遷について調べてみたので、 自分なりにまとめてみようかと思います。 日本の健康施策について 明治期初期 ・江戸〜明治初期頃は東洋医学に基づく漢方医が大多数で、西洋医の数は非常に少なかった ・…

医薬品マスターをYAMLファイル化するRubyスクリプト

こんにちは!kossyです! さて、今回は 診療報酬情報提供サービス で提供されている医薬品マスターCSVをYAMLファイル化するRubyスクリプトを書いてみたので、 ブログに残してみたいと思います。 環境 Ruby 2.6.3 コード全晒し 通常YAMLファイルを書き出す場…

Railsのmigrationでテーブル定義やカラム追加を行うときはコメントを入れるようにしよう

こんにちは!kossyです! さて、今回はRailsのmigrationでテーブル定義やカラム追加を行うときにコメントを入れる方法を ブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Catalina commentオプションを使えば簡単に定義できる Rails5系…

機能整理のコツについて

こんにちは!kossyです! さて、今回は一つの機能を実装するときに使えるFWめいたものを ブログに残してみたいと思います。しれっと更新するつもりです。 以下全てサンプルです。 目的(その機能が必要な背景や機能改修方針を記載する) 販促のためにポイント…

Railsでprawnを使ってPDFファイルを出力したい

こんにちは!kossyです! さて、今回はRailsでprawnを使ってPDFを出力する方法をブログに残してみたいと思います。 環境 Ruby 2.5.1 Rails 5.2.3 MacOS Mojave セットアップ gemfileに下記の2つのGemを追加します。 gem 'prawn' gem 'prawn-table' https://g…

RailsでActiveRecordのserializeで保存したスナップショットと内部クラスを使ってデータを返す

こんにちは!kossyです! さて、今回はRailsでActiveRecordのserializeで保存したスナップショットと 内部クラスを使ってTemporaryなデータを返す方法をブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave ActiveRecordのserialize…

Railsのrobots.txtの役割とは?

こんにちは!kossyです! さて、今回はRailsのpublicリポジトリ下にデフォルトで作成されるrobots.txtの役割について、 ブログに残してみたいと思います。 アプリケーションをクローリング対象から外すため 平たく言うと、アプリをググれなくするためですね…

RubyでXMLファイルを作成したい

こんにちは!kossyです! さて、今回はRubyの標準モジュールである rexml/document を使って、XMLファイルを作成する方法について、 ブログに残してみたいと思います。 XMlとは Extensible Markup Language(エクステンシブル マークアップ ランゲージ)は、…

UCSとCSI

こんにちは!kossyです! さて、今回はプログラミングにおけるテキストデータ取り扱い時の用語であるUCSとCSIについて、 ブログに残してみたいと思います。 UCS方式 UCSはUniversal Character Setの略で、日本語にすると汎用文字集合という意味になります。 …

JavaScriptの歴史を学べる動画

こんにちは!kossyです! さて、今回は「しまぶー」さんという方のJavaScriptの歴史についての動画の 要点をまとめたものをブログに残してみたいと思います。 しまぶーさんの動画はこちら 第1回 第2回 第3回 第4回 第5回 以下、要点をまとめたメモになります…

Effective Ruby 第7章まとめ

こんにちは!kossyです! さて、今回はEffective Rubyの第7章の覚えておくべき事項を ブログにまとめてみたいと思います。前回までの章をまとめたものはこちら Effective Ruby 第1章まとめ - その辺にいるWebエンジニアの備忘録 Effective Ruby 第2章まとめ …

Railsで人名が入ったCSVをopenする時のencodingはShift_JISではなくcp932にすべし!

こんにちは!kossyです! さて、今回はRailsで人名が入ったCSVをopenする時のencodingはShift_JISではなくcp932にすべし、 という自戒を込めた備忘録をブログに残してみたいと思います。 環境 Ruby 2.6.3 Rails 6.0.3 MacOS Mojave Shift_JISとcp932の違いに…