Skip to content

Latest commit

 

History

History
111 lines (97 loc) · 5.7 KB

3rd_20170130.md

File metadata and controls

111 lines (97 loc) · 5.7 KB

本日の流れ

  • 自己紹介
  • 本編
  • 次回のテーマリクエスト・感想等(あれば)

参加者のお名前(時計回り)

  • ebi(主催者)
  • Ueharaさん edutech
  • Takahashiさん 決済系
  • shinsokuさん
  • toruちゃんさん 動画配信
  • sanoさん(スタッフ)

画像回りについて

画像周りのgem

carrierwave

  • carrierwaveで、gem fogじゃなくて gem fog-awsとする方法 gem fogと記載すると(当たり前だけど)ライブラリ全体を読み込んでしまう。そこで
gem 'fog', require: "fog/aws"
gem "carrierwave"

のように書くのだが、gem 'fog', require: "fog/aws"ではなくgem fog-awsと書いた方がそもそも全部インストールしないので 良いと思うけど、carrierwaveのconfigの書き方など変わらないのだろうか。 →ドキュメントに書いてあった

Paperclip

MacBook-Pro:pictures ssssss$ rails c
Running via Spring preloader in process 1552
Loading development environment (Rails 5.0.1)

Frame number: 0/20
[1] pry(main)> u = User.first
  User Load (0.2ms)  SELECT  "users".* FROM "users" ORDER BY "users"."id" ASC LIMIT ?  [["LIMIT", 1]]
=> #<User:0x007fe6270b8a78
 id: 2,
 name: "test",
 password: "aaaaaa",
 created_at: Mon, 30 Jan 2017 10:45:51 UTC +00:00,
 updated_at: Mon, 30 Jan 2017 10:45:51 UTC +00:00,
 avatar_file_name: "06_-_1.jpg",
 avatar_content_type: "image/jpeg",
 avatar_file_size: 49083,
 avatar_updated_at: Mon, 30 Jan 2017 10:45:51 UTC +00:00>
[2] pry(main)> u.avatar.url
=> "/system/users/avatars/000/000/002/original/5d38119fbab8f4a2648c5b5a30832e24b965f598.jpg?1485773151"
[3] pry(main)> u.avatar.default_url
NoMethodError: undefined method `default_url' for #<Paperclip::Attachment:0x007fe62254da70>
Did you mean?  default_style
from (pry):3:in `<main>'
[4] pry(main)> u.avatar.url
=> "/system/users/avatars/000/000/002/original/5d38119fbab8f4a2648c5b5a30832e24b965f598.jpg?1485773151"
[5] pry(main)> 
  • 後からクリッピングサイズを追加すると、元から登録されてた画像には適用されない(?)ですが良い方法ありますか?
    • carrierwaveでは、#recreate versionsというメソッドがあり、後から既存の画像ファイルをリサイズできる
    • バッチで対処
    • save(touch: false)で、updated_atが更新されずにsaveできる

画像処理

ImageMagick

ストレージ

Fog

  • (aws-sdkと比較した)fog-awsの利点を知りたい fog-awsはテストフレームワークがshindo(minitestとかrspecじゃない) aws-sdkはapiラッパークラス(Aws::S3::Client等)と抽象化されたクラス(a higher-level abstraction for working with AWS resources) があるそう。 前者はBaseクラスを継承していて、後者はResourceやBaseを継承しているという違いがある(?)。 後者のお蔭で、SQSのlong pollingなど、便利な機能が使えるようになる。

fog-awsはapiラッパーのみで使える機能が限られている(long pollingなど)。

  • s3でファイルアップロードするときにテストってどう書いている? unitテストでは外部通信をやらない stubで正常系のjsonが返ってくるのをチェックする web通信をmockするgemがある(こちらVCR便利(apiを叩いて返ってきたjsonをファイルに保存する。2回目はそのファイルを見る) それでも通信の確認をしたい時は結合テストで、1シナリオだけ作成する。 webmockあると異常系のテストがやりやすい(例えばawsが500エラー出す場合)

フリートーク

  • rubocop指摘された後どの程度従う?(sanoさん) 次回の表参道.rbで静的解析のLTあります! チームで守るべき規約を守らせるもの。チームの実態に即し、ルールを決めるのが良い onkcopには理由付け forkwellcopもあるよ! 一度onにして、議論する 永和さんもあるよ! rubocopにプルリク投げるとabcsizeで怒られるので気をつけましょう。

次回テーマリクエスト

なし