この記事を読むのに必要な時間:およそ 0.5 分
ダウンロード
(2019年6月11日更新)
本書で使用しているサンプルファイルは,以下のリンクからダウンロードできます。
- ダウンロード
- サンプルファイル
FacebookのAPI変更により,9章3節のコードが動作しなくなっています。
代わりに,同じようにWeb APIを利用するサンプルコードをサンプルファイルとして掲載いたします。
参考としてください。
require 'open-uri'
require 'json'
require 'openssl' # httpsのURLを利用するのに必要
# httpsのURLを利用するときの証明書の検証を回避。本来は望ましくない。
OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE # 実際のプロジェクトでは用いないこと。
# 検索ワードを渡してWikipediaで検索するクラス
class WikipediaSearcher
# Wikipediaの検索用URL
BASE_URL = 'https://en.wikipedia.org/w/api.php?format=json&action=query&list=search&srsearch=' # srsearchの後に検索ワードを指定
# search_wordで検索したい語を指定する
def initialize(search_word)
@request_url = BASE_URL + search_word
end
def search
# APIにアクセス
response = open(@request_url).read
# JSON形式のテキストをハッシュに変換
hash = JSON.parse(response)
# 検索結果の中ではじめにヒットしたものを表示。
hash['query']['search'][0] # 検索結果を一覧で表示したい場合は[0]を省略。
end
end
searcher = WikipediaSearcher.new('ruby') # rubyで検索する
p searcher.search
|
お詫びと訂正(正誤表)
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
P.115 # 5-3の「理解」のwhile式の構文解説箇所
誤 |
ずっと条件式がtrueにならない場合
|
正 |
ずっと条件式がfalseにならない場合
|
P.123 # 5-4の「体験」の手順11の説明
誤 |
loopメソッドを使ったプログラムをirbで実行する
|
正 |
loopメソッドを使ったプログラムを保存する
|
P.74 # 3-3の「理解」の「式の展開をする%Wと%I」中の解説例
不要な「,」を記載した例を記述していました。
誤 |
a=%I(#{'b'+'c'}, #{'d'+'e'})
|
正 |
a=%I(#{'b'+'c'} #{'d'+'e'})
|
(以下2018年6月18日更新)
P.204 問題2のコード
誤 |
class TaxCalc
attr_accessor :price
def initialize(tax_rate: 0.08)
raise ArgumentError, [ 1 ] if tax_rate < 0.08
end
def tax_included
tax = (price * tax_rate).to_i
price + tax
end
end
begin
calculator = TaxCalc.new(tax_rate: 0.08)
calculator.price = 100
p calculator.tax_included
[ 2 ] =>e
p [ 3 ]
raise
end
|
正 |
class TaxCalc
attr_accessor :price
def initialize(tax_rate: 0.08)
raise ArgumentError, [ 1 ] if tax_rate < 0.08
@tax_rate = tax_rate
end
def tax_included
tax = (price * @tax_rate).to_i
price + tax
end
end
begin
calculator = TaxCalc.new(tax_rate: 0.08)
calculator.price = 100
p calculator.tax_included
[ 2 ] =>e
p [ 3 ]
raise
end
|
(2018年4月23日更新)
P.117 条件に応じて処理を繰り返そう
誤 |
1秒間何も実行せずに期待する
|
正 |
1秒間何も実行せずに待機する
|
P.138 6-1の「体験」の手順4の実行結果