Ruby - sendと[]を使ってハッシュや配列の値を取得
こういうことをしたいことは普段はないと思いますが、Tipsとして残しておきます。
array = ['hoge', 'fuga'] pp array.send(:[], 0) #=> "hoge" pp array.send(:[], 1) #=> "fuga"
hash = { name: 'Taro' } pp hash.send(:[], :name) #=> "Taro"
関連記事(sendを使わないパターン)は以下になります。
Ruby - ハッシュから .[] で値を取り出す
普通は hash[:name]
のように書きますが、「こういう書き方もあるのか」と思ったので、メモとして残しておきます。
hash = { name: 'Taro' } pp hash.[](:name) #=> "Taro"
配列の場合はこちら
Ruby - 配列から .[] で値を取り出す - わかるってたのしい
Ruby - 配列から .[] で値を取り出す
普通は array[0]
のように書きますが、「こういう書き方もあるのか」と思ったので、メモとして残しておきます。
array = ['hoge', 'fuga'] pp array.[](0) #=> "hoge" pp array.[](1) #=> "fuga"
ハッシュの場合はこちら
Ruby - ハッシュから .[] で値を取り出す - わかるってたのしい
IntelliJ IDEA Keybindings - 普段はJetBrains系のエディタを使っている人に便利なVSCodeの拡張
僕は普段からRubyMineを使っているのですが、VSCodeも使えるようになっておきたいと考えていました。
ただ、RubyMineのショートカットに慣れすぎていて、操作する時に脳内でコンテキストスイッチが発生するのが億劫な状況でした。
そんな時に IntelliJ IDEA Keybindings
というプラグインを見つけたのでインストールしてみました。
IntelliJ IDEA Keybindings - Visual Studio Marketplace
まだまだVSCodeは本格的には使ってはいませんが、RubyMineとあまり変わらない感じで操作できているので良さそうだと考えています。
JavaScriptで早期return
if (!event.originalEvent.state) return;
AWS CLIのhelpコマンド
サービスにどんなものがあるか
aws help
サービスのコマンドにどんなものがあるか
aws サービス名 help
aws rds help
サービスのコマンドのオプションにどんなものがあるか
aws サービス名 コマンド help
aws rds describe-db-snapshots help
aws-sdk-s3で署名付きURLのスタブを生成
Gemの aws-sdk-s3
を使った署名付きURLのスタブの生成について、以下のissueにやり方が書いてあったのでメモ。
Stubbing issue with Presigner#presigned_url · Issue #2092 · aws/aws-sdk-ruby
s = Aws::S3::Client.new(stub_responses: true) #=> #<Aws::S3::Client> p = Aws::S3::Presigner.new(client: s) #=> #<Aws::S3::Presigner:0x007fdbcb4d9758 @client=#<Aws::S3::Client>> p.presigned_url(:put_object, bucket: 'foo', key: 'bar') #=> "https://foo.s3.us-stubbed-1.amazonaws.com/bar?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=stubbed-akid%2F20210322%2Fus-stubbed-1%2Fs3%2Faws4_request&X-Amz-Date=20210322T064324Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=6f6b14b2ee48dca1e0f02a1e6ea5ea59bfb3f7ba4b33797ad252639d5593604b"