ジョギング
- 香椎浜 x 2 周
- テンポ良く走れているような気がする
日課
- (腕立て x 50 + 腹筋 x 50) x 3
今日のるびぃ ~ Ruby技術者認定試験【Gold】模擬問題を解いてみる (re: 17) ~
もう何度か解いているけど, 再び, Ruby技術者認定試験【Gold】模擬問題 を 3 ~ 5 問くらいずつ解いていく.
Q52. webrick (ライブラリ)
webrick ライブラリの説明として正しいものを選択する.
- webrick ライブラリは, Web サーバを実装するためのライブラリで Ruby on Rails でも使用されている
以下, ドキュメントの Abstract より抜粋.
- 汎用 HTTP サーバーフレームワークで, HTTP サーバーを簡単に作ることが出来る
- WEBrick はサーブレットによって機能する
- サーブレットとは
- WEBrick はセッション管理の機能を提供しない
以下, 超シンプルな Web サーバーの実装で動作確認.
require 'webrick' server = WEBrick::HTTPServer.new({ DocumentRoot: './', BindAddress: '127.0.0.1', Port: '12345', }) server.start
適当な HTML を用意して, 上記のスクリプトを起動する.
$ tree . . ├── index.html └── webrick.rb 0 directories, 2 files $ cat index.html test $ ruby webrick.rb & [1] 4802 [2018-05-06 07:40:17] INFO WEBrick 1.3.1 [2018-05-06 07:40:17] INFO ruby 2.1.10 (2016-04-01) [x86_64-linux] [2018-05-06 07:40:17] INFO WEBrick::HTTPServer#start: pid=4802 port=12345 $ curl localhost:12345 test localhost - - [06/May/2018:07:40:25 JST] "GET / HTTP/1.1" 200 5 - -> /
Q53. socket (ライブラリ)
以下のコードの説明として正しいものを選択する.
# コード require 'socket' p TCPSocket.ancestors.member?(IO)
- このコードを実行すると 「true」 が出力される
以下, irb による実行例.
irb(main):001:0> require 'socket' => true irb(main):002:0> p TCPSocket.ancestors.member?(IO) true => true
以下, 解説より抜粋.
- TCPSocket は IO クラスを継承している
- File クラスなどと同様な操作でソケットを扱うことが出来る
irb(main):003:0> p TCPSocket.ancestors [TCPSocket, IPSocket, BasicSocket, IO, File::Constants, Enumerable, Object, Kernel, BasicObject] => [TCPSocket, IPSocket, BasicSocket, IO, File::Constants, Enumerable, Object, Kernel, BasicObject]
上記の通り, TCPSocket の直接的なスーパークラスは IPSocket になるが, IO クラス自体もスーパークラスとなっている.
設問とは関係無いが, Enumerable#member? は引数で指定した値がレシーバに要素として含まれる際に true を返す.
irb(main):005:0> ['a', 'b', 'c'].member?('a') => true irb(main):006:0> ['a', 'b', 'c'].member?('d') => false
Q54. thread (ライブラリ)
Thread ライブラリを使用して新たなスレッドを生成するメソッドではないものを選択する.
- open
以下, 解説より抜粋.
- Thread クラスのクラスメソッド
new
,start
,fork
はそれぞれ新しいスレッドを生成するメソッド
それぞれのメソッドの特徴 (ドキュメントより抜粋).
メソッド | 特徴 |
---|---|
new |
スレッドを生成して, ブロックの評価を開始する. 生成したスレッドを返す. |
start |
基本的に Thread.new と同じ機能を提供するが, new メソッドと異なり initialize メソッドを呼ばない. |
fork |
同上 |
フムフム.