From ed2b7755ceb5596f396195e1fdb3850f3f0208aa Mon Sep 17 00:00:00 2001 From: Rikuoh Tsujitani Date: Tue, 2 Apr 2024 11:04:48 +0900 Subject: [PATCH] 4/1 --- cherry.txt | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/cherry.txt b/cherry.txt index 2c89892..33e5048 100644 --- a/cherry.txt +++ b/cherry.txt @@ -453,6 +453,47 @@ quit/q デバッガを途中で終了する 504ページから ## 4/1 +日付や時刻を扱うクラス:Dateクラスは日付を扱い、TimeクラスとDateTimeクラスは日付と時刻を扱う。このうちTimeクラスだけが組み込みライブラリになっているのでrequireせずに使える。現在ではDateTimeクラスは非推奨になっている。 +ファイルやディレクトリを扱うクラス:FileクラスとDirクラスは組み込みライブラリなのでrequireせずに使える。 +File.open('./lib/fizz_buzz.rb', 'r') do |f| + puts f.readlines.count +end +また、ファイルのコピーや削除などを便利に実行するためのFileUtilsモジュールも存在する。 +require 'fileutils' +FileUtils.mv('./lib/hello_world.txt', './lib/hello_world.rb') +Pathnameクラス:パス名をオブジェクト指向らしく扱うクラス。たとえば自分自身がファイルかどうかを返すメソッドや、新しいパス文字列を組み立てるメソッドが定義されている +特定の形式のファイルを読み書きする:CSVを読み書きする場合はCSVクラスが便利に使える。カンマ区切りだけでなくタブ区切りのファイルを読み書きすることもできる。同様に、JSONやYAMLに対応したクラスも存在する +環境変数の取得:ENVという組み込み定数に環境変数が格納されている。値を取得する場合はハッシュと同じ要領で[]を使う +組み込み定数:ENVやARGVはRubyで最初からObjectクラスに定義されている定数である。このような定数を組み込み定数を呼ぶ。このほかにも標準出力を表すSTDOUTやRubyのバージョン番号を表すRUBY_VERSIONなどがある +警告の出力:警告を出力したい場合は-W:deprecatedというオプション付きでプログラムを実行する +eval:受け取った文字列をRubyのコードとして実行する +code = '[1, 2, 3].map { |n| n * 10}' +eval(code) # => [10, 20, 30] +バッククォートリテラル:バッククォートで囲まれた文字列をOSコマンドとして実行する。代わりに%xを使うこともできる +Rake:Rubyで作られているビルドツール。Rakefileという名前のファイルにタスクを定義して用いる +task :hello_world do + puts 'Hello, world!' +end +上記はRakefileに"hello_world"という名前のタスクを定義している +DSLとはなにか:Domain Specific Languageの略で、ドメイン固有言語またはドメイン特化言語と訳される。「なにか特別な目的を実現するために定義された、人間にとって読みやすく機械にとっても処理しやすいテキストファイルの記述ルール」と言える。 +Faker:本物っぽいテストデータを準備したりする時にする使用するgem +Awesome Print gem:オブジェクトの情報を見やすく整形してくれるgem +Gemfileのバージョン指定 +gem 'faker' # Bundlerに任せる +gem 'faker', '2.17.0' # 2.17.0に固定 +gem 'faker', '>= 2.17.0' # 2.17.0以上 +gem 'faker', '~> 2.17.0' # 2.17.0以上かつ2.18未満 +gem 'faker', '~> 2.17' # 2.17以上、3.0未満 +型検査のニーズ:型情報が事前に提供されていればメソッド名のタイプミスのような些細なミスを実行する前に検出することができる。また、IDEなどと連携して型情報に基づくコードの入力補完やコードジャンプなども行えるようになる +typeprof:型情報を自動生成するためのコマンド。生成には目的のメソッドやクラスを実行するプログラムが必要とされる +Sttep:型検査を行うためのツール +untyped:任意の型を表す +-> void:メソッドの戻り値がないことを表す +RailsのMinitest:testメソッド+文字列+ブロックの形式で書くことができる。また、Railsではassert_differenceやassert_not_equalなど素のMinitestにはない検証メソッドも用意されている +Rails独自の規約:@で始まる変数はコントローラからビューにデータを渡すために使う変数として解釈されうる +Railsのyield:レイアウトのビューから特定のビューを挿入するために用いられることが多い + +## 4/2