Rubyを便利に使えるようになるために、とりあえず色々と試してみた。

Rubyでssh接続して、とりあえずコマンド実行してみる。

require rubygems
require net/ssh

Net::SSH.start("192.168.17.XXX", "user", :password => "pass") do |ssh|
	result = ssh.exec!("ls -l")
	puts result
end

sshで接続してlsを実行した結果を表示することができる。

RubyでInternetExplorerを使ってみる。

公式ドキュメント
http://doc.ruby-lang.org/ja/1.9.2/class/WIN32OLE.html

# -*- coding: windows-31j -*-
require win32ole

ie = WIN32OLE.new(InternetExplorer.Application)
ie.Navigate("https://twitter.com/877uszm")
ie.Visible = false

while ie.busy
  sleep 1
end

printf "title: %s
", ie.document.title

links = ie.Document.All.Tags(a)
for link in links do
  puts link.href
end

これでタイトルやリンクを取得することができる。
結果はこんな感じ。

title: 岩崎 京也 (877uszm)さんはTwitterを使っています
https://twitter.com/
https://twitter.com/
https://twitter.com/

なお、EclipseのプラグインでRuby開発した場合、コンソールが文字化けしてしまうので、「実行の構成」→「共通」で、文字コードをMS932とか、文字化けしないように文字コードを設定する必要がある。

RubyでExcelシートの値を読み込む

以下のような構造のExcelシートを読み込んでみる

ID 名前 年齢 趣味
1 ほげ 28 game
2 ふが 20 soccer
3 ふぉお 32 basketball

Rubyのコードはこんな感じ。

# -*- coding: windows-31j -*-
require win32ole

def getAbsolutePath filename
  fso = WIN32OLE.new(Scripting.FileSystemObject)
  fso.getAbsolutePathName(filename)
end

filename = getAbsolutePath("hoge.xlsx")
excel = WIN32OLE.new(Excel.Application)
book = excel.Workbooks.Open(filename)
sheet = book.ActiveSheet
puts "sheetName:"
puts sheet.name()
sheet.UsedRange.Rows.each do |row|
  cells =  Array.new
  row.Columns.each do |cell|
    if cell.Value.kind_of?(String) then
      cells << cell.Value
    else
      if cell.Value != nil then
        cells << cell.Value.truncate
      end
    end
    #これだと数値がfloat方のため、1.0とかになって表示される
    #cells << cell.Value
  end
  puts cells.join(,)
end

book.Close
excel.Quit

結果は以下の通り

sheetName:
testsheet
ID,名前,年齢,趣味
1,ほげ,28,game
2,ふが,20,soccer
3,ふぉお,32,basketball

Rubyで無事にExcelシートの値を読み込んで、CSVで表示することができた。

参考にした本

インフラ管理者のためのRun Book Automation実践ガイド オープンソースを使ったシステム構築/管理自動化入門

インフラ管理者のためのRun Book Automation実践ガイド オープンソースを使ったシステム構築/管理自動化入門

  • 作者: 志茂吉建
  • 出版社/メーカー: 翔泳社
  • 発売日: 2012/09/19
  • メディア: 大型本
  • 購入: 2人 クリック: 5回
  • この商品を含むブログ (4件) を見る

サーバ構築自動化の話がたくさん載っている。
中でもRubyをうまいこと使って自動化する手法がたくさんあって、非常に参考になる。

感謝のプログラミング

今回で感謝のプログラミングは【560時間目】
10000時間まで、あと【9440時間】
慣れないRubyにずいぶん時間がかかってしまった。