#!/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 " 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