ジョギング
- 香椎浜 x 2 周
- 走りやすい日が続いている
日課
- お休み
fukuoka.ex #8 に参加した
@piacere_ex さんの Excel で表現するとどうなるかを比較しながら Enum モジュールを説明しているのがマジ神がかって解りやすかった.
ゴールデンウィークに改めて入門してみようかなと思っていたら, @piacere_ex さんに早速振られて笑った.
ありがとございますー、ぜひこれで、GWシリーズの新シリーズ、オナシャス😆 #fukuokaex https://t.co/VKt9y078aU
— piacere (@piacere_ex) 2018年4月20日
あと, @zacky1972 さんの独自実装 Erlang VM である, ZEAM の話も面白かったが, 話の前半で「並行と並列」の違いについての説明が目から鱗だった.
並列Elixirプログラミングことはじめ〜ZEAMで目指すことは何か
今日のるびぃ ~ awspec に送った pull request ~
今回送った pull request
S3 バケットを構成をテストするリソース (s3_bucket) に lifecycle rule を生成する Generator を追加した.
地味に大変だった
aws-sdk-ruby の get_bucket_lifecycle_configuration で取得した情報から, 以下のようなテストコードに変換するのが地味に大変だった.
describe s3_bucket('my-bucket') do it do should have_lifecycle_rule( id: 'MyRuleName', noncurrent_version_expiration: { noncurrent_days: 1 }, expiration: { days: 2 }, transitions: [{ days: 3, storage_class: 'GLACIER' }], status: 'Enabled' ) end it do should have_lifecycle_rule( id: 'MyRuleName2', prefix: '123/', noncurrent_version_expiration: { noncurrent_days: 2 }, expiration: { days: 3 }, transitions: [{ days: 5, storage_class: 'STANDARD_IA' }, { days: 10, storage_class: 'GLACIER' }], status: 'Enabled' ) end end
特に, transitions: [{ days: 3, storage_class: 'GLACIER' }],
の部分.
get_bucket_lifecycle_configuration で取得すると, 以下のようなハッシュで返ってくるんだが...
[{:days=>3, :storage_class=>"GLACIER"}]
これを,
[{ days: 3, storage_class: 'GLACIER' }],
に書き換えるのに一週間以上の時間を要した...
Fukuoka.rb にて
結局, Fukuoka.rb に参加して, @udzura さんや @k1LoW さんの助言を頂きつつ, 以下のようなコードになった.
def generate_lifecycle_rule_transitions_spec(transitions_rule) rules = [] transitions_rule.each do |line| elements = [] line.each do |k, v| elements << case v when Numeric "#{k}: #{v}" when String "#{k}: '#{v}'" else "#{k}: '#{v.inspect}'" end end rules << '{ ' + elements.join(', ') + ' }' end '[' + rules.join(', ') + ']' end
ポイントは以下の通り.
- 地道に Array から要素となる Hash を取り出して, Key と Value を each で回す
- Value のクラスを case 文で Numeric と String で分岐させる
- Numeric と String クラス以外のデータが value に定義されている場合は, 人間に解りやすい状態で出力する (inspect メソッドを利用する)
ということで, 無事にリリースすることが出来た.
Fukuoka.rb には, 以前から行きたい, 行きたいと思っていたけど, もっと早く行くべきだったと思った次第.
アリガトウゴザイマス.