xlogin 0.6.25 → 0.6.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c73c01dae7005be0c80f3dfc9d1c93803a99463c
4
- data.tar.gz: 01f8a1c811ecaa9b12c700a9449c8f8902b1aec7
3
+ metadata.gz: 899f1414b37278f709f090d115ff92b77362cc10
4
+ data.tar.gz: 684261881e88ce0027c241e54413f11f8cccf54c
5
5
  SHA512:
6
- metadata.gz: 253dfbda28b526bd6bf976141a79386de57f822bbfdff290fba15b58c0974a3a41476ba789e6e06d24168305ce40ddc20b42dc22afd1537d02d72295b638d733
7
- data.tar.gz: daa058add70ad996b1998a3bb024d74ee39f1f7a0576866ccd87a2de3b85047866dbe7d1039c5b11a4be10e6c5b0e9879f5e357bd228b4a03d23f72b70b95f73
6
+ metadata.gz: 54d4e8051c5e9ca4d422042faa9335d123bfceb1b68aa98579788859abbfbe45b3e6d196fe97806d7bd9d322a43cd476235164a3473e300fcfd22c7890eee288
7
+ data.tar.gz: 001a6ad547f5436cb27a05057f5ce9e0bd374a49d1527a7178cb9062553ff1023f0063022ea1a487dc4c586b0fc1eebc47747ba7af9a437da3b74ef720c48e77
@@ -24,11 +24,13 @@ module Xlogin
24
24
  attr_accessor :log
25
25
  attr_accessor :silent
26
26
  attr_accessor :timeout
27
+ attr_accessor :fail_on_error
27
28
 
28
29
  def initialize(name)
29
30
  @name = name
30
31
  @runner = nil
31
32
  @silent ||= Rake.application.options.silent
33
+ @fail_on_error = true
32
34
 
33
35
  yield(self) if block_given?
34
36
  define_task
@@ -73,6 +75,7 @@ module Xlogin
73
75
  session.close if session
74
76
  rescue => e
75
77
  $stderr.print "#{name}\t#{e}\n"
78
+ raise e if fail_on_error
76
79
  end
77
80
 
78
81
  if Rake.application.options.always_multitask && !silent
@@ -54,24 +54,18 @@ module Xlogin
54
54
  cmd('').lines.last.chomp
55
55
  end
56
56
 
57
- def exec(*args)
58
- cmd(*args).tap { |resp| yield resp if block_given? }
59
- end
60
-
61
57
  def puts(line, &block)
62
58
  line = instance_exec(line, &@template.interrupt) if @template.interrupt
63
59
  super(line, &block)
64
60
  end
65
61
 
66
- def method_missing(name, *args, &block)
67
- process = @template.methods[name]
68
- super unless process
69
-
70
- instance_exec(*args, &process)
62
+ def exec(*args)
63
+ cmd(*args).tap { |resp| yield resp if block_given? }
71
64
  end
72
65
 
73
- def respond_to_missing?(name, _)
74
- !!@template.methods[name]
66
+ def enable(*args)
67
+ args.push(opts.enable) if args.empty?
68
+ super(args)
75
69
  end
76
70
 
77
71
  def waitfor(*expect, &block)
@@ -43,6 +43,10 @@ module Xlogin
43
43
  def build(uri, **params)
44
44
  uri = URI(uri.to_s)
45
45
  klass = Class.new(Xlogin.const_get(uri.scheme.capitalize))
46
+ klass.class_exec(@methods) do |methods|
47
+ methods.each { |name, block| define_method(name, &block) }
48
+ end
49
+
46
50
  klass.new(self, uri, **params)
47
51
  end
48
52
 
@@ -8,13 +8,8 @@ login do |password|
8
8
  waitfor
9
9
  end
10
10
 
11
- enable do |password, &block|
11
+ enable do |password|
12
12
  puts('enable')
13
13
  waitfor(/Password: /) && puts(password)
14
14
  waitfor
15
-
16
- if block
17
- block.call
18
- cmd('disable')
19
- end
20
15
  end
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.6.25"
2
+ VERSION = "0.6.26"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xlogin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.25
4
+ version: 0.6.26
5
5
  platform: ruby
6
6
  authors:
7
7
  - haccht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-12-05 00:00:00.000000000 Z
11
+ date: 2017-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet