class Checklister::Parser
Parse a markdown file and return a hash of params.
@example
{ title: "Title", body: "## Mardown Body context\n## Checklist\nMardown Body checklist" }
Public Class Methods
new(file_path, title = nil)
click to toggle source
@param [String] file_path the path of the markdown file to parse
# File lib/checklister/parser.rb, line 12 def initialize(file_path, title = nil) @file_content = File.open(file_path).read @title = title end
Public Instance Methods
to_params()
click to toggle source
@return [Hash] a hash of params
# File lib/checklister/parser.rb, line 18 def to_params checklist = [] @file_content.each_line do |line| # Extract a title, when we find the first <h1> header if @title.nil? && line.start_with?("# ") @title = line.sub("# ", "").sub("\n", "") elsif @title && line.start_with?("# ") next else # Then, keep the text intact until the end of the file checklist << line end end # Default title, if no <H1> header found @title = "Checklist" if @title.nil? # Return the parsed text as an object { title: @title, body: checklist.join } end