class JobSpec::RenderAsMarkdown

Attributes

role[R]

Public Class Methods

new(role) click to toggle source
# File lib/job_spec/render_as_markdown.rb, line 5
def initialize(role)
  @role = role
end

Public Instance Methods

render() click to toggle source
# File lib/job_spec/render_as_markdown.rb, line 9
def render
  markdown = []
  markdown << "# #{role.name}"
  markdown << role.description unless role.description.nil?

  grouped_expectations.each do |group, expectations|
    if group.nil?
      markdown << '## Expectations' unless role.expectations.empty?
    else
      markdown << "## #{group}"
    end

    expectations.map(&:values).each do |(expectation, description)|
      markdown << "### #{expectation[0].upcase}#{expectation[1..expectation.length]}"
      markdown << description unless description.nil?
    end
  end

  markdown.join("\n\n")
end

Private Instance Methods

grouped_expectations() click to toggle source
# File lib/job_spec/render_as_markdown.rb, line 32
def grouped_expectations
  role.expectations.group_by do |expectations|
    expectations[:group]
  end
end