module RgGen::Core::RegisterMap::HashLoader
Constants
- SUB_LAYER_KEYS
- SUB_LAYER_KEY_MAP
Private Instance Methods
convert_to_hash(read_data, file)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 70 def convert_to_hash(read_data, file) Hash(read_data) rescue TypeError => e raise Core::LoadError.new(e.message, file) end
fomrat_hash_layer_data(read_data, layer, file)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 37 def fomrat_hash_layer_data(read_data, layer, file) convert_to_hash(read_data, file).except(*SUB_LAYER_KEYS[layer]) end
format_array_layer_data(read_data, layer, file)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 31 def format_array_layer_data(read_data, layer, file) read_data .map { |data| fomrat_hash_layer_data(data, layer, file) } .inject(&:merge) end
format_array_sub_layer_data(read_data, layer, file)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 49 def format_array_sub_layer_data(read_data, layer, file) read_data.each_with_object({}) do |data, sub_layer_data| format_hash_sub_layer_data(data, layer, file, sub_layer_data) end end
format_hash_sub_layer_data(read_data, layer, file, sub_layer_data = {})
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 55 def format_hash_sub_layer_data(read_data, layer, file, sub_layer_data = {}) convert_to_hash(read_data, file) .slice(*SUB_LAYER_KEYS[layer]) .each { |k, v| merge_sub_layer_data(sub_layer_data, layer, k, v) } sub_layer_data end
format_layer_data(read_data, layer, file)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 23 def format_layer_data(read_data, layer, file) if read_data.is_a?(Array) format_array_layer_data(read_data, layer, file) else fomrat_hash_layer_data(read_data, layer, file) end end
format_sub_layer_data(read_data, layer, file)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 41 def format_sub_layer_data(read_data, layer, file) if read_data.is_a?(Array) format_array_sub_layer_data(read_data, layer, file) else format_hash_sub_layer_data(read_data, layer, file) end end
merge_sub_layer_data(sub_layer_data, layer, key, value)
click to toggle source
# File lib/rggen/core/register_map/hash_loader.rb, line 62 def merge_sub_layer_data(sub_layer_data, layer, key, value) if SUB_LAYER_KEY_MAP[layer].key?(key) (sub_layer_data[SUB_LAYER_KEY_MAP[layer][key]] ||= []).concat(value) else (sub_layer_data[key] ||= []) << value end end