def interpolate(sql, extras = nil)
      sql.gsub(/:[a-z][a-z0-9_]*/) do |raw|
        sym = raw[1..-1].intern # O.o gensym

        if extras && extras.include?(sym)
          val = extras[sym]
        elsif binds.include?(sym)
          val = binds[sym]
        end

        raise BadBind.new raw if val.nil?

        sanitize val
      end
    end
def interpolate(sql, extras = nil)
      sql.gsub(/:[a-z][a-z0-9_]*/) do |raw|
        sym = raw[1..-1].intern # O.o gensym

        if extras && extras.include?(sym)
          val = extras[sym]
        elsif binds.include?(sym)
          val = binds[sym]
        end

        raise BadBind.new raw if val.nil?

        sanitize val
      end
    end
Internal: Replace ":keywords" with sanitized values from binds or extras.