module Fratterhorn

Constants

FRONTMATTER_PATTERN
VERSION

Public Class Methods

parse(text, option: {}) click to toggle source
# File lib/fratterhorn/parse.rb, line 8
def self.parse(text, option: {})
  @text = text
  @option = option
  @raw_frontmatter = ''

  @raw_frontmatter = get_frontmatter
  @frontmatter = YAML.safe_load(@raw_frontmatter).transform_keys!(&:to_sym)
  guess_value_type if @option.dig(:guess)

  @frontmatter
end

Private Class Methods

get_frontmatter() click to toggle source
# File lib/fratterhorn/parse.rb, line 22
def self.get_frontmatter
  FRONTMATTER_PATTERN.match(@text).to_a.first
end
guess_value_type() click to toggle source
# File lib/fratterhorn/parse.rb, line 27
def self.guess_value_type
  @frontmatter.each do |key, value|
    case key
    when :date, :time, :datetime
      @frontmatter[key] = Time.parse(value)
    end
  end
end