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
make_link(doc, id)
click to toggle source
@return [String] markdown link to requirement header @param [String] requirment idifier [id]
# File lib/minireq/core/writer.rb, line 74 def make_link(doc, id) req = doc.find(id) return "[#{id}](unknown_requirement_id)" unless req title = "" title << "[#{req.id}] " unless req.attributes[:suppress_id] title << req.title if req.title "[#{title}](##{get_url(req.id)})" end
replace_links(doc, text)
click to toggle source
# File lib/minireq/core/writer.rb, line 55 def replace_links(doc, text) result = String.new(text) links = result.scan(/\[\[([\w\.]*)\]\]/).flatten.uniq links.each do |link| result.gsub!("[[#{link}]]", make_link(doc, link)) end result 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