abide-data-processor 1.0.1 → 1.1.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: 3e7c05a1569fd1f40b4ee3474364ea6928a77b7cd34e7eb6432672c374d11517
4
- data.tar.gz: 6b5fa97224644b96c61432c6b80a65e40e31c0593d77dee04d9914658d1e0b08
3
+ metadata.gz: 0fb3fd8f80e90db869d7f0230ecead72fe3fa500c0c6046aad010b6fea953cbd
4
+ data.tar.gz: d44ec5bc9e68724c0f0cae4a2acfb4d8fd39fd59118774bceb3ac47f8e36b625
5
5
  SHA512:
6
- metadata.gz: fc161a33e338ab7c85140abaddf4488dde3f1dd5a65d84dfd20057f99acc01e8f70f5c3819f4d5f3bd68a2d0c53effd1741ccfa605c18a25138688b01b64a89c
7
- data.tar.gz: bd65068b4582730d4f6406ce806e78d298d9e78ff6998c73abdfc600e1cfd83beab568fc47090ccd680da21fc7ed200e8e9da8998d454ff930dd11e64bd75f89
6
+ metadata.gz: c7ef4cbcc7e1862f2a6ecf3e9fb33df5b972de5b2fcbe1ee3f2297478510fdaa7666995a3065d139bbb087c3beb167a26ffb92e8d0db9572341eb10753c391ce
7
+ data.tar.gz: 411bc8d6084ebac6345cc4625160d689e3d277d3ff6c892b048bf787c264f2665c53e8b8b8761b739b9cfde8e2eb2c06ed11d5fdfc34869e295d96dfe83e85d7
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- abide-data-processor (1.0.1)
4
+ abide-data-processor (1.1.0)
5
5
  deep_merge (~> 1.2)
6
6
  rgl (~> 0.5)
7
7
 
@@ -33,6 +33,8 @@ module AbideDataProcessor
33
33
  # @return [Hash] The Hiera data to be parsed.
34
34
  # @raise [ArgumentError] If the hiera_data parameter is not a non-empty Hash.
35
35
  def validate_hiera_data(hiera_data)
36
+ return hiera_data if hiera_data == :no_params
37
+
36
38
  unless not_nil_or_empty?(hiera_data) && hiera_data.is_a?(Hash)
37
39
  raise ArgumentError, 'hiera_data must be a non-nil, non-empty Hash'
38
40
  end
@@ -354,8 +356,10 @@ module AbideDataProcessor
354
356
  # @param control_maps [Array] The control maps to be used.
355
357
  def initialize_metaparams(data, control_maps)
356
358
  METAPARAMS.each do |param|
357
- value, bool_value = parse_metaparam(data[param], control_maps)
358
- raw_value, raw_bool_value = parse_raw_metaparam(data, param)
359
+ metaparam_data = data == :no_params ? {} : data[param]
360
+ raw_mdata = data == :no_params ? {} : data
361
+ value, bool_value = parse_metaparam(metaparam_data, control_maps)
362
+ raw_value, raw_bool_value = parse_raw_metaparam(raw_mdata, param)
359
363
  set_metaparam_instance_vars(param, value, raw_value)
360
364
  define_metaparam_bool_methods(param, raw_bool_value, bool_value)
361
365
  end
@@ -494,9 +498,9 @@ module AbideDataProcessor
494
498
  def initialize(name, data, control_maps)
495
499
  super(name, data, control_maps)
496
500
  @mapped_names = find_mapped_names(@name)
497
- @params = @data
498
- @resource_params = @data.reject { |k, _v| METAPARAMS.include?(k) }
499
- @param_names = Set.new(@params.keys)
501
+ @params = @data == :no_params ? {} : @data
502
+ @resource_params = @data == :no_params ? {} : @data.reject { |k, _v| METAPARAMS.include?(k) }
503
+ @param_names = @data == :no_params ? Set.new : Set.new(@params.keys)
500
504
  end
501
505
 
502
506
  def name?(name)
@@ -654,7 +658,14 @@ module AbideDataProcessor
654
658
  # does not already exist in the cache.
655
659
  # @param control_data [Array] The control data of the resource from the Hiera data.
656
660
  def create_control_classes(control_data)
657
- control_data.map { |cname, cdata| AbideDataProcessor::Parser.new_control(cname, cdata, @control_maps) }
661
+ case control_data.class.to_s
662
+ when 'Hash'
663
+ control_data.map { |cname, cdata| AbideDataProcessor::Parser.new_control(cname, cdata, @control_maps) }
664
+ when 'Array'
665
+ control_data.map { |cname| AbideDataProcessor::Parser.new_control(cname, :no_params, @control_maps) }
666
+ else
667
+ raise ArgumentError, "Cannot create control because control data is not the expected type. Data type is #{control_data.class}"
668
+ end
658
669
  end
659
670
  end
660
671
 
@@ -1,3 +1,3 @@
1
1
  module AbideDataProcessor
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: abide-data-processor
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - abide-team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-01-18 00:00:00.000000000 Z
11
+ date: 2022-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deep_merge