ruby

RubyのBenchmarkモジュールを使って、sleepメソッドが効いているか確認してみる。

open-uriとnokogiriを使ってホテル予約サイトをスクレイピングしているが、sleepメソッドがきちんと効いているか気になったので、Benchmarkモジュールを使って計測してみた。 方法 sleepメソッドを含むメソッドと含まないメソッドを2種類作る。 コード Bench…

Excelで文字化けせずに開けるCSVをRubyで作るついでに文字コードについて学んでみた。(あいまい)

RubyでCSVファイルを作り、Excelで開くと文字化けする。 解決法を探した所、この記事の通りやったら解決できた。 BOMなしUTF8をBOMつきUTF8にするためのワンライナー 解決できたはいいが、やっていることが全くわからないのでいろいろ調べてみる。 そもそもE…

Ruby "no implicit conversion of Hash into String (TypeError)" BOM付きファイルを読み込んだ時に起きるエラー

require 'open-uri' require 'nokogiri' UserAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36' File.open("scraping_hotels7.csv"){|f| f.each do |url| url.chomp! d…

Rubyで文字列から半角数字だけを抽出する方法。

"文字列".gsub(/[^0-9]/,"") 文字クラスの [ の直後の文字がキャレット(^)である場合、列挙「されていない」 文字にマッチするようになります(これは否定文字クラスと呼ばれます)。 Ruby 正規表現 文字クラス [^0-9]で0-9以外の文字列を抽出して、""と置換し…

Ruby配列のそれぞれの要素をダブルクオーテーションで括って、カンマ区切り(CSV)で出力する。

mapメソッドを使って作ってみました。 items = [id, name, gender, age] puts items.map {|item| "\"#{item}\""}.join(",") Rubyリファレンス(map, map! (Array))

Rubyを利用したCSVファイルの書き出し

Rubyで作成した変数をCSVに書き出し。 CSV.open("file.csv", "w") do |csv| users.each do |user| id = user.id name = user.name gender = user.gender age = user.age p "#{id}, #{name}, #{gender}, #{age}" csv << [id, name, gender, age] end end 参考…

Rubyでハッシュを利用する際の文字列とシンボルの違い

プログラミング初心者のため、他サイトを参考にまとめてみる。 テーマはRubyでハッシュを利用する際に文字列利用とシンボル利用の違いである。 今回のテーマは何度本を読んでも理解できないオブジェクト指向に関連するテーマのように感じるため、本質的な理…