class Docspec::Document

Attributes

filename[R]
markdown[R]

Public Class Methods

from_file(filename) click to toggle source
# File lib/docspec/document.rb, line 6
def self.from_file(filename)
  new File.read(filename)
end
new(markdown) click to toggle source
# File lib/docspec/document.rb, line 10
def initialize(markdown)
  @markdown = markdown
end

Public Instance Methods

before() click to toggle source
# File lib/docspec/document.rb, line 18
def before
  @before ||= {}
end
examples() click to toggle source
# File lib/docspec/document.rb, line 14
def examples
  @examples ||= examples!
end

Protected Instance Methods

examples!() click to toggle source
# File lib/docspec/document.rb, line 24
def examples!
  result = []
  markdown.scan(/```(ruby|shell)\s*\n(.*?)```/m) do |type, code|
    example = Example.new(type: type, code: code, before: before[type])
    
    next if example.skip?

    before[type] ||= []
    before[type] << example.code if example.empty?
    
    result << example
  end
  result
end