module GClouder::Resources::Region

Public Class Methods

instances(path: []) click to toggle source
# File lib/gclouder/resources.rb, line 43
def self.instances(path: [])
  return {} unless project.key?("regions")

  data = project["regions"].each_with_object({}) do |(region, region_config), instances|
    instances[region] ||= []

    data = get_section(region_config, path, silent: true)

    data.each do |instance|
      if GClouder::Config::Defaults.section?(path)
        defaults = to_deep_merge_hash(GClouder::Config::Defaults.section(path))
        instance = defaults.deep_merge(instance)
      end

      instances[region] << instance
    end
  end

  data.delete_if { |_k, v| v.empty? }
end