ラベル ruby の投稿を表示しています。 すべての投稿を表示
ラベル ruby の投稿を表示しています。 すべての投稿を表示

2011年12月1日木曜日

[ruby]includeとextend

Rubyにおけるincludeとextendの違いは言葉で言われてもピンと来ないので実際に試した方が早いのね。
irbで試しましょう。

とりあえずこんなモジュールを用意します。
module A
 def hello
  "hello"
 end
end

そして使ってみます。まずはinclude。
class B
 include A
end

test = B.new
test.hello => #"hello"
B.hello => #"NoMethodError"

次にextend。
class C
 extend A
end

C.hello => #"hello"
test = C.new
test.hello => #"NoMethodError"
test.extend(A)
test.hello => #"hello"
つまりincludeはインスタンスメソッドを差し込むのに対して、extendは特異メソッドを挿入するかたちになります。
だからクラス定義の中でextendすると、クラスの特異メソッド=クラスメソッドになります。

2011年4月18日月曜日

MacにRails3を入れてみる

MacにRails3を入れてみようとチャレンジ。
Redmineも入っているけど(Rails2.xでしか動かない)、オールインワンのパッケージからインストールしているので多分ローカルのRailsで動いているハズ。
参考にしたのはこちら。

MacにRuby1.9.2やRails3.0.6などをインストールしてみた

RVMのインストールにはこちらを参照しました。
rvmで複数のrubyを管理する
MacにRVMを導入したまとめ

どちらもあっさり入った。
あれ、この前どーしてもrubyがバージョンアップできなかったんだけど。。。

macportsが動かない

何が違うんだ。
rvm介すとうまくいく??

今のところ「rails -v」と実行すると「3.0.6」と返ってくることを確認しただけなので、実は奥深くで失敗しているかもしれないけど。
以前の失敗がトラウマになって自信が持てないのね。
Redmineも無事に動いています。

2010年9月6日月曜日

macportsがやっぱり動かない

googleで見つかる限りのブログ記事の手段を試したものの、こんなエラーが出ます。

Error: Target org.macports.patch returned: Patch file readline61-001 is missing
Log for readline is at: /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_ports_devel_readline/main.log
Error: The following dependencies failed to build: readline
Error: Status 1 encountered during processing.
To report a bug, see


rubyが更新できません。。
PHPで勉強しよう。。

2010年9月5日日曜日

macでrubyを使う

ああ、去年の今頃はLinuxのカーネルを読もうとしていたのね。
一年ぶりに投稿してみます。
備忘録のため。

Googleが公開しているAPIとDBを使ってなにかやりたいなーと思ったのだけど、わたしはWeb系の技術はシロートなので、まずはMAMPを入れてPHP+MySQLで色々と試してみました。
ネット上で調べていくうちにrubyの方がおサレっぽい気がするのでrubyも勉強してみようと思います。
MAMPに頼らずにPHPからMySQLにアクセスしようとしたら大変に手間取って、しかも当時さんざん調べまわった知識ももはやメモとして残っておらず。。
その反省を踏まえて、rubyを動かすためのメモはこうしてblogに残すのだ。

参考にしたページはこちら。
Running Ruby Programs on the Mac OS X Apache Web Server

rubyのサンプルプログラムを書いて、「/Library/WebServer/CGI-Executables」に置いて「http://localhost/cgi-bin/test.rb」でアクセス。

最初から設定済みなようで、あっさり。