Sha256: a61118a21682da2d914802a9701a15dba3bf5f77c70e0ebb70dd6a5d30c65f86
Contents?: true
Size: 1.66 KB
Versions: 2
Compression:
Stored size: 1.66 KB
Contents
require 'simplecov' SimpleCov.start unless RUBY_PLATFORM == 'java' require 'rspec' require 'structured_text_renderer' RSpec.configure do |config| config.filter_run :focus => true config.run_all_when_everything_filtered = true end class NodeRenderer attr_reader :mappings def initialize(mappings = {}) @mappings = mappings end protected def find_renderer(node) renderer = mappings[node['nodeType']] return if renderer.nil? renderer.new(mappings) end end class HeadingOneMarkdownRenderer < NodeRenderer def render(node) node['content'].each_with_object([]) do |c, res| renderer = find_renderer(c) next if renderer.nil? res << "# #{renderer.render(c)}" end.join("\n") end end class HeadingTwoMarkdownRenderer < NodeRenderer def render(node) node['content'].each_with_object([]) do |c, res| renderer = find_renderer(c) next if renderer.nil? res << "## #{renderer.render(c)}" end.join("\n") end end class ParagraphMarkdownRenderer < NodeRenderer def render(node) paragraphs = node['content'].each_with_object([]) do |c, res| renderer = find_renderer(c) next if renderer.nil? res << "#{renderer.render(c)}" end.join("\n") "\n#{paragraphs}\n" end end class EntryBlockMarkdownRenderer < NodeRenderer def render(node) "\n```\n#{node['data']}\n```\n" end end class BoldMarkdownRenderer < NodeRenderer def render(node) "**#{node['value']}**" end end class ItalicMarkdownRenderer < NodeRenderer def render(node) "*#{node['value']}*" end end class UnderlineMarkdownRenderer < NodeRenderer def render(node) "__#{node['value']}__" end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
structured_text_renderer-0.0.2 | spec/spec_helper.rb |
structured_text_renderer-0.0.1 | spec/spec_helper.rb |