AWS Systems Manager Session Manager を使ってSSHポートを開けずにVSCode のRemote - SSHで開発する

こんにちは、サービス開発の丸山です。 今回は(も?)小ネタの紹介です。 私は VSCode の Remote - SSH という機能を使ってAWSのEC2にSSHして開発を行うことがたまにあります。 Remote - SSH とはその名の通りVSCodeでリモートのサーバーにSSH接続することで、…

【Ruby】Hashの構造チェックはパターンマッチを使うと簡単

こんにちは、サービス開発課の丸山です。 今回はRubyの小ネタの紹介です。 Hashの構造を検査するための方法いろいろ アプリケーションを書いていると、Hashの構造を確認してバリデーションしたい場合があると思います。 例えば、引数で渡されるあるHashが次…

【Cloud Automator】独自の休業日などに合わせて柔軟にジョブを制御する「スキップ日付指定」機能がリリースされました!

本日より、Cloud Automatorのタイマートリガージョブにおいて、「スキップ日付指定」を新たにご利用いただけるようになりました。 スキップ日付指定とは、特定の日のみ例外的にジョブの実行をスキップさせることができるものです。 従来のタイマートリガーで…

【Ruby】Rack の env に格納される "CONTENT_TYPE" が なぜ大文字・アンダースコア区切りなのか調べてみた

こんにちは、サービス開発課の丸山です。 最近REST APIのController Spec*1をかいていたところ、なかなか思ったようにテストが通らずはまってしまいました。 最終的には原因は「Content-Type」ヘッダーの指定のミスだったのですが、これが結構奥が深い問題だ…

【Ruby】thorの仕組みを調べてみた DSL編

今回はthorというRubyでタスクランナーを作るためのライブラリの仕組みについて、ソースコードを読んで調べてみたので紹介します。 この記事で引用するthorのコードは全てv1.1.0のものを参照しています。 thorとは thorはrakeのようにrubyで何らかのタスクを…

【Cloud Automator】ジョブワークフローの実行ログがダウンロードできるようになりました

Cloud Automatorのジョブログ、ポリシーログなどはこれまでCloud Automatorのコンソール画面からダウンロードすることができましたが、ジョブワークフローの実行ログに関してはダウンロードすることができませんでした。 先日のリリースから、ジョブワークフ…

【Rails】with_options ブロックの内側でさらにオプションを指定した場合の動作について

Railsのwith_optionsメソッドの細かい動作について調べました。

AWS SDK for Rubyの仕組みを調べてみた Seahorse::Client編

今回はAWS SDK for Ruby(version 3)でHTTPリクエストを発行するために使われている Seahorse::Clientというモジュールの仕組みについて調べてみたので、紹介します。 この記事で引用するソースコードは公開時点でのmasterブランチのものです。 引用したコー…

【Ruby】オブジェクトの集合を1つのオブジェクトとして扱う

オブジェクトの集まりを1つのオブジェクトとして扱いたいことってありますよね。 たとえば、トランプのようなカードゲームプログラムを書くときに、一枚一枚のカードはそれぞれオブジェクトにするとして、 プレイヤーの「手札」や「山札」はどのように扱え…

【PostgreSQL】 jsonb型カラムをSQLで検索・集計したい

Postgresでは9.2からjson型が、9.4からjsonをバイナリ解析して保持するjsonb型が使えるようになりました。 普段のアプリケーション開発ではRuby on Railsのstore_accessorを経由してjsonb型を使うことが多いので、そこまでjsonb型特有の文法で困ったことはな…

Rails + React のプロジェクトに Jest + Enzyme を導入してReactコンポーネントを単体テストする

Reactを利用しているRails プロジェクトにJestとEnzymeを導入して Reactコンポーネントのテストを書くことができたので導入手順をメモします。 当プロジェクトの環境は導入時点でRails5.2系で、webpackerとsprocketsが共存している状態でした。 Jestとは jes…