brocade_vrouter 0.3.1 → 0.4.0

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: 27e8f859934fb6b76803b2ccd907db3143b1fc36
4
- data.tar.gz: bb175b3a07aeba1cfd184004bb5d5df3dec191cc
3
+ metadata.gz: 38c6398c118b317355cc126df7abc55baaa2fc4e
4
+ data.tar.gz: da70358dbe46e3d4a69d2798a985f567fe61356c
5
5
  SHA512:
6
- metadata.gz: 64f99f9a1bc26f324b064b23060d2cb0001cb4166ea8b3e9058ea1453673f0b9e1ccf38775781e52dc3f5d4b2175cb2fa220b0263827d08771aa9aebae5f1289
7
- data.tar.gz: c1997ae826cd49da9e8c05e294e0892e2a042296285f26a04768223b72d654cb27e5a7b4ea9ba368dfb7d93c502fe57daa0eed80d24b0f3473088567758fa0ef
6
+ metadata.gz: a96c676c261fe7031712002d68d204604d8e66e217a347bf7f175a7845eadd58c68418fc2ee4c0c9d7706b2ac4c9f3b6c5be3ffd32d18c0ad6d52d8d86401490
7
+ data.tar.gz: 60d601157bde88018b5391f8743a666a48e50a8fee3994b0a557fc807f271b505fa90924a189c697c2bac76e6a41107760bdcddd8ecf9071f53799fabe42b4df
@@ -1,7 +1,8 @@
1
1
  module BrocadeVRouter
2
2
  class PathBuilder
3
3
  SEPARATOR = '/'.freeze
4
- SNAKE_TRANSFORM = ['_', '-'].map(&:freeze).freeze
4
+ SNAKE_TRANSFORM = ['_'.freeze, '-'.freeze].freeze
5
+ WHTSP_TRANSFORM = [' '.freeze, SEPARATOR].freeze
5
6
 
6
7
  attr_reader :base_path
7
8
 
@@ -16,7 +17,7 @@ module BrocadeVRouter
16
17
 
17
18
  def to_a
18
19
  return @paths.flatten if !base_path || base_path.empty?
19
- @paths.flatten.map { |p| "#{base_path}/#{p}" }
20
+ @paths.flatten.map { |p| [base_path, p].join(SEPARATOR) }
20
21
  end
21
22
 
22
23
  private
@@ -46,25 +47,24 @@ module BrocadeVRouter
46
47
  value_is_path = @paths.pop if @paths.last == value
47
48
  @paths << "#{path}/#{value_is_path ? value : to_path(value)}" if exec
48
49
 
49
- if value.is_a?(Array)
50
- value.map { |v| "#{path}/#{v}" }
51
- else
52
- path = "#{path}/#{value_is_path ? value : to_path(value)}" if value
53
- block_given? ? PathBuilder.new(@context, path, &blk).to_a : path
54
- end
50
+ return value.map { |v| [path, v].join(SEPARATOR) } if value.is_a?(Array)
51
+
52
+ path = [path, value_is_path ? value : to_path(value)].join(SEPARATOR) if value
53
+ block_given? ? PathBuilder.new(@context, path, &blk).to_a : path
55
54
  end
56
55
 
57
56
  def to_path(value)
58
- val = value.is_a?(Hash) ? hash_to_ary(value) : value
59
- Array(val).flatten.map { |e| URI.escape e.to_s }.join SEPARATOR
57
+ (value.is_a?(Hash) ? hash_to_ary(value) : escape(value)).join(SEPARATOR)
58
+ end
59
+
60
+ def escape(value)
61
+ Array(value).map { |v| URI.escape(v.to_s.gsub(*WHTSP_TRANSFORM)) }
60
62
  end
61
63
 
62
64
  def hash_to_ary(hash)
63
- hash.reduce([]) do |m, (k, v)|
64
- m << k.to_s.gsub(*SNAKE_TRANSFORM)
65
- m << v
65
+ hash.map do |k, v|
66
+ respond_to?(k, true) ? send(k, v) && @paths.pop : generate_paths!(k, to_path(v))
66
67
  end
67
68
  end
68
-
69
69
  end
70
70
  end
@@ -1,3 +1,3 @@
1
1
  module BrocadeVRouter
2
- VERSION = '0.3.1'.freeze
2
+ VERSION = '0.4.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brocade_vrouter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Konstantin Kosmatov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-20 00:00:00.000000000 Z
11
+ date: 2017-02-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday