module Minireq::Core::Writer

Public Instance Methods

get_url(title) click to toggle source
# File lib/minireq/core/writer.rb, line 64
def get_url(title)
  title.downcase
    .gsub(/[^A-Za-z0-9\s]/, ' ')
    .strip
    .gsub(/(\s){2,}/, ' ')
    .gsub(/\s/, '-')
end
hash_to_markdown_table(hash) click to toggle source
# File lib/minireq/core/writer.rb, line 41
def hash_to_markdown_table(hash)
  head = "Attribute | Value\n--------- | -----"
  body = hash.inject(''){|s, (k, v)| s << "\n#{k} | #{v}"}
  head + body
end
requirement_to_text(doc, req) click to toggle source
# File lib/minireq/core/writer.rb, line 34
def requirement_to_text(doc, req)
  text = [title(req)]
  text << hash_to_markdown_table(req.user_attributes) unless req.user_attributes.empty?
  text << replace_links(doc, req.body) unless req.body.empty?
  text.join("\n\n") + "\n\n"
end
title(node) click to toggle source
# File lib/minireq/core/writer.rb, line 47
def title(node)
  result = ''
  result << "[#{node.id}] " unless node.attributes[:suppress_id]
  result << node.title unless node.title.nil?
  result << " {##{get_url(node.id)}}"
  '#' * node.level << " #{result}"
end
write_document(doc, file_name) click to toggle source
# File lib/minireq/core/writer.rb, line 28
def write_document(doc, file_name)
  File.open(file_name, 'w') do |file|
    doc.visit {|r| file.write(requirement_to_text(doc, r)) }
  end
end
write_requirement(doc, req) click to toggle source
# File lib/minireq/core/writer.rb, line 22
def write_requirement(doc, req)
  File.open(req.id + '.md', 'w') do |file|
    req.visit {|r| file.write(requirement_to_text(doc, r))}
  end
end
write_requirement_source(req) click to toggle source
# File lib/minireq/core/writer.rb, line 13
def write_requirement_source(req)
  content = "\# [#{req.id}]"
  content << " #{req.title}" unless req.title.nil?
  content << "\n"
  content << hash_to_excerpt(req.attributes) unless req.attributes.empty?
  content << "\n" + req.body if req.body
  File.write("#{req.id}.md", content)
end