2012-04-29 17 views
15

Bunu, surveyor gem Gemspec dosyasında buldum. Aşağıdaki çizgi ne yapar?

$:.push File.expand_path("../lib", __FILE__) 
require "surveyor/version" 

Neden $:.push bir şey yapar? Benim için sadece requires../lib/surveyor/version dosya gibi görünüyor. eğer öyleyse, bunu bir satır takip ederek değiştiremez miyim?

require File.expand_path('../lib/surveyor/version', __FILE__) 

Her ikisi de aynı şey midir? Değilse, o zaman ne fark eder? Bu taş o diğer dosyaları require d olabilir böylece, __FILE__ bu diziye bulunduğu bir klasörün alt klasörü /lib ekleyerek aslında yüzden

+4

Sadece bir not: '$ LOAD_PATH << Dosya.expand_path ...' aynı şeyi yapar ve biraz daha az gizlenmiş IMHO'ya benziyor. –

+0

gerçekten, bahşiş için teşekkürler :) – CuriousMind

+3

Symbolhound.com, bunun gibi sözdizimi aramak için kullanışlıdır. –

cevap

15

$:, Ruby'nin yük yoludur.

+0

Temel olarak, tam yolu yazmak zorunda kısayol. Bu açıklıyor. Teşekkürler! – CuriousMind

+0

@Gaurish: Sadece bu değil. Taş, yükleme yoluna eklemeden, tam yolla gereksinim duymanız halinde yüklenemediği yükleme yolunda olduğunu varsayabilir. –

İlgili konular