Ruby

パーフェクトRuby 読書録

コーディングスタイル 有名どころは3つらしい Rubyコーディング規約 LoveRubyNet Wiki: RubyCodingStyle Styleguide | Ruby · GitHub ググると github のものが出てきた。 GitHub - bbatsov/ruby-style-guide: A community-driven Ruby coding style guide …

Ruby Reference Manul を Kindleファイルにしてみた

ruby-list メーリングリストに投稿 [ruby-list:50379] Ruby 2.3.0 Reference Manual for Kindle したが、Ruby Reference Manual を Kindle 化してみた。以前 Amazon CAPTCHAを読んだ際、『次はリファレンスマニュアルを読むこと』といった記述があったのを記…

たのしいRuby 第5版

図書館にあった たのしいRuby 第5版 を読む。 手元の本は第2版で1.8が対象だったのだが、1.9以降のStringの仕様変更の理解がずっと浅いように感じているので、第3部を中心に落ち穂拾い的にあちこち読んで見る。 以下気になった点のメモ。1.8でもあったものか…

pdf ファイルからイメージファイルを取り出す(ruby, poppler)

ruby で pdfファイル内のテキスト、図の情報を取り出すのをどうするか。 簡単なのは poppler みたいなので、試して見る。 poppler 自体は他の gem のインストール時に勝手に入っているので問題なし。 ただし日本語を含むものはエラーが出るので poppler-data…

Rubyの組み込みクラスの一覧を表示してみる

