2012年11月3日土曜日

6日目:初めてのRuby読了!

「初めてのRuby」、この本、Java、JavaScriptライクな私にとってとってもいい本でした。
なぜかというと、Rubyの仕様に特化しているからです。変数の説明だとか、計算式の説明だとか、プログラミング言語の基礎はすっ飛ばしている。
だから、薄い本なんですが、とても中身が濃い!どのページにも新しい発見がありました。
他のプログラミング言語を使っている人がRubyを勉強するために最初に手に取る本として凄くオススメです!

本日で、始めてのRuby読了!
さて、今日勉強した内容。

・gemって?
パッケージ化された(セットになった).rbファイル群をロードする仕組みらしいです。
ライブラリを使いたい時は、gemコマンドでライブラリを取得して使う。
使うときはソース上でrequire() と gem()を使う。
例えばDBアクセスの例。

require("rubygems") #Rubyに組み込まれているrubygems.rbを読み込む。
gem "activerecord" #activerecordというGemをセットアップする。
require("active_record") #Gemの中に入っているactive_record.rbを読み込む。
ActiveRecord::Base.establish_connection(:adapter => "sqlite3", :database => ":memory:")
ActiveRecord::Base.connection.create_table("users") do |table|
  table.string(:name, :null=>false)
  table.string(:tel, :null=>false)
  table.timestamp(:created)
end
class User < ActiveRecord::Base
end
User.create!(:name => "saytone", :tel=>"090-0000-0000")
p User.find_by_name("saytone")

便利ですねー。DBアクセスも簡単。
gemコマンドでGemファイルはインストールできますが、Rubyラインタイムにインストールされるっぽい。Rubyランタイムの近くにgemsってディレクトリがあって、そこに.Gemの設定ファイルだとかrbファイルだとかがインストールされてる。
んー。あまり環境を汚したくないので、gemはアプリケーションごとに持ちたいなぁ。JavaのWebプリケーションで使う.jarは.warファイルに埋め込むように。

・オブジェクトに存在しないメソッドが呼び出されたときはmethod_missingが呼ばれる。

class MyClass
  def method_missing(method_name,*args)
    p "#{method_name} called"
  end
end
myObj = MyClass.new()
myObj.noSuchMethod();

オシャレ。
でもコレ、存在しない「パラメータ」呼び出しでも呼ばれるよね?Rubyはメソッド実行に()が要らないもの。。。()つけずにメソッド呼び出しはヤバイですよぅ。

・Proc.newはprocとも書ける。

まぁ、そういうメソッドがあるってことですね。
myProc = proc do
  p "proc call"
end
myProc.call()



というわけで
!!!!!読了!!!!!
次回は、Rubyの開発環境を整備してみます。

私は生粋のJavaプログラマなので、生粋のJava的Ruby開発環境を作ってみます!


0 件のコメント:

コメントを投稿