ruby gem bacon原始碼閱讀6

2021-08-22 11:29:32 字數 1310 閱讀 5324

ruby gem bacon原始碼閱讀6

今天早上看些雜書,讀到《大學之路》中吳軍講,人生是馬拉松,因為很多人畢業後就不學習了,只要學習就有收穫。感覺很深 ,於是接著讀原始碼。靜下心來。

用法是:

require 'bacon'

describe 'a new array' do

before do

@ary = array.new

endit 'should be empty' do

@ary.should.be.empty

@ary.should.not.include 1

end那describe是什麼意思,應該有個方法呀,找了很久,發現如下:

module kernel

private

def describe(name, &block)  bacon::context.new(name, &block) end

def shared(name, &block)    bacon::shared[name] = block      end

end對核心心進行了擴充。所以第6行,可以理解了。

再看bacon::context.new(name, &block),又到**呢?

class context

def initialize(name, &block)

@name = name

@before, @after = ,

return  unless name =~ restrictcontext

bacon.handle_specification(name)

end此處,要執行塊了。

可是,@ary.should.be.empty

前面理解,因為給object加了should方法,所以

@ary.should可以理解,而should類有be方法,也可以理解到

@ary.should.be

但empty是什麼意思?不理解。

今天還是不能理解,但理解又深了一層。

比如讀到

def handle_requirement(description)

print "- #"

error = yield

puts error.empty? ? "" : " [#]"

end就做試驗。

def h2

error=yield

p error

endh2

有結果了。

這樣慢慢理解。不過有一句:

shared = hash.new "

}不知"_"是何變數?看來,還是要讀書。

《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具

檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...

Cartographer原始碼篇 原始碼分析 1

在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...

python原始碼剖析 Python原始碼剖析

第頁共 頁python 原始碼剖析 物件機制 1.物件 在python 的世界中,一切都是物件,乙個整數是乙個物件,乙個字串也是 乙個物件,更為奇妙的是,型別也是乙個物件,整數型別是乙個物件,字串類 型也是乙個物件。從 年guido 在那個聖誕節揭開 python 世界的大幕開始,一直到現在,pyt...