Issue: SSHKit::Backend::Netssh binding change in run method breaks lookup in 'normal' block scope
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 35/100
Línea de trabajo
Comienza en SSHKit::Backend::Netssh#run e inspecciona cómo instance_exec cambia el binding del bloque. Reproduce el ejemplo de cap-task con Nginx#upload_files y tmp_config_file, determina después el comportamiento esperado del scope y añade cobertura para la búsqueda de métodos en objetos de servicio. Se considera terminado cuando la acción encapsulada puede resolver tmp_config_file y el comportamiento existente del bloque permanece intacto.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Ruby
- Estrellas
- 1.2k
- Forks
- 257
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de capistrano/sshkit
-
should have an openssh backend Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
capistrano/sshkit#563 · 6 reacciones ·
-
No redaction for with values Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
capistrano/sshkit#562 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
capistrano/sshkit#554 · 3 comentarios ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
capistrano/sshkit#543 · 2 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
capistrano/sshkit#518 · 1 comentario ·
Todos los issues de capistrano/sshkit
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
simp/pupmod-simp-simp#395 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
simp/pupmod-simp-rsyslog#219 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
simp/pupmod-simp-pupmod#256 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100
simp/pupmod-simp-sudo#150 ·
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 90/100