ruby

Ruby から Subversion を利用 on Windows (その2)

昨日の記事の通りにすることでライブラリを読み込めるようになったので、今日はサーバへの接続をやってみる。以下のようにすることで、ログを取得することができる。 require 'svn/client' repos_uri = "http://svn-server/repos/my-proj" user = "root" pas…

Ruby から Subversion を利用 on Windows

Ruby から Subversion を操作できるものが無いか探したところ以下のページを発見。 というわけで、ruby(ruby 1.8.6 i386-mswin32)でSubversionを操作できるライブラリがないかと調べてみるとドキュメント & ファイル: Windows Apache 2.2.xにsvn-win32-1.5.4…

1.9.0_2のライブラリ

ruby1.9 から ruby-gems が標準添付になった。それにともなってか、1.9.0_2 で ubygems.rbという面白いライブラリが添付されるようになった。 何かの間違いかと思ったが、以下のような使い方を想定して、この名前になったようだ。 ruby -rubygems foo.rb他に…

win32ole で Excel のシートコピー

win32ole でExcelのシートコピーをするには以下のようにする。 require 'win32ole' xl = WIN32OLE.new('Excel.Application') fso = WIN32OLE.new('Scripting.FileSystemObject') book = xl.Workbooks.Open(fso.GetAbsolutePathName("./Book1.xls")) sheet = …

RubyKaigi2008 の動画

先週末に筑波でRubyKaigi2008が開催された。ネットでライブ中継があったのでいくつか見ていたが、さすがに全部は見れなかったし、ところどころ途切れたりして満足に見れないところもあったが、動画をニコニコ動画で公開しているようなので、また時間があると…

Ruby 1.9 のエンコーディング関連(続き)

Ruby 1.9 のエンコーディングに関する内容の続き。 magic comment magic comment は以下のように書く。 # -*- encoding: utf-8 -*- # -*- coding: utf-8 -*- こちらで書いたのように"-*-" はなくてもいいが慣例として書く方が良い。 String クラス Ruby 1.9 …

Ruby1.9 ファイルオープン時のエンコーディング

Ruby 1.9 からファイルを開くときのエンコーディングを指定できるようになった。たとえばファイルを utf-8 で開くには以下のようにする。 open(path_to_file, "r:utf-8") また、EUC-JPのファイルをutf-8に変換して読み込む場合は以下のようにする。 open(pat…

script encoding のまとめ

Ruby 1.9 でのエンコーディングは以下のようになっているようだ。「scprit encoding」はスクリプトファイルの読み込み時のエンコーディングで、「default external」は外部へ出力するときIOオブジェクトから読み込むときのエンコーディングのこと。 通常のス…

Ruby1.9

日経Linux3月号の「プログラミングのオキテ 第34回」に Matz による Ruby 1.9 の紹介記事が載っている。前半は Ruby の歴史で後半が Ruby 1.9 の新機能や改良点についての概要を説明している。 ruby-dev などを読んでるとなんとなくは分かるんだけど、この記…

Ruby1.9 Array関連の新機能

第23回 Ruby/Rails勉強会@関西今週の Ruby/Rails勉強会@関西で Ruby1.9 Array関連の新機能についての紹介セッションがあるようだ。残念ながら行けないけど、発表用の資料があるのでいつか読もう。 Ruby1.9 は 1.8 とは大分変わってるところが多いのでちゃ…

ruby 1.9.1 リリース?

クリスマスにリリースされる予定だった ruby 1.9.1 だけど、まだリリースされてないみたい。(26日 0:00時点)

RubyistMagazine 22号

RubyistMagazine 22号がリリースされた。Rubyist Magazine 22号しかし、るびまゴルフは人気あるなぁ。

条件での範囲式

範囲式が条件式でも使えるらしい。 (1..10).each {|i| puts i if i==3..i==7 } #=> 3, 4, 5, 6, 7 が表示される 当然文字列でも大丈夫。 ("A".."E").each {|c| puts c if c=="B"..c=="D" } #=> B, C, D が表示される しらなかったー。 と思ってたら ruby-dev…

コマンドラインオプションの解析

ruby でコマンドライン引数の解析をする場合は、optparse を使えばいい。 require 'optparse' opts = OptionParser.new # -a オプションがしてされているかどうかの判定 opts.on("-a") {|v| puts v } #=> true # -l --long オプション指定時 opts.on("-l", "…

配列をランダムに並び替える

配列をランダムに並び替えるには以下のようにする。 a=[1,2,3,4,5] a.sort_by{rand} # => [3, 1, 5, 2, 4] ruby-list:43811 - Re: 配列についての質問

Ruby の演算子

Ruby で演算子としては以下のものがある。ただしほとんどはメソッド。 | ^ & <=> == === =~ > >= < <= << >> + - * / % ** ~ +@ -@ [] []= これらのうち以下のものは組み込みで再定義できない。つまりメソッドじゃない。また自己代入演算子と !=, !~ も再定…

ヒアドキュメントで行頭のスペースを含まない方法

ヒアドキュメントで行頭のスペースのぞいた分を文字列とする直接の方法はないけど、以下のようにして逃げることはできる。 str =<-EOS.gsub(/^\s+/,"") これはヒアドキュメントです。 テスト TEST EOS 昔にこれをヒアドキュメントの記法として記述できるよう…

String.gsub での$

しらなかったんだけど、String.gsub の第二引数で $ は使えない。 理由は gsub の時点ではまだマッチまではしていないかららしい。$ を使いたい場合はブロックを使えばよいらしい。 str = "abcdefg" str.gsub(/([cde]+)/) { $1.upcase } # => abCDEfg ruby-l…

exerb メモ

ドキュメント見れば書いてあることだけど、自分用メモ。 レシピファイルの作り方 C:\> ruby -r exerb/mkexy hoge.rb exe の作り方 C:\> exerb hoge.exy レシピファイル設定 - core cui ruby.exe gui rubyw.exe レシピファイル設定 - kcode none なし euc EUC…

Drecom Award on Rails 2007

Drecom Award on Rails 2007 今年は応募してみました。締切は9/25なので、公開されるのはそれ以降かな。 Rails 1.1 で作ったんだけど、Drecom が用意してくれているサーバのRailsは1.2だったのでかなりはまった。

サンプルコードのリファレンス

Noobkit Docs - Ruby On Rails API documentation. Ruby 本体、Rails, Gems の API 毎のサンプルコードを検索できるサイト。 いや、意外と便利だ。

win32ole で Excel を使う(6)

Excel2003 以降、グループ化したオートシェイプに対する操作はそのままではエラーとなるので、一旦解除して操作後に再度グループ化しないといけない。 グループ化されたテキストボックス(図形) から値を取得 # グループ化解除。グループのメンバが戻り値とし…

win32ole で Excel を使う(5)

今回はオートシェイプのテキストボックスを扱う方法を書く。 シート内のテキストボックスを取得して、値の取得と設定を行うには以下のようにする。 # "テキスト 1" という名前のテキストボックスを取得する sheet.Shapes("テキスト 1").TextFrame # テキスト…

win32ole で Excel を使う(4)

ブックをオープンするには以下のようにする。ポイントは、文字列でパスを渡してもダメということ。 FileSystemObject.AbsolutePath 経由で指定してやらないといけない。 excel = WIN32OLE.new('Excel.Application') fso = WIN32OLE.new('Scripting.FileSyste…

win32ole で Excel を使う(3)

ブック内のシートを選択するには以下のようにする。 # 一番左のシートを取得 sheet = book.Worksheets(1) # シート名が "Sheet1" のシートを取得 sheet = book.Worksheets("Sheet1") ブックオブジェクトの Worksheets プロパティは複数形なので、ブック内の…

win32ole で Excel を使う(2)

セルを指定するにはいくつかやり方がある。 # 座標で指定。3行、5列目を指定。 sheet.Cells.Item(3, 5) sheet.Cells.Item("5", "C") sheet.Range("C5").Item # セル名で指定。 sheet.Range("cell_name").Item 上のやり方は単一セルの取り方だけど、複数セル…

win32ole で Excel を使う

ruby の添付ライブラリ win32ole を使うと、ruby からwindows アプリが操れる。 例えば、Excel を開いて指定したセルに文字列をセットする場合には以下のようにする。 require 'win32ole' xl = WIN32OLE.new('Excel.Application') fso = WIN32OLE.new('Scrip…

Railsの日本語化

ActiveHeartは*1すでに「Railsの国内黎明期における簡単な日本語化」という役割を全うしたので、そろそろ天に帰してあげましょう。これから新しく作るのであればRuby-Gettextを使って日本語化をすること。 moroの日記 - Railsの日本語化はRuby-GetTextで! Ra…

RubyKaigi2007

RubyKaigi2007が6/9, 6/10に開催された。東京だし、チケットも取れなかったということもあり行ってないんだけど、るびま編集部の人たちがログを書いてくれているので、ある程度は雰囲気や内容をつかめる。感謝!RubyKaigi2007速報ログ 去年は音声ファイルが…

鬼車作者がRubyにマージされたことに激怒

Matzにっき - 報國挺身日記 - 5.7.0がマージされた件について ありゃりゃ、えらいことになっちゃってるなぁ。大丈夫かなぁ。