Ruby
module Mod def initialize puts 'module initialized' end endclass Parent def initialize puts 'parent class initialized' end endclass Child include Mod def initialize super end endChild.new実行結果 module initializedinitializeメソッドを持つ…
$ gem install mislav-will_paginate一般ユーザー権限で上のようにgem installを実行すると、~/.gem/ruby/1.8以下にmislav-will_paginateがインストールされる。 しかし以下のような警告が出る。 WARNING: Installing to ~/.gem since /usr/lib/ruby/gems/1.…
Emacs21.4.1とruby1.8.7の環境でruby-mode.elを使うと以下のエラーが出た。 File mode specification error: (void-function run-mode-hooks)http://www.nabble.com/-ruby-dev:34853--emacs21%E3%81%A7ruby-mode.el-td17466768.html ここを参考にruby-mode.e…
Rubyのドキュメント 公式ドキュメント http://www.ruby-lang.org/ja/documentation/ RDoc http://www.ruby-doc.org/ gemでインストールした外部ライブラリAPI $ gem serverとしてhttp://localhost:8808/にアクセスする。 Railsのドキュメント railsもgemでイ…
トップレベルにクラスを定義する # 元々のObjectクラスにはOuterという名前の定数は存在しないが puts Object.const_defined?(:Outer) => false # Outerクラスを定義すると class Outer end # Outerという名前の定数ができる puts Object.const_defined?(:Ou…
Javaでいうアクセス修飾子は、Rubyではメソッドとして提供される。 インスタンスメソッド用に、public、protected、private がある。 クラスメソッド用に、public_class_method、private_class_method がある。 デフォルトは、クラス内のメソッドであればpub…
オーバーライドが成立する条件はメソッド名の同値性だけ。 たとえば以下の例 class Animal def speak "hello" end endclass Dog def speak(word) "hello " + word end enddog = Dog.newputs dog.speak => 14:in 'speak': wrong number of arguments (0 for 1…
"aaa".instance_of? String => true "aaa".instance_of? Object => false String === "aaa" => true Object === "aaa" => true "aaa" === "aaa" => true String === String => false String === Object => false A.instance_of? B は、AがBの直接のインスタ…
hoge1 = "aaa" hoge2 = "aaa"puts hoge1 == hoge2 => true puts hoge1.equal? hoge2 => false rubyの==メソッドはJavaのequals()メソッドと同様に、値が同値であることの検証を行う。 rubyのequal?メソッドはJavaの==演算子と同様に、オブジェクトが同一であ…
Rubyのsuper class Parent def speak(word) word end endclass Child def speak(word) super end endchild = Child.newputs child.speak('hello') => hello スーパークラス(またはインクルードしたモジュール)のメソッドを呼び出す構文。両方に定義されて…
リテラルとクラス 1.class => Fixnum 0.5.class => Float "hoge".class => String 'a'.class => String :hoge.class => Symbol ["hoge1", "hoge2"].class => Array {"var" => "value"}.class => Hash (1..5).class => Range ("abc".."xyz").class => Range /…
※ Ruby-1.9.1がまともに使えなかったのでRuby1.8.7に変更。1.9の安定版が出るまでは1.8で。 Rubyのインストール # wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7.tar.gz # tar xzvf ruby-1.8.7.tar.gz # cd ruby-1.8.7 # ./configure --prefix=/usr…
CheckInstallのインストール 最新のcheckinstall-1.6.1のrpmパッケージを取得する。 # wget http://asic-linux.com.mx/~izto/checkinstall/files/rpm/checkinstall-1.6.1-1.i386.rpm rpmパッケージからインストールする。 # rpm -ivh checkinstall-1.6.1-1.i…