ジョギング
- 香椎浜 x 2 周
- 左足の甲から足底筋の痛さが取れない...
日課
- (腕立て x 50 + 腹筋 x 50) x 3
夕飯
- 奥さんのナムルが毎回美味しい
今日のるびぃ ~ Ruby 技術者認定試験 Gold 演習問題を解いていく (11) ~
もう何度か解いているけど, Ruby 技術者認定試験合格教本 の演習問題と模擬試験を数問ずつ解いていく. ポイントは, 問題が何について問われているかがちゃんと理解出来ていること.
Q29. 標準添付ライブラリ
以下の記述で適切なものを全て選ぶ.
- StringIO は IO と同じインターフェースを持つ
- Float オブジェクトと Rational オブジェクトの演算結果は, Float オブジェクトになる
- DateTime オブジェクトに 1 を加算すると, 翌日のデータとなる
以下, irb で確認する.
irb(main):006:0> sio = StringIO.new("hoge", 'r+') => #<StringIO:0x00561107cc9bb0> irb(main):007:0> sio.read => "hoge" irb(main):008:0> sio.read(1) => nil irb(main):009:0> sio.rewind => 0 irb(main):010:0> sio.read(1) => "h" irb(main):002:0> (1.0 + 1r).class => Float irb(main):001:0> require 'date' => true irb(main):002:0> date = DateTime.now => #<DateTime: 2018-03-27T06:25:07+09:00 ((2458204j,77107s,92880575n),+32400s,2299161j)> irb(main):003:0> date + 1 => #<DateTime: 2018-03-28T06:25:07+09:00 ((2458205j,77107s,92880575n),+32400s,2299161j)
以下, 解説より抜粋.
- rdoc の
*
は番号なしリストを生成する - Thread クラスには
run
メソッドは存在しない
Q30. 標準添付ライブラリ
以下のコードは HTTP でダウンロードしたデータを表示するコードである. [ x ] に記述する適切なコードを選ぶ.
require 'open-uri' [ x ]('http://docs.ruby-lang.org/ja/2.1.0/doc/index.html') do |f| print f.read end
[ x ] には open
が入るはずなので, irb で試してみる.
irb(main):001:0> require 'open-uri' => true irb(main):002:0> open('https://docs.ruby-lang.org/ja/2.1.0/doc/index.html') do |f| irb(main):003:1* f.read.match(/Ruby 2.1.0/) irb(main):004:1> end => #<MatchData "Ruby 2.1.0"> irb(main):005:0>
open
で URL を開いて, 取得したコンテンツを match メソッドで指定した文字列が存在していることを確認している図.
以下, 解説より抜粋.
- open-uri は Kernel モジュールの open を再定義し, HTTP で指定したファイルを取得する
- ファイルオブジェクトは StringIO 又は Tempfile
- OpenURI::Meta モジュールで拡張されていて, メタ情報を獲得するメソッドが利用可能
フムフム