This commit is contained in:
Rikuoh Tsujitani 2024-04-02 11:04:48 +09:00
parent 1efe9a6e66
commit ed2b7755ce

View file

@ -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を使うこともできる
RakeRubyで作られているビルドツール。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のMinitesttestメソッド文字列ブロックの形式で書くことができる。また、Railsではassert_differenceやassert_not_equalなど素のMinitestにはない検証メソッドも用意されている
Rails独自の規約@で始まる変数はコントローラからビューにデータを渡すために使う変数として解釈されうる
Railsのyieldレイアウトのビューから特定のビューを挿入するために用いられることが多い
## 4/2