Module: Textus::Entry

Defined in:
lib/textus/entry.rb,
lib/textus/entry/json.rb,
lib/textus/entry/text.rb,
lib/textus/entry/yaml.rb,
lib/textus/entry/markdown.rb

Overview

Public entry-format dispatcher.

Defined Under Namespace

Modules: Json, Markdown, Text, Yaml

Constant Summary collapse

SEP =
"---".freeze
STRATEGIES =
{
  "markdown" => Markdown,
  "json" => Json,
  "yaml" => Yaml,
  "text" => Text,
}.freeze

Class Method Summary collapse

Class Method Details

.for_format(format) ⇒ Object



18
19
20
# File 'lib/textus/entry.rb', line 18

def self.for_format(format)
  STRATEGIES.fetch(format.to_s) { raise UsageError.new("unknown entry format: #{format.inspect}") }
end

.parse(raw, path: nil, format: "markdown") ⇒ Object



22
23
24
# File 'lib/textus/entry.rb', line 22

def self.parse(raw, path: nil, format: "markdown")
  for_format(format).parse(raw, path: path)
end

.serialize(frontmatter: {}, body: "", content: nil, format: "markdown") ⇒ Object



26
27
28
# File 'lib/textus/entry.rb', line 26

def self.serialize(frontmatter: {}, body: "", content: nil, format: "markdown")
  for_format(format).serialize(frontmatter: frontmatter, body: body, content: content)
end