module Docgen

Constants

VERSION

Public Instance Methods

gen(document_set, format_name, boilerplate, *template) click to toggle source

Substitute custom values for text placeholders

# File lib/docgen.rb, line 27
def gen document_set, format_name, boilerplate, *template
      content = apply_substitutions_to document_set, boilerplate
  get_formatter(format_name).format content, template
end
process(document_set, file_type, file_path, *other_args) click to toggle source

Apply customizations to a complex file type such as pptx, xlsx, docx, odp, ods, odt). “other_args” will be interpreted differently by the processor for each file type.

# File lib/docgen.rb, line 16
def process document_set, file_type, file_path, *other_args
  processor_class_name = "Process#{file_type.split('_').collect(&:capitalize).join}"
  begin
    processor = Object::const_get("#{processor_class_name}").new
  rescue NameError => e
    raise "Undefined processor class: #{processor_class_name}"
  end
  processor.process document_set, file_path, other_args
end

Private Instance Methods

apply_substitutions_to(document_set, boilerplate) click to toggle source
# File lib/docgen.rb, line 43
def apply_substitutions_to document_set, boilerplate
  keys = boilerplate.scan(/(::.*?::)/m)
  return boilerplate unless keys.any?
  content = boilerplate
  keys.flatten!
  keys.each do |key|
    content = content.gsub(key,lookup(document_set, key))
  end
  content
end
get_formatter(format_name) click to toggle source
# File lib/docgen.rb, line 34
def get_formatter format_name
      formatter_class_name = "Gen#{format_name.split('_').collect(&:capitalize).join}"
  begin
    formatter = Object::const_get("#{formatter_class_name}").new
  rescue NameError => e
    raise "Unsupported output format: #{format_name}"
  end  
end
lookup(document_set, key) click to toggle source
# File lib/docgen.rb, line 54
def lookup document_set, key
  substitution_text_for document_set, key.gsub(/::/,'')
end