xlogin 0.6.18 → 0.6.19

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: 25a8fe59917ea8d5ae3e02e0e3f836242a6d0072
4
- data.tar.gz: 94288f372cf3a2be910954a2de793fb6061a4573
3
+ metadata.gz: 0c0f860703052537d54eff6d9fdb935b26e3303b
4
+ data.tar.gz: 0628b284f64719f4ec0dacde5d5e359cbc3d701b
5
5
  SHA512:
6
- metadata.gz: 63d861e3a0f2e54ade3198d95551e9b7304f421d9e0741206cda4bd0f9344c8bf6e16768145d01d9e8b9b7190de919198dc8ebb7a811796908cb5c4f528dbd49
7
- data.tar.gz: 5b07d914d65cfbcfee4b19065458d8b6228e9ebe19e2d8f77a3d37554a516965704710884a7ee78cee82125dbe40bac6e984fa74d815812d4611ecc9d385d5ec
6
+ metadata.gz: 43c4049184dec2b4bd4bb4d41ef5a294037028fd8b668904f923c8d001946f7f0ab2ceb4ad2e5f31c76af2757b64eec9c6a4c672ccb15f1c232b2de9f4514b89
7
+ data.tar.gz: 022bb0bfa0c00af6880684bd7cd5758921f930e64fd5930c1237be3dd45a1eb49f0921cf47e5f8683d08eb42f637407024fe3764098cad4d5e1ff8433b96c765
@@ -88,6 +88,10 @@ module Xlogin
88
88
 
89
89
  def close
90
90
  @gateway.shutdown! if @gateway
91
+ @output_loggers.each do |output_log, logger|
92
+ next unless logger
93
+ logger.close if output_log.kind_of?(String)
94
+ end
91
95
  super
92
96
  end
93
97
 
@@ -131,25 +135,27 @@ module Xlogin
131
135
  end
132
136
 
133
137
  def output_log(text, &block)
134
- [*@output_loggers, block].compact.each { |logger| logger.call(text) }
138
+ block.call(text) if block
139
+ @output_loggers.each do |_, logger|
140
+ next unless logger
141
+ logger.syswrite(text)
142
+ end
135
143
  end
136
144
 
137
145
  def build_loggers(output_logs = @output_logs)
138
- [output_logs].flatten.compact.uniq.map do |output_log|
139
- logger = case output_log
140
- when String
141
- FileUtils.mkdir_p(File.dirname(output_log))
142
- File.open(output_log, 'a+').tap do |file|
143
- file.binmode
144
- file.sync = true
145
- end
146
- when IO, StringIO
147
- output_log
148
- end
149
-
150
- lambda { |c| logger.syswrite c if logger }
146
+ [output_logs].flatten.uniq.each.with_object({}) do |output_log, loggers|
147
+ case output_log
148
+ when String
149
+ FileUtils.mkdir_p(File.dirname(output_log))
150
+ logger = File.open(output_log, 'a+')
151
+ logger.binmode
152
+ logger.sync = true
153
+
154
+ loggers[output_log] = logger
155
+ when IO, StringIO
156
+ loggers[output_log] = output_log
157
+ end
151
158
  end
152
159
  end
153
-
154
160
  end
155
161
  end
data/lib/xlogin/telnet.rb CHANGED
@@ -23,7 +23,7 @@ module Xlogin
23
23
 
24
24
  def interact!
25
25
  $stdin.raw!
26
- disable_log($stdout)
26
+ enable_log($stdout)
27
27
 
28
28
  loop do
29
29
  rs, _ = IO.select([$stdin, @sock])
@@ -45,7 +45,6 @@ module Xlogin
45
45
  when @sock
46
46
  begin
47
47
  bs = fh.readpartial(1024)
48
- $stdout.syswrite(bs)
49
48
  output_log(bs)
50
49
  rescue Errno::EAGAIN
51
50
  retry
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.6.18"
2
+ VERSION = "0.6.19"
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.18
4
+ version: 0.6.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - haccht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-11-17 00:00:00.000000000 Z
11
+ date: 2017-11-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet