なぜかというと、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 件のコメント:
コメントを投稿