xlogin 0.4.6 → 0.4.7
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 +4 -4
- data/lib/xlogin/firmware_factory.rb +6 -0
- data/lib/xlogin/session.rb +19 -17
- data/lib/xlogin/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f5cae10e317124a423c1aa86ebb0461645ecd54f
|
4
|
+
data.tar.gz: 9d69438c6cefdb260c2503abb4575d6afc057d17
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5686ebbb6036c35d71a7a10bedd63f3be198bc4bcfe2fa53e2c9680811f388cf1debcf04b68c15447dda45821b16c035b357310d221f90df850dfe131fe263c
|
7
|
+
data.tar.gz: 44abe1bda6ea08bba42613fd9f6fc7b016aff20d3b107c9e40db591b4e553184f2db71f9611aff79efe5c0b9faed0ad4b7486f3929f2a3cd7c87e6934761ac22
|
@@ -38,6 +38,12 @@ module Xlogin
|
|
38
38
|
end
|
39
39
|
|
40
40
|
def source(*files)
|
41
|
+
if files.empty?
|
42
|
+
files += [ENV['HOME'], Dir.pwd].flat_map do |dir|
|
43
|
+
[File.join(dir, '_xloginrc'), File.join(dir, '.xloginrc')]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
41
47
|
files.compact.uniq.each do |file|
|
42
48
|
next unless File.exist?(file)
|
43
49
|
instance_eval(IO.read(file))
|
data/lib/xlogin/session.rb
CHANGED
@@ -25,28 +25,30 @@ module Xlogin
|
|
25
25
|
end
|
26
26
|
|
27
27
|
def renew(opts = @opts)
|
28
|
-
self.class.new(opts)
|
28
|
+
self.class.new(opts).tap { |s| @sock = s.sock }
|
29
29
|
end
|
30
30
|
|
31
|
-
def lock(timeout: @timeout
|
32
|
-
|
31
|
+
def lock(timeout: @timeout)
|
32
|
+
granted = false
|
33
33
|
|
34
34
|
begin
|
35
|
-
Timeout.timeout(timeout
|
36
|
-
|
37
|
-
|
38
|
-
session_granted = true
|
39
|
-
|
40
|
-
begin
|
41
|
-
safe_session ||= self.renew
|
42
|
-
yield safe_session
|
43
|
-
rescue => e
|
44
|
-
safe_session = nil
|
45
|
-
raise e if max_retry < (retry_count += 1)
|
46
|
-
retry
|
47
|
-
end
|
35
|
+
Timeout.timeout(timeout) { @mutex.lock }
|
36
|
+
granted = true
|
37
|
+
yield self
|
48
38
|
ensure
|
49
|
-
@mutex.unlock if @mutex.locked? &&
|
39
|
+
@mutex.unlock if @mutex.locked? && granted
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
def with_retry(max_retry: 1, renew: false)
|
44
|
+
retry_count = 0
|
45
|
+
|
46
|
+
begin
|
47
|
+
yield self
|
48
|
+
rescue => e
|
49
|
+
raise e if (retry_count += 1) > max_retry
|
50
|
+
self.renew if renew
|
51
|
+
retry
|
50
52
|
end
|
51
53
|
end
|
52
54
|
|
data/lib/xlogin/version.rb
CHANGED
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.4.
|
4
|
+
version: 0.4.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- haccht
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|