組み込みクラスの一覧を表示してみたいと思い立った。考えたのは Objectの定数一覧取得 それぞれの定数からクラスを得る そのクラスがClassであれば、組み込みクラス [8] pry(main)> puts Object.constants.select { |x| Kernel.const_get(x).class == Class…

Windows版Rubyでp メソッドが文字化けする件の回避(-Uオプション)

いわゆるprintfデバッグに相当する pメソッドなのだが、漢字が正しく表示されない。 例えば class Tel def initialize(number, name) @number = number @name = name end end kyoto = Tel.new('075', '京都市') p kyoto を実行すると、ruby 1.9からだったと…

Effective Ruby

Effectiveシリーズ(と言ってよいのかどうか。作者も異なるし)のRuby版。 なかなか良い本だと思う。。が、価格が高い。 技術書の場合、基本印刷書籍を買うので今回もそうしたが、Kindle版の方が良かったかもしれない。 Effective Ruby作者: Peter J. Jones,…

Rubyのしくみ - Ruby Under a Microscope

類書にはRHGがあるものの、既に絶版で、対象もRuby1.*(確か1.6)ということで、1.9以降導入されたYARVも含む内部説明としては始めてなのでは。 英語版PDFはネットで公開されている。英文そのものは読み易く、すらすら読み進められる。 日本語版は各所に補足…

Rubyリファレンスマニュアル Kindle化計画

Rubyリファレンスマニュアルを通読したいと思うのだが、Webベースで読むのがどうも面倒なので、電子書籍化(Kindle化)を試みることとする。 インターネット上のリソースのKindle化はいくつか実行したこともあるので、なんとかなるだろうと目論んでいる。 第…

ruby-prof と Visual Stduio 2013

メインPCで無事ruby-profが動作するようになったので、別のPCでも動かそうとする。が、うまくいかず。 問題が起きるPCのVisual StudioはVisual Studio Express 2012 for Windows Desktop で、インストール中のコンパイルでエラーが発生している模様。問題を…

コードの世界:まつもとゆきひろ

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法 を読む。 昨日書いたつもりが、どうも上書きしてしまった模様。はてな記法も忘れてるし。。 記録なのでもう一度。イギリスへ来る際に積読のままだった本を何冊か持ってきたもののうちの…

ruby-prof を Windows で使えるようにする

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法 を読んでいて、rubyプログラムのプロファイルを取ってみたくなり、実際に試してみる。 まずは標準で入っているもの。 ruby -rprofile test.rb 標準の強みはあるが、Windows環境だからか…

初めてのRuby復習(4)

クラス名と定数(p144) Durationというクラスの定義式を評価したとき、Rubyは (1)Durationクラスを表すClassクラスのインスタンスを作成し、 (2)そのインスタンスへの参照を値として、Durationという定数式を初期化します Rubyではクラスもオブジェクトであり…

初めてのRuby復習(3)

ローカル変数(p100) ローカル変数はメソッド定義の def ... end を境界としてスコープが分離されます。 Rubyを使いはじめのころよくエラーになりました。 ローカル変数は最初の代入式によって発生します。 定数(p102) Rubyの動的性質は定数への再代入を結局…

初めてのRuby復習(2)

整数リテラル(p45) '_' で数値を区切れるのはとても便利。最近アセンブラで dword のリテラルが見づらくて、コメントで書いてたりするのだけれど、時々ソースにも書いてしまってアセンブルエラーになったりする。他の言語でも導入される嬉しいのだけれど。na…

初めてのRuby復習

たのしいRubyに続いて、初めてのRubyを復習。 この本は読むたび、何らかの気づきがあります。 メタプログラミング(p8) Rubyが動的な言語であるということ。例えば「クラス定義」の中でattr_accessor をイテレータから呼び出し、アクセッサを定義することがで…

たのしいRuby 復習-1.44MB FDイメージを読み書きする

第21章〜第24章 までひとまず完了。 目下VMawre, Virtual PCで使用する1.44MB FDイメージを扱えるスクリプトを作成中。 ユーザインタフェースについては、ftpクラアントの動作に準じて cd ls get put の操作をメソッドとして実装する方向。クラス構成は、cla…

たのしいRuby 復習

第15章〜20章 仕事で使うちょっとしたプログラムを作るのは、Rubyで十分な予感。 「なんでRuby?」と言われるけれども ^^http://d.hatena.ne.jp/dogatana/20090530/1243643312 によろしくない点があったのを修正。

たのしいRuby 復習-HDD内のサイズが大きいファイルの一覧を求める

ちょっとしたプログラムが必要なとき最近はRubyを使うことが多いわけですが、同じようなことしかしないので忘却が激しい。都度ヘルプを見てるわけですが、仕事なのでゆっくりというわけにも行かないので たのしいRuby 第2版 Rubyではじめる気軽なプログラミ…

まとめ

ほとんどメモ。 1章:ようこそRubyのある生活へ オブジェクト メソッド object_id IDの取得 class classの取得 equal? 同一性の検査 all? 論理積 any? 論理和 より良いPerl 動く擬似コード ALGOLの皮をかぶったLisp 高階関数 ブロックつきメソッド Domain S…

初めてのRuby − 9.6.2 method_missing

わんくまの掲示板で、定義済みのクラスのメンバ関数を、より短い名前で呼ぶようにしたいという質問あり。 class Graphics g { void Image_Load() { } void Image_Draw() { } }; とあってGraphicsクラス内部にクラスor構造体 aImage を設けて aG.aImage.Draw(…

初めてのRuby − 3.2.5 型と自動変換(coerce規約と method_missing を使った四則演算)

coerce 規約 整数と浮動小数点数の演算は自動的に型変換されるが、処理系ハードコードによるものではなく、coerce規約というメカニズムに従うとのこと。 で、適当な自作クラスでの型変換を試してみる。 次のコードで作った coerce メソッドがそれ。 非常に簡…

初めてのRuby − 2.3 Enumerableモジュール

Eumerableモジュール each メソッドを定義して Enumrable を include すれば map などの一連のメソッドが使えるようになる。 class MyClass def initialize @data = [1, 5, 3, 2] end def each @data.each do |d| yield(d) end end include Enumerable # こ…

初めてのRuby

初めてのRuby を読了。 裏表紙に 他の言語のプログラミング経験者が対象 Ruby1.9までカバー とあり、たのしいRuby 第2版 Rubyではじめる気軽なプログラミング でもやもやしていた部分がかなり解消された。プログラミング初心者でなければ、この本から入ると…

Rubyの配列で循環参照

Rubyでは変数はオブジェクトへの束縛で、参照となるだけ。 よって a = "abc" b = a a[0] = 'A' p b で、==>'Abc'となる。参照ということであれば循環的な配列も作れるということで、試してやると作れました。当たり前ですが。 #ruby -Ks def show_array(a) a…

TABインデントのテキストファイルをFreeMindのファイルへ変換(4)

Rubyなど使わなくても、単にペーストでいけるとのこと。 RubyとかXMLの知識を深めるのには役立ったので良しとする。出所:

TABインデントのテキストファイルをFreeMindのファイルへ変換(3)

parentメソッドを使用し、make_tree()の再帰呼び出しを無くすことができ、一件落着。

TABインデントのテキストファイルをFreeMindのファイルへ変換(2)

ごちゃごちゃしているのは 木の生成を再帰的に実行している 葉から根の方向へ移動する際、先読みしたデータを戻している ところにあると見た。 そもそも、任意の階層のノードが取得できれば再帰を使わなくてもループ一発でいけそうな予感。REXMLにもparentと…

TABインデントのテキストファイルをFreeMindのファイルへ変換するRubyスクリプト

http://d.hatena.ne.jp/dogatana/20090131/1233396767 の逆のことをするRubyスクリプトを書いてみました。(あれは空白でインデントするので厳密には逆ではないです。あれもそのうち修正しよう)1段ずつ木が深くなっていく場合は簡単だったけど、2段以上に…

Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト(3)-notes_lib.rb の修正

notes_lib.rbをLotus Notes 6.5で使用したときの問題 Lotus Notes 6.5のカレンダーをGoogle Calendarへ転送するRubyスクリプト - dogatanaの日記のように、notes_lib.rb をNotes 6.5で使用すると Dominoオブジェクトの全てのメソッドが使えない スクリプト実…