Czy jest możliwe z poziomu zadania rake, aby uzyskać listę zadań w przestrzeni nazw? Rodzaj programu "rake -T db"?Czy można uzyskać listę wszystkich dostępnych rake zadań w przestrzeni nazw?
18
A
Odpowiedz
16
Znalazłem się odpowiedź:
tasks = Rake.application.tasks
ta zwróci tablicę Rake :: Task obiektów, które mogą być badane. Dalsze szczegóły na http://rake.rubyforge.org/
1
Można użyć polecenia grep jak ten
desc 'Test'
task :test do
# You can change db: by any other namespaces
result = %x[rake -T | sed -n '/db:/{/grep/!p;}' | awk '{print$2}']
result.each_line do |t|
puts t # Where t is your task name
end
end
11
Jak pisał z Rake.application.tasks można uzyskać wszystkie zadania.
Ale wewnątrz przestrzeni nazw, można wybrać tylko te zadania nazw (mytest zadanie: tasklist)
I można ograniczyć zadania do przestrzeni nazw (tasklist_mytest zadań).
require 'rake'
namespace :mytest do |ns|
task :foo do |t|
puts "You called task #{t}"
end
task :bar do |t|
puts "You called task #{t}"
end
desc 'Get tasks inside actual namespace'
task :tasklist do
puts 'All tasks of "mytest":'
puts ns.tasks #ns is defined as block-argument
end
end
desc 'Get all tasks'
task :tasklist do
puts 'All tasks:'
puts Rake.application.tasks
end
desc 'Get tasks outside the namespace'
task :tasklist_mytest do
puts 'All tasks of "mytest":'
Rake.application.in_namespace(:mytest){|x|
puts x.tasks
}
end
if $0 == __FILE__
Rake.application['tasklist'].invoke() #all tasks
Rake.application['mytest:tasklist'].invoke() #tasks of mytest
Rake.application['tasklist_mytest'].invoke() #tasks of mytest
end
Powiązane problemy
- 1. Jak uzyskać listę wszystkich dostępnych poleceń powłoki?
- 2. Uzyskiwanie listy wszystkich dostępnych obszarów nazw w AppDomain
- 3. uzyskać listę dostępnych wyliczenia
- 4. Linux: wyświetl listę wszystkich dostępnych menedżerów okien.
- 5. Czy mogę uzyskać metadane dla przestrzeni nazw?
- 6. Czy można ponownie używać nazw zmiennych przy użyciu przestrzeni nazw?
- 7. Rake zadań w innych plikach
- 8. Jak uzyskać listę nazw kolumn
- 9. Jak wyświetlić listę wszystkich zadań Rakes 3? rake -T wydaje się niekompletny
- 10. PHP: pobranie wszystkich zadeklarowanych przestrzeni nazw DOMElement
- 11. listę wszystkich dostępnych sterowników drukarki (jak Kreator dodawania drukarki)
- 12. JavaScript: Jak uzyskać listę wszystkich otwartych okien
- 13. Jak mogę wyświetlić listę dostępnych algorytmów szyfrowania?
- 14. Lista wszystkich dostępnych działań w google home
- 15. Jak uzyskać wszystkie nazwy klas w przestrzeni nazw w Ruby?
- 16. Android dexclassloader uzyskać listę wszystkich klas
- 17. Jak uzyskać listę wszystkich dostępnych klawiatur w systemie Windows Phone Mango (w kodzie C#)?
- 18. Jak uzyskać listę dostępnych przeglądarek z koncentratora selenowego?
- 19. Gdzie można uzyskać listę prawie wszystkich słów w języku angielskim?
- 20. Jak uzyskać listę raportów dostępnych w wystąpieniach usług raportowania
- 21. Selenum.Chrome Gdzie mogę znaleźć listę wszystkich dostępnych argumentów ChromeOption? C#
- 22. Jak wyświetlić listę wszystkich wpisów JNDI w przestrzeni nazw "java: global"
- 23. Pytanie Tcl - jak wyświetlić listę funkcji w przestrzeni nazw
- 24. Python: ElementTree, uzyskać ciąg przestrzeni nazw elementu
- 25. Angular2 Nie można znaleźć przestrzeni nazw "google"
- 26. Lista zadań grunt.js
- 27. Gdzie mogę uzyskać listę nazw krajów w językach ojczystych?
- 28. Jak uzyskać listę wszystkich użytkowników w SharePoint
- 29. Czy można wyświetlić listę wszystkich kluczy obcych w bazie danych?
- 30. Niejednoznaczne odwołanie w przestrzeni nazw
O ile widziałem, nie ma pomocnika dla znalezienia rzeczy w zakresie, ale myślę, że powinno to być dość łatwe: Rake.application.tasks.reject {| zadanie | task.scope! = [: your,: scope]} – phoet
W moim przypadku (Rails), było również konieczne uruchomienie 'AppName :: Application.load_tasks' aby wypełnić' Rake.application.tasks' – joshfindit