Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Issue: SSHKit::Backend::Netssh binding change in run method breaks lookup in 'normal' block scope

Abierto
#149 10 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
35/100
Tipo de issue
Error
Claridad
Bastante claro
Estado de actividad
Estancado
Stack tecnológico
ruby
Área
devops

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

discuss!

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

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de capistrano/sshkit

Todos los issues de capistrano/sshkit

Issues similares

Más issues de Ruby

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.