xlogin 0.2.2 → 0.2.3

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: 66ed84e83f0210fe7afb90cd49eb82e154c283a4
4
- data.tar.gz: 4fe09e46fdfffbae74ea20c06052787422f4255b
3
+ metadata.gz: 11817df618eb661d0dc3e58f5674467709e0475c
4
+ data.tar.gz: 9a729fe08da4e9038b1a6ef62c13e176a4bc05dc
5
5
  SHA512:
6
- metadata.gz: 8f94c7c38965d65bcb02d958d243d50b9dbe9c725b5309e2fe5e7176f2bcca260cb7d349e4f1033bc7b4254453b3c4b2ed60c5b535f8bdab0843d390d1e149f7
7
- data.tar.gz: 6b28b13d079ed877dc88d3ff64b63576af85a5d13250a49373adb3f9593a487a22aad7cf5f719d0edf2ff41ff08118812d034db86797880aa45639285b07fac4
6
+ metadata.gz: 1dbe170e2ea3046890fd5ade698114ba18c6f6a861b67b19a6031ff610971c56e125c6c7ddd9fb4b518e82f3156b3eeff4d661847ba9d9a62849c3ea1020a30d
7
+ data.tar.gz: abaeeb95993ed797b2e61669d7fd9fb9596dea2de2444eebb8eb3902d9a9d4a3069d7b03cba3d21eb95e145adddc914ff174f9b2e77bad6de4a6494b7dad281b
@@ -51,27 +51,30 @@ module Xlogin
51
51
  end
52
52
 
53
53
  def set(type, name, uri, opts = {})
54
- @database[name] = { name: name, type: type, uri: uri, opts: opts }
54
+ @database[name] = opts.merge(uri: uri, type: type, name: name)
55
55
  end
56
56
 
57
57
  def list
58
- @database.map { |nodename, args| args.merge(name: nodename) }
58
+ @database.values
59
59
  end
60
60
 
61
- def build(name, args = {})
62
- item = item.kind_of?(Hash) ? name : @database[name]
63
- item_uri = item[:uri] if item
64
- firmware = Xlogin::FirmwareFactory[item[:type]] if item
65
- raise Xlogin::GeneralError.new("Hostname '#{name}' not found ") unless item && item_uri && firmware
61
+ def build(args)
62
+ uri = args.delete(:uri)
63
+ type = args.delete(:type)
64
+ name = args.delete(:name)
65
+ opts = args.reduce({}) { |a, (k, v)| a.merge(k.to_s.downcase.to_sym => v) }
66
+ raise Xlogin::GeneralError.new("Host not found: #{args}") unless uri && type
66
67
 
67
- opts = item[:opts] || {}
68
- opts = opts.merge(args).reduce({}) { |a, (k, v)| a.merge(k.to_s.downcase.to_sym => v) }
69
-
70
- session = firmware.dup.run(item_uri, opts)
71
- session.name = item[:name]
68
+ firmware = Xlogin::FirmwareFactory[type].dup
69
+ session = firmware.run(uri, opts)
70
+ session.name = name
72
71
  session
73
72
  end
74
73
 
74
+ def build_from_hostname(hostname, **args)
75
+ build(get(hostname).merge(args))
76
+ end
77
+
75
78
  def method_missing(name, *args, &block)
76
79
  firmware = Xlogin::FirmwareFactory[name]
77
80
  super unless firmware && args.size >= 2
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.2.2"
2
+ VERSION = "0.2.3"
3
3
  end
data/lib/xlogin.rb CHANGED
@@ -31,9 +31,9 @@ module Xlogin
31
31
  Xlogin::FirmwareFactory.register(new_name, firmware)
32
32
  end
33
33
 
34
- def get(nodename, opts = {})
34
+ def get(hostname, args = {})
35
35
  @factory ||= Xlogin::FirmwareFactory.new
36
- session = @factory.build(nodename, opts)
36
+ session = @factory.build_from_hostname(hostname, args)
37
37
 
38
38
  if block_given?
39
39
  begin yield session ensure session.close 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.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - haccht
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-19 00:00:00.000000000 Z
11
+ date: 2017-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler