Module: Textus::Entry
- Defined in:
- lib/textus/entry.rb,
lib/textus/entry/base.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
Classes: Base, Json, Markdown, Text, Yaml
Constant Summary
collapse
- SEP =
"---".freeze
- STRATEGIES =
{
"markdown" => Markdown,
"json" => Json,
"yaml" => Yaml,
"text" => Text,
}.freeze
- EXT_TO_FORMAT =
{
".md" => "markdown",
".json" => "json",
".yaml" => "yaml",
".yml" => "yaml",
".txt" => "text",
}.freeze
Class Method Summary
collapse
Class Method Details
21
22
23
|
# File 'lib/textus/entry.rb', line 21
def self.for_format(format)
STRATEGIES.fetch(format.to_s) { raise UsageError.new("unknown entry format: #{format.inspect}") }
end
|
29
30
31
|
# File 'lib/textus/entry.rb', line 29
def self.formats
EXT_TO_FORMAT.values.uniq
end
|
.infer_from_extension(ext) ⇒ Object
25
26
27
|
# File 'lib/textus/entry.rb', line 25
def self.infer_from_extension(ext)
EXT_TO_FORMAT[ext]
end
|
.parse(raw, path: nil, format: "markdown") ⇒ Object
33
34
35
|
# File 'lib/textus/entry.rb', line 33
def self.parse(raw, path: nil, format: "markdown")
for_format(format).parse(raw, path: path)
end
|
.serialize(meta: {}, body: "", content: nil, format: "markdown") ⇒ Object
37
38
39
|
# File 'lib/textus/entry.rb', line 37
def self.serialize(meta: {}, body: "", content: nil, format: "markdown")
for_format(format).serialize(meta: meta, body: body, content: content)
end
|