ようへいの日々精進XP

よかろうもん

2018 年 03 月 12 日(月)

ジョギング

  • 香椎浜 x 2 周
  • 少しずつだけど, 足の痛みとかがほぐれてきている感

日課

  • (腕立て x 50 + 腹筋 x 30) x 3

バタバタ

  • CloudFormation 難しい

今日のるびぃ ~ Ruby技術者認定試験【Gold】模擬問題を解いてみる (11) ~

もう何度か解いているけど, Ruby技術者認定試験【Gold】模擬問題 を数問ずつ解いていく. ポイントは, 問題が何について問われているかがちゃんと理解出来ていること.

Q.50 class クラス

以下のコードの実行結果として正しいものを選択してください.

p Class.superclass

Module

以下, 確認.

[1] pry(main)> class Foo; end
=> nil
[2] pry(main)> Foo.class
=> Class
[3] pry(main)> Class.superclass
=> Module
[4] pry(main)> Module.superclass
=> Object

Q.51 クラス定義

以下のコードの説明として正しいものを選択してください.

# コード
class Foo
  private
  def foo
    puts "foofoofoo"
  end
end
puts Foo.new.respond_to?(:foo)

このコードを実行すると「false」が出力される

以下, 解答より抜粋.

  • respond_to? メソッドは, オブジェクトが引数で指定した名前の public メソッドを持っているか調べるメソッド
  • 第 2 引数に true を指定すれば, 指定した名前の private メソッドを持っているかを調べることが出来る

以下, 確認.

[1] pry(main)> class Foo
[1] pry(main)*   private  
[1] pry(main)*   def foo  
[1] pry(main)*     puts "foofoofoo"    
[1] pry(main)*   end    
[1] pry(main)* end  
=> :foo
[2] pry(main)> puts Foo.new.respond_to?(:foo)
false
=> nil
[4] pry(main)> puts Foo.new.respond_to?(:foo, true)
true
=> nil

ドキュメントの以下の一文で納得.

オブジェクトが メソッド name を持つというのは、 オブジェクトが メソッド name に応答することができることをいいます

Q.52 ライブラリ

webrickライブラリの説明として正しいものを選択してください.

webrickライブラリは、Webサーバを実装するためのライブラリでRuby on Railsでも使用されている

webrick は, 汎用HTTPサーバーフレームワークで, HTTP サーバーを簡単に作ることが出来る.

$ echo "test" > index.html
$ cat webrick.rb 
require 'webrick'

server = WEBrick::HTTPServer.new({
  DocumentRoot: './',
  BindAddress: '127.0.0.1', 
  Port: '12345',
})

上記を実行すると, 簡単に Web サーバーを起動することが出来る.

$ [2018-03-12 08:19:49] INFO  WEBrick 1.4.2
[2018-03-12 08:19:49] INFO  ruby 2.5.0 (2017-12-25) [x86_64-linux]
[2018-03-12 08:19:49] INFO  WEBrick::HTTPServer#start: pid=12690 port=12345

実際にアクセスしてみる.

$ curl localhost:12345
test
127.0.0.1 - - [12/Mar/2018:08:21:08 JST] "GET / HTTP/1.1" 200 5
- -> /