Class: AbideDevUtils::CEM::HieraData::MappingData::MapData
- Inherits:
-
Object
- Object
- AbideDevUtils::CEM::HieraData::MappingData::MapData
show all
- Defined in:
- lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb
Overview
Represents a single map data file
Instance Method Summary
collapse
Constructor Details
#initialize(data) ⇒ MapData
Returns a new instance of MapData.
9
10
11
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 9
def initialize(data)
@raw_data = data
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(meth, *args, &block) ⇒ Object
13
14
15
16
17
18
19
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 13
def method_missing(meth, *args, &block)
if data.respond_to?(meth)
data.send(meth, *args, &block)
else
super
end
end
|
Instance Method Details
#benchmark ⇒ Object
65
66
67
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 65
def benchmark
@raw_data[top_key]['benchmark']
end
|
#find(identifier, level: nil, profile: nil) ⇒ Object
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 25
def find(identifier, level: nil, profile: nil)
levels.each do |lvl|
next unless level.nil? || lvl != level
data[lvl].each do |prof, prof_data|
if prof_data.respond_to?(:keys)
next unless profile.nil? || prof != profile
return prof_data[identifier] if prof_data.key?(identifier)
elsif prof == identifier
return prof_data
end
end
end
end
|
#framework ⇒ Object
57
58
59
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 57
def framework
top_key_parts[2]
end
|
#get(identifier, level: nil, profile: nil) ⇒ Object
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 41
def get(identifier, level: nil, profile: nil)
raise "Invalid level: #{level}" unless profile.nil? || levels.include?(level)
raise "Invalid profile: #{profile}" unless profile.nil? || profiles.include?(profile)
return find(identifier, level: level, profile: profile) if level.nil? || profile.nil?
begin
data.dig(level, profile, identifier)
rescue TypeError
data.dig(level, identifier)
end
end
|
#levels ⇒ Object
73
74
75
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 73
def levels
levels_and_profiles[0]
end
|
#levels_and_profiles ⇒ Object
69
70
71
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 69
def levels_and_profiles
@levels_and_profiles ||= find_levels_and_profiles
end
|
#module_name ⇒ Object
53
54
55
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 53
def module_name
top_key_parts[0]
end
|
#profiles ⇒ Object
77
78
79
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 77
def profiles
levels_and_profiles[1]
end
|
#respond_to_missing?(meth, include_private = false) ⇒ Boolean
21
22
23
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 21
def respond_to_missing?(meth, include_private = false)
data.respond_to?(meth) || super
end
|
#top_key ⇒ Object
81
82
83
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 81
def top_key
@top_key ||= @raw_data.keys.first
end
|
#type ⇒ Object
61
62
63
|
# File 'lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb', line 61
def type
top_key_parts[3]
end
|