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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fd0e42106939af57099cfa8e4dfc129075c0d8c5a1729fa0f7ca5d4f0838740e
4
- data.tar.gz: 1ab32fd02b4013e295b7186d061e7cee9bcd3dd52368fce5bce515e7ca11a3fb
3
+ metadata.gz: 3c1d2b9ae767b34edcf82fb77f7ccc53f72c9e041f0e7460ad3e0cd02a2a863f
4
+ data.tar.gz: 9ef45eafa4ee8ab4f3ca92398429a0c2e2b23f3906ae35c16d48165158fcf1bd
5
5
  SHA512:
6
- metadata.gz: 648277f0deee879ab12e4f9eedfc9eab04217f6d62a8f9046e02cab75e71feb3db41dc1843b3eda05c91c5df3ded3600695fb0cf9089325c2b449bb5e7b13654
7
- data.tar.gz: 383d40a7f67b92fbef6d0551a0c6da55adf0913dd157127623f4260ffb5b67c9d3747a88b1adeb93fc22fcb587d5e2cc99f3b7869b6b98a9fb0b17a52ed73b3f
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
@@ -0,0 +1,5 @@
1
+ # frozen_string_literal: true
2
+
3
+ module AchFlattenMeta
4
+ VERSION = '0.2.0'
5
+ 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.3.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