2018-10-01から1ヶ月間の記事一覧

開発備忘録 2018/10/25

RSpec で example の一覧を出力する RSpec の -f (--format) オプションを使って出力形式を指定します。 指定できる形式として p (progress) や d (documention) などがありますが、今回は d を指定します。(デフォルトは p) bundle exec rspec -f d spec/co…

開発備忘録 2018/10/24

MySQL で SELECT の結果に対して UPDATE を適用する status が temp のレコードを全て active にする。 UPDATE users, ( SELECT users.id FROM users WHERE status = 0 # 0: temp, 1: active, 2: leaved ) AS temp_users SET users.status = 1 WHERE users.i…

開発備忘録 2018/10/23

Web サイトを訪れたユーザーを特定するための方法 見出しの内容について本日相談を受けました。 私は Web にはあまり詳しくはないのですが、色々調べたので今日はそれについて書いていこうと思います。 Cookie まずは Cookie を利用した方法です。 サイトへ…

開発備忘録 2018/10/22

[RSpec] テストを保留にする skip と pending の違い skip example は実行されず、そのステータスは pending になります。 describe "an example" do it "is skipped" do skip end end => 1 example, 0 failures, 1 pending pending example でエラーが発生…

開発備忘録 2018/10/19

Ruby の代入演算子 ||= Ruby の実装でたまに見かけるこの記述について調べてみた。 user ||= fetch_user 上記の式は user が未定義だと fetch_user が呼び出されて user に代入され、そうでないなら user を返す。 何故こうなるのかが分からなかったが、どう…

開発備忘録 2018/10/18

acts_as_paranoid で Rails に soft delete を追加する ActiveRecord の destroy は物理削除でモデルを削除しようとします。 acts_as_paranoid という gem を使うことでこの挙動を論理削除に変えることができます。 github.com 使い方は非常にシンプルでモデ…

開発備忘録 2018/10/17

In-App Purchase における自動更新型サブスクリプションの状態更新通知について In-App Purchase では、サブスクリプションの状態に関する変更を App Store が通知してくれます。(※自動更新型のみ) 開発者はその通知を受け取り適切な処理を行うことで、サブ…

開発備忘録 2018/10/16

[Rails] バッチ処理のパフォーマンスについて考える バッチで大量のデータに対して何かしらの処理を行うとしたときに、こんな感じで実装してみる。 User.all.each do |user| # 処理 end ふむふむ、なるほど。 これが例えば User.all で取得した件数が 100 件…

開発備忘録 2018/10/15

[ActiveRecord] 関連するテーブルに対して where を適用する users と comments が one-to-many の関係にあるときに、active な user のコメントを取得したいとする。 Comment.joins(:user).where(user: { deleted: :active }) Rails でのログ出力について …

開発備忘録 2018/10/12

UILabel の行間を調整する AttributedText に変更し、Height Multiple や Spacing を変更する。 Spacing は名前の通り、行と行の間のスペースの幅を定義する。 Height Multiple は指定した値が一行の幅の倍率になる。 例えば 1.5 を指定したら、一行が 1.5 …

開発備忘録 2018/10/11

bundle install と bundle update の違い bundle install Gemfile.lock から gem を取得する。 bundle update Gemfile から gem を取得し、lock を更新する。 本番環境で安易にこれを実行するのは危険。 Xib で View の Simlated Size を変更する ここを Fre…

開発備忘録 2018/10/10

Ruby の case 文 Ruby の case 文、ぶっちゃけ「他の言語でいう switch 文のことでしょ?」という認識だったが、甘かった。 Ruby の case 文は他の言語の switch 文よりかなり自由度が高い。 例えばこういうことができる。 def valid_status?(status) case s…