Files
spring-cloud-config/docs/src/main/ruby

require 'open-uri'

module SpringCloud
  module Build

    IncludeDirectiveRx = /^\\?include::([^\[]+)\[(.*?)\]$/

    class << self

      def process_include out, src, target, attrs
        unless target.include?(':') || target.start_with?('/')
          target = File.join(src, target)
        end
        open(target) do |file|
            file.each do |line|
            self.process(out, File.dirname(target), line)
          end
        end
      end

      def process out, src, line
        if ((escaped = line.start_with?('\\include::')) || line.start_with?('include::')) && (match = IncludeDirectiveRx.match(line))
          if escaped
            out << line[1..-1]
          else
            self.process_include out, src, match[1], match[2].strip
          end
        else
          out << line
        end
      end

      def render_file file, options = {}

        srcDir = File.dirname(file)
        out = ["// Do not edit this file (e.g. go instead to src/main/asciidoc)\n","\n"]
        File.new(file).each do |line|
          self.process(out, srcDir, line)
        end

        unless options[:to_file]
          puts out
        else
          File.open(options[:to_file],'w+') do |file|
            out.each { |line| file.write(line) }
          end
        end

      end

    end

  end
end