ryota21silvaの技術ブログ

Funna(ふんな)の技術ブログ

これまで学んだ技術の備忘録。未来の自分が救われることを信じて

Ruby

【備忘録】チェリー本第3章:テストを自動化する

3.1 イントロダクション 3.1.2 プログラマの3大美徳 以下の3つを持つプログラマは良いプログラマと言われる。 1. 怠慢(Laziness) 全体の労力を減らすために手間を惜しまない気質。 何度も同じことをやりたくない面倒くさがりのプログラマは、自動化やDRY原則…

【備忘録】チェリー本第2章:Rubyの基礎

2.6 メソッドの定義(P.36) メソッドの戻り値 Rubyは最後に評価された式がメソッドの戻り値になるため、returnのようなキーワードは不要。 以下のように、returnはメソッドを途中で脱出したい場合に使用することが多い。 irb(main):012:1* def greeting(count…

mergeメソッドのメモ

以下は、あるテーブルのデータと、そのテーブルの関連テーブルの外部キーを代入している。 しかし、処理が2行に分かれていて冗長。 @meal_record = current_user.meal_records.build(meal_record_params) @meal_record.food_id = params[:food_id] mergeメソ…

範囲オブジェクトrange。 ..でリテラル表現

範囲オブジェクトとは 範囲オブジェクトのクラス。範囲オブジェクトは文字どおり何らかの意味での範囲を表します。数の範囲はもちろん、日付の範囲や、「"a" から "z" まで」といった文字列の範囲を表すこともできます。 docs.ruby-lang.org 範囲の開始値と…

mapメソッドでループする(ついでにreject(&:blank?)とflattenを使ってる)

わざわざ空配列を用意するのダサいし、冗長。 @food_lists = [] food_labels.each do |food_label| @food_lists = Food.search_by_label(food_label) end mapメソッドを使う。 reject(&:blank?)で配列からnilと空文字を除く。 flattenで多次元配列を一次元配…

【Ruby】procとblock

procとblockについて block ブロックとは do...endや{ }のカタマリのこと。 do...endと{ } 改行を含む長いブロックを書く場合はdo...end 1行でコンパクトに書きたい場合は{ } プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで …

【Ruby】Date型で色んなメソッドを試してみる

今日、昨日、○日前、○日後とか # 今日 [1] pry(main)> Date.today => Sat, 22 Aug 2020 [6] pry(main)> Date.current => Sat, 22 Aug 2020 # 昨日 [7] pry(main)> Date.current.yesterday => Fri, 21 Aug 2020 # 昨日(1日前) [8] pry(main)> Date.current.ag…