#!/usr/bin/env ruby

# A script to automatically generate SQL files from an interface definition.
# To be called like this: sql-template-renderer interface.csv templates/sql-template.erb

require 'csv'
require 'erb'

class SqlTemplateRenderer

  GEOCODER_CLIENT_SCHEMA = 'cdb_geocoder_client'

  attr_reader :signature

  def initialize(template_file, signature)
    @signature = signature
    @template = File.read(template_file)
  end

  def render
    ERB.new(@template).result(binding)
  end  
end

if ARGV.length != 2 then
  puts "Usage: sql-template-renderer <interface.csv> <template.erb>"
  exit
end

interface_source_file = ARGV[0]
template_file = ARGV[1]

CSV.foreach(interface_source_file, {headers: true}) do |function_signature|
  puts SqlTemplateRenderer.new(template_file, function_signature).render
end
