ach_flattenmeta 0.3.0 → 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
  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