Ruby中區(qū)分運(yùn)行來源的方法
當(dāng)我們?cè)趯懩K的時(shí)候,或多或少需要直接運(yùn)行這個(gè)文件也可以執(zhí)行一些方法,但是這樣對(duì)于當(dāng)這個(gè)模塊被require或者include時(shí),顯得不好,在ruby里,有沒有區(qū)分運(yùn)行來自當(dāng)前文件,還是被require的目標(biāo)文件調(diào)用呢?
Python可以
比如像Python這樣
if __name__ == '__main__':
print "from direct running"
Ruby當(dāng)然也可以
對(duì)于處處為程序員著想,擁有快樂編程理念的Ruby來說當(dāng)然是可以區(qū)別的。其原理就是判斷啟動(dòng)文件是否為模塊的代碼文件。
if __FILE__ == $0
puts 'called from direct running'
end
舉個(gè)例子
工具類模塊utils.rb
module Utils
class StringUtils
def self.test
puts "test method myfile=" + __FILE__ + ';load from ' + $0
end
end
end
if __FILE__ == $0
puts 'called from direct running'
Utils::StringUtils.test()
end
直接運(yùn)行,結(jié)果,if條件成立,執(zhí)行了輸出
20:04:37-androidyue~/rubydir/test$ ruby utils.rb
called from direct running
test method myfile=utils.rb;load from utils.rb
引用Utils的類test.rb
require './utils'
Utils::StringUtils.test()
運(yùn)行結(jié)果,引入模塊的條件不成立,沒有輸出called from direct running
20:08:07-androidyue~/rubydir/test$ ruby test.rb
test method myfile=/home/androidyue/rubydir/test/utils.rb;load from test.rb
相關(guān)文章
簡單介紹Ruby on Rails對(duì)PostgreSQL數(shù)組類型的支持
這篇文章主要介紹了簡單介紹Ruby on Rails對(duì)PostgreSQL數(shù)組類型的支持,Rails框架從4.0以后對(duì)PG的數(shù)組提供了支持,需要的朋友可以參考下2015-04-04Ubuntu上配置Ruby on Rails框架及RubyMine IDE開發(fā)環(huán)境
Ruby on Rails是Ruby世界中當(dāng)仁不讓的Web框架代表,甚至可以說Rails推動(dòng)了Ruby的流行,這里我們就來看一下如何在Ubuntu上配置Ruby on Rails框架及RubyMine IDE開發(fā)環(huán)境2016-07-07Ruby中Hash哈希結(jié)構(gòu)的基本操作方法小結(jié)
Hash是一種鍵值對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu),Ruby中直接帶有Hash類來對(duì)其提供支持,這里我們整理了Ruby中Hash哈希結(jié)構(gòu)的基本操作方法小結(jié),首先來回顧一下Hash的基本知識(shí):2016-06-06介紹Ruby中的模塊與混合類型的相關(guān)知識(shí)
這篇文章主要介紹了Ruby中的模塊與混合類型的相關(guān)知識(shí),包括平常人們常說的多態(tài)與繼承等相關(guān)知識(shí)點(diǎn),需要的朋友可以參考下2015-05-05Ruby中訪問SQL Server數(shù)據(jù)庫的配置實(shí)例
這篇文章主要介紹了Ruby中訪問SQL Server數(shù)據(jù)庫的配置實(shí)例,本文通過FreeTDS實(shí)現(xiàn),同時(shí)介紹了在ActiveRecord上使用Tiny_TDS的技巧,需要的朋友可以參考下2014-11-11Windows下Ruby+Watir自動(dòng)化測試的環(huán)境搭建及數(shù)據(jù)讀取
這篇文章主要介紹了Windows下Ruby+Watir自動(dòng)化測試的環(huán)境搭建及數(shù)據(jù)讀取,Watir是一個(gè)使用Ruby實(shí)現(xiàn)的開源Web自動(dòng)化測試框架,需要的朋友可以參考下2016-03-03Ruby解析處理YAML和json格式數(shù)據(jù)
這篇文章主要介紹了Ruby對(duì)YAML和json格式的數(shù)據(jù)處理方法,json序列化、json反序列化,json解析等操作,需要的朋友可以參考下2022-04-04