I would like to use SSHKit in a Thor script. The problem is that I don't 
have access to the options variable once I use the SSHKit DSL methods. Has 
anybody used SSHKit with Thor and been able to access options? / Are there 
known scoping workarounds with SSHKit?


*Code:*
# Echo.thor
require 'sshkit'
require 'sshkit/dsl'

class Echo < Thor

  HOST = SSHKit::Host.new('some_user@some_box')

  desc 'echo', 'Simple example'
  method_option :echo, desc: 'Thing to echo.'
  def echo
    # options variable is available here...
    puts "options[:echo]: #{options[:echo]}"
    on HOST do
      # ...but not here.
      execute :echo, options[:echo]
    end
  end
end

*Result:*

>thor echo:echo --echo Timmy
options[:echo]: Timmy
D:/Code/link/scripts/phalanx/echo.thor:15:in `block in echo': undefined 
local variable or method `options' for #<SSHKit::Backend::Netssh:0x2e4ef20> 
(NameError)
        from 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/sshkit-1.4.0/lib/sshkit/backends/netssh.rb:54:in
 
`instance_exec'
        from 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/sshkit-1.4.0/lib/sshkit/backends/netssh.rb:54:in
 
`run'
        from 
C:/Ruby200/lib/ruby/gems/2.0.0/gems/sshkit-1.4.0/lib/sshkit/runners/parallel.rb:12:in
 
`block (2 levels) in execute'

Versions:

   - Ruby 2.0.0p353 (Windows 8) and 2.1.1p76 (Mac Mavericks with RbEnv)
   - Capistrano N/A
   - SSHKit 1.4.0
   - Thor 0.19.1 (Windows) and 0.14.6 (Mac)
   
Platform:

   - Tried both Windows 8 and Mac Mavericks.
   - Target machine is Ubuntu, but shouldn't be a factor.
   

-- 
You received this message because you are subscribed to the Google Groups 
"Capistrano" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to capistrano+unsubscr...@googlegroups.com.
To view this discussion on the web, visit 
https://groups.google.com/d/msgid/capistrano/f692a609-fc7a-44e5-a58f-91e085b19c3a%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: echo.thor
Description: Binary data

Reply via email to