module PangeaModule

def process(mod)

entrypoint for module processing
def process(mod)
  mod = symbolize(mod)
  name = mod.fetch(:name)
  data = mod.fetch(:data, {})
  raise ArgumentError, %(name cannot be nil) if name.nil?
  # understanding that module entrypoint loading
  # will work with #{context}-#{name}
  context       = mod.fetch(:context, %(pangea-component))
  require_name  = %(#{context}-#{name})
  require require_name
  render(data)
end

def symbolize(hash)

def symbolize(hash)
  JSON[JSON[hash], symbolize_names: true]
end

def terraform_synth

def terraform_synth
  @terraform_synth ||= TerraformSynthesizer.new
end