Issue: SSHKit::Backend::Netssh binding change in run method breaks lookup in 'normal' block scope
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Inizia da SSHKit::Backend::Netssh#run e analizza come instance_exec modifica il binding del blocco. Riproduci l’esempio di cap-task con Nginx#upload_files e tmp_config_file, quindi determina il comportamento previsto dello scope e aggiungi una coverage per la ricerca dei metodi negli oggetti servizio. Il lavoro è completato quando l’azione incapsulata riesce a risolvere tmp_config_file e il comportamento esistente del blocco rimane invariato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hi,
in SSHKit::Backend::Netssh#run instance_exec is used to change the binding of the given block. With this binding change it is difficult to encapsulate an action in a service object for instance you have a cap-task:
desc 'Setup nginx configuration'
task :setup do
Nginx.new(self).setup
end
class Nginx < SimpleDelegator
...
def upload_files
on roles nginx_roles do |host|
set :host_server_name, host.properties.fetch(:host_server_name)
template 'assets.host.site', tmp_config_file
end
end
def tmp_config_file
'remote_file_name'
end
...
end
This does not work because the block is executed in the context of the SSHKit::Backend::Netssh object context and does not know the method tmp_config_file.
Why do I want to do such things? Testing! Rake and Cap tasks are difficult to test.
When I encapsulate the actions I can test the a little.
regards
dieter
- Lingua principale
- Ruby
- Stelle
- 1.2k
- Fork
- 257
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di capistrano/sshkit
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
capistrano/sshkit#563 · 6 reazioni ·
-
No redaction for with values Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
capistrano/sshkit#562 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
capistrano/sshkit#554 · 3 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
capistrano/sshkit#543 · 2 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 45/100
capistrano/sshkit#518 · 1 commento ·
Tutte le issue di capistrano/sshkit
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
TheOdinProject/curriculum#31417 · 2 commenti ·
-
Allow faraday-http-cache 3.x Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
glossarist/glossarist-ruby#238 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
palladius/rails8-app-on-gcp#145 ·