ruby

Rails を触らなくても入れて置いたほうがいい rails.el

これもパクリ。Rails 触らなくても、{} の補完とかしてくれるので便利。以下をダウンロードしてロードパスが通っているディレクトリに置く。 RubyForge: emacs-rails: Project Info find-recursive.el snippet.el そして以下を.emacsに追加する。 ;;; rails.…

「クラス自身のインスタンス変数」と「インスタンスのインスタンス変数」の違いが分からん

インスタンス変数を外部から参照できない - gan2 の Ruby 勉強日記を読んで、 class A attr_reader :var @var = "A" end a = A.new puts a.var #=> nil では nil が出力されて、 class A attr_reader :var def initialize @var = "A" end end a = A.new puts…

どう書く?org 64

どう書く?org の問題「どう書く?org」にチャレンジしたんだけど、キー入力の捕捉の仕方が分からなくて挫折した。 投稿されたプログラムを見てみると、Ruby は mamamoto さんという人が先に投稿していた。このプログラムが(自分にとっては)いろいろと勉強…

Ruby でランチャーを作る

Ruby の練習として、以下のページを参考にランチャーを作ったのだけど、うまく動かなかった。 10分でできる初めてのRubyプログラム - インターネットコム そこで、自分なりに考えて、オリジナルのコードにちょこっと手を加えた。動作確認用に無駄なコードと…

refeのutf-8化

ReFe が utf-8 環境で文字化けして読めなかったので、以下のページを参考にして直した。 適当日記 - 断片部 sudo vi /usr/lib/ruby/gems/1.8/gems/refe-0.8.0.3/lib/refe/searcher.rb で編集。 require 'iconv' を追加して22行目を Iconv.iconv("UTF-8","EUC…

ピッケル本を読む(6)第7章 式

メモ p76 旧バージョンの Ruby では、属性設定メソッド(セッター?)によって返された値が代入の結果になりました。Ruby1.8 では、常に、引数の値が代入の値になります。つまり、属性設定メソッドの戻り値は破棄されます。 ということは、以下のコード中の …

ピッケル本を読む(5)第6章 さらにメソッドについて

メモ 以下のコードで疑問だったのが、何で return に達したときに一発でメソッドを抜けてしまわないかということ。 def meth_three 100.times do |num| square = num*num return num, square if square > 1000 end end p meth_three #=> [32, 1024] 試しに、…

irb の中で refe を使う

~/.irbrc に以下を追加するだけ。 module Kernel def r(arg) puts `refe #{arg}` end private :r end class Module def r(meth = nil) if meth if instance_methods(false).include? meth.to_s puts `refe #{self}##{meth}` else super end else puts `refe …

ピッケル本を読む(4)第5章 標準型

Rubyにおける数値, 文字列, 範囲, 正規表現を詳しく説明してくれる章らしい。 メモ 整数 整数の最大値はメモリの空き容量によって決まる 一定範囲の整数は、Fixnumクラスのオブジェクトとしてバイナリ形式で内部的に保持される 一定範囲は通常、-2^30〜2^30-…

ピッケル本を読む(3)第4章 コンテナ・ブロック・イテレータ

メモ コンテナとは、1つ以上の他のオブジェクトへのリファレンスを保持するオブジェクトのこと(例えば、配列, ハッシュなど) 配列 a = [1, 3, 5, 7, 9] # 開始位置から長さ分を右辺の値に置換 a[2, 2] = 'cat' #=> [1, 3, "cat", 9] # 開始位置の前に右辺…

Rubyでタグジャンプ

Ruby対応のctagsを使えばタグジャンプが出来るらしいので入れてみた。 ctagsをダウンロードする(Exuberant Ctags) 名前をctags.exeからetags.exeに変える(こうすることで、Emacs用のタグファイルを出力するようになるらしい) 「$ which etags」でcygwin…

irbの出力をlessで綺麗に表示する

attr について ri で調べようと思って、Cygwin のシェルで $ ri attr | less としたら、うまく表示されない。 $ ri -h として原因を調べると、どうやらページャーにフォーマットを知らせなくちゃいけないみたい。(デフォルトのフォーマットは何なんだろう?…

ピッケル本を読む(2)第3章 クラス、オブジェクト、変数

ジュークボックスに入れる曲をクラスと想定して説明を進めるらしい。Songクラスなどの曲を表すクラスを書いて動作を確認しながら進む。 メモ newするとinitializeメソッドが呼び出される(オブジェクトの初期化に使う) メソッドの引数はメソッド内のローカ…

ピッケル本を読む(1)第2章 Ruby.new

夏休みに突入したので、本格的にピッケル本(プログラミングRuby 第2版 言語編)を読んでみようと思う。なお、式を評価した値を矢印の右側に示すことにする。 # sample "Hello, ruby!".length #=> 12 メモ Rubyは純粋なオブジェクト指向言語 操作の対象、結…

Ri for (X)Emacsを使ってみる

「Rubyist Magazine - Emacs 上の調べ物は langhelp で!」で「Ri for (X)Emacs」というEmacs(Meadow)上でriが実行できるパッケージが紹介されていたので、ReFeの導入ついでにこちらも入れてみる。 1.まずはダウンロード RubyForge: Ri for (X)Emacs: Pro…

ReFeをMeadowから使えるようにする

ReFeとは、配布元によると、 クラス名とメソッド名から Ruby のリファレンスマニュアルのエントリを引く、コマンドライン用のツールです。読みは「りふぇ」。 ri をパクって日本語・RD に対応させたものです。 らしい。riと併用すると便利なのかも。設定方法…

Cygwinにvrubyをインストール

VisualuRuby(vruby)をインストールしてみた。 なんで急にインストールしたかというと、これから読む予定の恋するプログラム―Rubyでつくる人工無脳という本の中で使われていて必要だから。恋するプログラム―Rubyでつくる人工無脳作者: 秋山智俊出版社/メーカ…

Meadow上でRubyを実行させる(inf-ruby.el導入済みが前提条件?)

画面切り換えなしで、Rubyの編集・読み込み・実行を行いたいなと思ったので、Meadow上でRubyを実行させる方法を調べてメモしておく。 (具体的には、Meadow上でRubyを実行させるために、irbをバッファに開いて使う。) 手順 1.編集したいRubyファイルをMeado…

Cygwin上のMeadowでRubyを便利に使う

前日の日記で試したVim/RubyでvimのRubyインターフェースが有効にできなかったので(./configure実行途中でメモリ食い尽くして止まる…Cygwinのエラーなのかもしれない)、vimを使うのをあきらめてMeadowを使ってみる。 参考1 Meadowのインストール: Meadow/…

Cygwin上のVimとirbでRubyプログラミング

Vim/RubyとWirbleなるツールをインストールして、色分け表示などをできるようにする。 Vim/Ruby:Vimのシンタックスハイライト機能 Wirble:irbのシンタックスハイライト機能 手順 1.CygwinにはデフォルトでRubyのgemが入っていないので入れる gemのダウン…