Mam rozszerzenie Buildr, które pakuję jako klejnot. Mam kolekcję skryptów, które chcę dodać do pakietu. Obecnie mam te skrypty przechowywane jako duży blok tekstowy, który piszę do pliku. Wolałbym mieć pojedyncze pliki, które mogę albo skopiować bezpośrednio, albo odczytać/zapisać z powrotem. Chciałbym, żeby te pliki zostały zapakowane w klejnot. Nie mam problemu z zapakowaniem ich (po prostu przykleić je do systemu plików przed rake install
), ale nie wiem, jak uzyskać do nich dostęp. Czy jest coś w rodzaju pakietu zasobów Gem?Uzyskiwanie dostępu do plików spakowanych w klejnot Ruby
8
A
Odpowiedz
16
Istnieją dwa sposoby,
1) można załadować zasobów w stosunku do pliku Ruby w swojej gem wykorzystujące __FILE__
:
def path_to_resources
File.join(File.dirname(File.expand_path(__FILE__)), '../path/to/resources')
end
2) Można dodawać dowolne ścieżki z Gem do $LOAD_PATH
zmienna, a następnie chodzić $LOAD_PATH
znaleźć środki, np
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
a następnie
$LOAD_PATH.each { |dir| ... look for resources relative to dir ... }
Powiązane problemy
- 1. Uzyskiwanie dostępu do zaszyfrowanego pliku pgp w języku Ruby
- 2. Uzyskiwanie dostępu do plików FTP ze Scala
- 3. Uzyskiwanie dostępu do nazw plików formularza przesyłania wielu plików
- 4. Uzyskiwanie dostępu do interfejsu API Google+ (Ruby) w trybie publicznym
- 5. Uzyskiwanie dostępu do prywatnych metod z funkcji modułu w Ruby
- 6. Uzyskiwanie dostępu do plików w pamięci podręcznej rozproszonej pamięci podręcznej
- 7. Uzyskiwanie dostępu do plików w pliku rozszerzenia obb
- 8. Uzyskiwanie dostępu do pliku z kolejki plików w przepływie Tensor
- 9. Ruby: Jak napisać klejnot?
- 10. Klejnot statystyczny ruby
- 11. Uzyskiwanie dostępu do pliku nagłówkowego
- 12. Uzyskiwanie dostępu do plików danych przed i po distutils/setuptools
- 13. Uzyskiwanie dostępu do aplikacji z wielu plików Web.config
- 14. Uzyskiwanie dostępu do plików źródłowych z git BARE: master
- 15. Uzyskiwanie dostępu do plików przy użyciu działania kompilacji: treść
- 16. WP7 Uzyskiwanie dostępu do plików i folderów telefonu
- 17. uzyskiwanie dostępu do systemu plików kontenera dokera przez terminal
- 18. Najlepszy klejnot YouTube dla Ruby?
- 19. Jak działa klejnot ruby w środowisku szyn
- 20. Niestandardowy klejnot Ruby w Gemfile na Heroku
- 21. Zainstaluj klejnot Ruby Curb w Windows XP
- 22. uzyskiwanie dostępu do rekordów OCaml
- 23. Uzyskiwanie dostępu do danych Flixster
- 24. Uzyskiwanie dostępu do zasobów JAR
- 25. Uzyskiwanie dostępu do elementów JSON
- 26. Klejnot kopii zapasowej Ruby - udostępniane konfiguracje?
- 27. Uzyskiwanie dostępu do obiektów innych klas
- 28. Uzyskiwanie dostępu do modeli w migracji alembików
- 29. Uzyskiwanie dostępu do kwerendy w ASP.NET MVC6
- 30. Uzyskiwanie dostępu do helpera current_user w JavaScript
Pierwszy działał jak czar. :) – Drew
Proszę użyć Gem.data_dir do znalezienia właściwej ścieżki. – ch2500