Gem olarak paketlediğim bir Buildr uzantısına sahibim. Bir pakete eklemek istediğim bir script koleksiyonum var. Şu anda, bu komut dosyalarını dosyaya yazdığım büyük bir metin bloğu olarak saklıyorum. Doğrudan kopyalayabileceğim veya okuyabileceğim/okuyabileceğim bireysel dosyalara sahip olmayı tercih ederim. Bu dosyaların gemiye paketlenmesini istiyorum. Paketlemede sorun yaşıyorum (sadece rake install
'dan önce dosya sistemine yapıştırabilirsiniz) ancak bunlara nasıl erişeceğimi anlayamıyorum. Bir Gem Kaynakları paket tipi şey var mı?Bir Ruby Gem'e paketlenmiş dosyalara erişme
8
A
cevap
16
__FILE__
kullanarak Eğer taş Ruby dosyasına göre kaynakları yükleyebilirsiniz
1) iki yol, temelde vardır:
def path_to_resources
File.join(File.dirname(File.expand_path(__FILE__)), '../path/to/resources')
end
2) Bu hizmeti kullanmak için Gem gelen keyfi yolları ekleyebilir $LOAD_PATH
, örneğin değişken ve ardından kaynakları bulmak için $LOAD_PATH
yürümek
Gem::Specification.new do |spec|
spec.name = 'the-name-of-your-gem'
spec.version ='0.0.1'
# this is important - it specifies which files to include in the gem.
spec.files = Dir.glob("lib/**/*") + %w{History.txt Manifest.txt} +
Dir.glob("path/to/resources/**/*")
# If you have resources in other directories than 'lib'
spec.require_paths << 'path/to/resources'
# optional, but useful to your users
spec.summary = "A more longwinded description of your gem"
spec.author = 'Your Name'
spec.email = '[email protected]'
spec.homepage = 'http://www.yourpage.com'
# you did document with RDoc, right?
spec.has_rdoc = true
# if you have any dependencies on other gems, list them thusly
spec.add_dependency('hpricot')
spec.add_dependency('log4r', '>= 1.0.5')
end
ardından,
$LOAD_PATH.each { |dir| ... look for resources relative to dir ... }
İlgili konular
- 1. Phonegap kullanarak dosyalara erişme
- 2. Drive API aracılığıyla bir klasördeki dosyalara erişme?
- 3. Programatik olarak PC'den android cihazdaki dosyalara erişme
- 4. Belge kökünün dışındaki dosyalara Apache ile erişme
- 5. Obb genişletme dosyası içindeki dosyalara erişme
- 6. Azure Dosya Depolama Alanı'nda saklanan dosyalara erişme
- 7. Bir örnek değişkeni ruby kullanmadan yöntem döngüsünün içindeki değişkene erişme
- 8. Java kodunda bir öbek olarak ötleğen kullanılarak paketlenmiş Ruby sınıflarını nasıl kullanabilirim?
- 9. Paketlenmiş bir arşiv ile patlatılmış bir arşiv arasındaki fark
- 10. Java'da bir MidiDevice'e erişme
- 11. Std :: tuple'dan paketlenmiş değerlerin dönüş değeri optimizasyonu
- 12. JSONCPP Dosyalara yazılıyor
- 13. 7Zip dosyalara şifreleme ekleyin
- 14. Dosyalara gezinirken yetkisiz hata
- 15. Dosyalara satır ekleyin
- 16. Dosyalara işaretçi dizisi oluştur
- 17. Bir kullanıcının Google Drive'ındaki tüm dosyalara erişim
- 18. ruby array internals
- 19. Neden Logger çıkışı STDOUT'a dosyalara yönlendiriliyor?
- 20. İstemci kimlik doğrulaması olmadan dropbox api'ye erişme?
- 21. ActionBar'a bir Fragman içinden erişme
- 22. dış kapsamından bir değer erişme
- 23. Uzak bir MBean sunucusuna erişme
- 24. Bağlantılı bir listedeki yapılara erişme
- 25. Python'dan bir MySQL veritabanına erişme
- 26. MSBuild - Dosyalara Kaçış Karakterlerini Yazma
- 27. ConfigParser ile dosyalara yorum yazma
- 28. URL'leri yanlış şekilde dosyalara aktarma
- 29. Nesneleri Node.js'deki dosyalara nasıl kaydedebilirim?
- 30. tomcat belirli dosyalara erişimi reddediyor
İlki bir çekicilik gibi çalıştı. :) – Drew
Doğru yolu bulmak için lütfen Gem.data_dir kullanın. – ch2500