ach_flattenmeta 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -0
- data/ach_flattenmeta.gemspec +15 -0
- data/lib/ach_flattenmeta/flattenmeta.rb +41 -0
- data/lib/ach_flattenmeta/version.rb +5 -0
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c1d2b9ae767b34edcf82fb77f7ccc53f72c9e041f0e7460ad3e0cd02a2a863f
|
4
|
+
data.tar.gz: 9ef45eafa4ee8ab4f3ca92398429a0c2e2b23f3906ae35c16d48165158fcf1bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ed62f52a3fe3c3e384265703a4f3a0ee93ad406d8726572bc273445aaff357e99689272975eb3420afa7dce7298d1d4dfade1110cdf4a8d0e38562ed764e3235
|
7
|
+
data.tar.gz: 99eacc1d08760d7d2cb3855869f86bf470cb8f4e066b988492ecd0b742578502bcf554d9c7ffbd08ffd947233b22e890c7d69791286842616366d7ca29a26827
|
data/README.md
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
# ach_flattenmeta
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Gem::Specification.new do |s|
|
2
|
+
s.name = 'ach_flattenmeta'
|
3
|
+
s.version = '0.4.0'
|
4
|
+
s.date = '2018-07-26'
|
5
|
+
s.summary = "flattenmeta helper gem"
|
6
|
+
s.description = "A flattenmeta helper gem"
|
7
|
+
s.authors = ["Rogier Jobse"]
|
8
|
+
s.email = 'rogier.jobse@xs4all.nl'
|
9
|
+
s.files = `git ls-files -z`.split("\x0").reject { |f|
|
10
|
+
f.match(%r{^(test|spec|features)/})
|
11
|
+
}
|
12
|
+
s.homepage =
|
13
|
+
'http://rubygems.org/gems/ach_flattenmeta'
|
14
|
+
s.license = 'MIT'
|
15
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module AchFlattenMeta
|
2
|
+
class FlattenMeta
|
3
|
+
# First create a simple and flattened hash with
|
4
|
+
# k => { value, prio }
|
5
|
+
#
|
6
|
+
# This can be iterated over using each method provided
|
7
|
+
#
|
8
|
+
def initialize( os_version, node_environment, confhash)
|
9
|
+
@flatconf = Hash.new()
|
10
|
+
@os_version = os_version
|
11
|
+
@node_environment = node_environment
|
12
|
+
@confhash = confhash
|
13
|
+
end # initialize
|
14
|
+
|
15
|
+
def each
|
16
|
+
filter()
|
17
|
+
@flatconf.each { |k,v | yield k, v['value'] if v['active'] }
|
18
|
+
end # each
|
19
|
+
|
20
|
+
private
|
21
|
+
def filter()
|
22
|
+
@confhash.each do | location, data|
|
23
|
+
if (data['metadata']['environments'] & [@node_environment, 'all']).any? &&
|
24
|
+
(data['metadata']['platforms'] & [@os_version, 'all']).any?
|
25
|
+
|
26
|
+
prio = data['metadata']['priority']
|
27
|
+
active = data['metadata']['active']
|
28
|
+
|
29
|
+
data.each do | k, v |
|
30
|
+
next if k == 'metadata'
|
31
|
+
if @flatconf.key?(k)
|
32
|
+
@flatconf[k] = { 'value' => v, 'priority' => prio, 'active' => active } if @flatconf[k]['priority'] > prio
|
33
|
+
else
|
34
|
+
@flatconf[k] = { 'value' => v, 'priority' => prio, 'active' => active }
|
35
|
+
end # if
|
36
|
+
end #each
|
37
|
+
end # if
|
38
|
+
end # each
|
39
|
+
end # def
|
40
|
+
end # class
|
41
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ach_flattenmeta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rogier Jobse
|
@@ -16,7 +16,11 @@ executables: []
|
|
16
16
|
extensions: []
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
|
+
- README.md
|
20
|
+
- ach_flattenmeta.gemspec
|
19
21
|
- lib/ach_flattenmeta.rb
|
22
|
+
- lib/ach_flattenmeta/flattenmeta.rb
|
23
|
+
- lib/ach_flattenmeta/version.rb
|
20
24
|
homepage: http://rubygems.org/gems/ach_flattenmeta
|
21
25
|
licenses:
|
22
26
|
- MIT
|