今更感があるが、Rubyのaws-sdk-s3 gemを使ってS3と戯れた記録を残す。 事前準備 Gemとしては aws-sdk-s3 だけ使えれば良いので、これをGemfileに書く。 # ./Gemfile source "https://rubygems.org" git_source(:github) {|repo_name| "https://github.com/#…
環境 insert_all, insert_all! upsert_all その他のメモ Rails6にて insert_all, insert_all!, upsert_all という一括作成・更新の機能が導入された。 railsguides.jp これらのメソッドを、公式のAPIドキュメントを読みつつ手元の環境で実際に使ってみた記録…
rescueした例外のmessageを上書きしてre-raiseしたい場合、Exception#exception を使うとスッキリ書ける。 https://docs.ruby-lang.org/ja/latest/method/Exception/i/exception.html 引数を指定しない場合は self を返します。 引数を指定した場合 自身のコ…
最近読んで良かった技術本『雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド』の紹介をしたい。 雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド (技術の泉シリーズ(NextPublishing…
はじめに 検証環境、ライブラリ 基本方針 Request spec ステータスコードが xxx であること レスポンスボディに xxx が含まれていること データが新規作成されていること データが更新されていること データが削除されていること リダイレクトされること フ…
ActiveSupport::Concern を extend したモジュールは以下の機能が使えるようになる。 class_methods do .. end ブロックに定義したメソッドをクラスメソッドとして、include する側のクラスに取り込む included do .. end ブロックに定義した処理を include …
環境 事前準備 Flash は Rails 内部でどのように管理されているか 実際に動かして確認する Flash はどのようにして「直後のリクエスト」でだけ参照できるようにしているか 事象の確認 (1) Flashをセットするリクエスト(再掲) (2) Flashを参照するリクエス…
前提 全体的な流れ 現在のECSタスク定義を取得する 現在のECSタスク定義をベースに、新しいタスク定義を作成する 新しく作成したタスク定義をAWS上に登録する 新タスク定義を使うよう、ECSを更新をする デプロイの最終確認をする まとめ ecs-deploy というデ…
最初に結論から 一方が正常な振る舞い、もう一方は特殊な振る舞いと考えられる場合はガード節を使う 双方とも同等に正常な振る舞いと考えられる場合は、if-then-else構文を使う 詳細 ガード節の有効性 プログラムを書いていると、様々な条件が考えられ、それ…
Procオブジェクトは #call を使って実行することが多いと思う。 fn = Proc.new { |v| puts v } fn.call("Hello, world!") # => "Hello, world!" しかし、次のように [] を使っても実行できるのだ。 fn = Proc.new { |v| puts v } fn["Hello, world!"] # => "…
自分は左側にエディタ、右側にターミナルという配置で作業をすることが多いのだけれど、作業中にパネルのサイズを調整したくなることがよくある。 左にエディタ、右にターミナルの図 このサイズの調整をマウスを使わずに行いたい!VSCodeにそういった機能は…
Protocol Buffersでサービスの定義を書く Protocol BuffersからRubyコードを生成する サーバの実装を書く クライアントからサーバへrpcリクエストを送る 番外編:インターフェース定義に反するレスポンスを返すとどうなる? gRPC公式のRuby版チュートリアル…
configure を使ったサンプルコード configure メソッドの実装 Configuration モジュールの取り込みとextend 設定項目の管理とクラスインスタンス変数 まとめ Rubyのライブラリで設定を管理するときに、次のようなパターンのコードをよく見ると思う。 Xyz.con…
&& && をよく使うのは、if 式などでの条件を書くときだろう。つまるところ真か偽の結果を得ることを期待していると思う。 cond1 = true cond2 = false cond3 = true if cond1 && cond2 # 実行されない end if cond1 && cond3 # 実行される end ここで気をつ…
mysqldumpコマンドのデフォルト状態で出力されるINSERT文にはカラム名の情報が含まれていない。以下例(※ 見やすいようにインデントしている)。 INSERT INTO `users` VALUES (1,'taro',20,'male',1,'2019-02-13 23:44:02','2019-02-13 23:44:02'), (2,'jiro…
use_transactional_fixtures 削除の仕組み before(:each) と before(:all) Tips 参考リンク RailsアプリでRSpecを使うと通常example実行のたびにデータが削除されるようになっているが、これが具体的にどのように行われているかについて。 検証環境は以下の…
ふと考えたことをとりとめもなく書いてみる。 書きながら自分と対話・思考しながら物事を進めるスタイル 自分は仕事をするときに、作業の記録を書き残しながら進めることが多い。 書いているのは以下のような内容。 何のためにやるのか どうしてやることにな…
何らかの追加実装の作業をしているとき、往々にして既存のコードと類似した実装をする、あるいはそうできる場面に遭遇することがあると思う。 このような時、既存のコードと同じパターン・同じ構成で実装するというのは1つの選択肢になる。 なぜならそのよう…
環境 Rails 5.1.6 MySQL 5.7.21 状況 データベースはまだ存在しないが、ActiveRecordでMySQLへの接続だけは確立したい。 何も考えずに次のようなコードを実行すると... ApplicationRecord.connection.execute("<なんかSQL>") 次のようなエラーが起こる。 Act…
結論:springの再起動が必要だった あらまし Ruby On Railsアプリケーションの開発中、app/以下に新しくvalidatorsというディレクトリを作ることになった。 最近のRailsではapp以下のファイルを自動で読み込んでくれるようになっているので、追加の設定は不…
draperとは なぜdraperを使うのか 使ってみる セットアップ デコレートメソッドを追加する Controllerでモデルをデコレートする Viewでデコレートメソッドを呼び出す アソシエーションに対応する その他のメモ draper というデコレーター(またはプレゼンタ…
出鼻をくじかれる README.mdを読んだ fast_jsonapiの登場 Getting Started アソシエーションに対応させる アダプタを切り替える 独自の属性を追加する その他気になった機能 使ってみての雑感 ActiveModel::Serializers(AMS) という、出力するJSONをいい感じ…
SOP(Same Origin Policy)の理解が怪しいなぁと思ったのでちゃんとした仕様を調べた。 同時にCORS(Cross Origin Resource Sharing)についても調べることになったのでまとめて整理した。 SOP(Same Origin Policy: 同一生成元ポリシー) Webブラウザなどの…
スクラムでプロダクト開発をするようになって、約1年が経過した。 スクラムは実によくできたフレームワークであり、スクラムから得られたものはたくさんある。 例えば.. 今自分がやっていることに対して納得感を持って取り組むことができるようになった 発生…
三浦半島を自転車で巡ってきたのでその記録を残す。 三浦半島とは 三浦半島(みうらはんとう)は、神奈川県南東部にある半島である。 ※ from: Wikipedia 地図で言うと大体この辺り。 ルート(当初計画) ルートは、大まかに次のように設定した。 地元の駅 → …
あらまし 最近TOEICのリスニング問題を解いているのだが、びっくりするくらい全然わからない。 これはアカンということで自分なりに原因と対策を考えてみたい。 解けないのはPart3とPart4 TOEICのリスニングは全部で4つのPartから構成されるようだ。 Part1: …
成るようになる いろいろと気を揉んだり焦ったりしなくても物事はうまい具合に進行する、流れに任せてしまえばよい、といった意味合いで用いられる表現。「ケセラセラ」とも言う。 ※ from: 成るようになるとは - 日本語表現辞典 Weblio辞書 人事を尽くして天…
ベイマックス (字幕版)発売日: 2015/04/17メディア: Amazonビデオこの商品を含むブログを見る 中身のない日記です。 AmazonでKindle本50%OFFセールがやっていたので適当に気になった本を数冊買ったところ、Amazonビデオの割引クーポンが送られてきたのでベ…
LPICレベル1を受験し、無事に合格できたので感想やら何やらを書いていく。 受験の動機 ことのはじまりはSREに興味があって、SREにどんな技術セットが求められるかを調べたりしていたところ、Linuxの深い知識を求められる傾向があると気づいたことだった。 ま…
『Web開発者のための大規模サービス技術入門』を読んだ。とても勉強になった。 [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)作者: 伊藤直也,田中慎司出版社/メーカー: 技術評論社…