Module: Textus::Format
- Defined in:
- lib/textus/format.rb,
lib/textus/format/base.rb,
lib/textus/format/json.rb,
lib/textus/format/text.rb,
lib/textus/format/yaml.rb,
lib/textus/format/markdown.rb
Defined Under Namespace
Classes: Base, Json, Markdown, Text, Yaml
Constant Summary
collapse
- SEP =
"---".freeze
- STRATEGIES =
{
"markdown" => -> { Format::Markdown },
"json" => -> { Format::Json },
"yaml" => -> { Format::Yaml },
"text" => -> { Format::Text },
}.freeze
- EXT_TO_FORMAT =
{
".md" => "markdown",
".json" => "json",
".yaml" => "yaml",
".yml" => "yaml",
".txt" => "text",
}.freeze
Class Method Summary
collapse
Class Method Details
.for(format) ⇒ Object
20
21
22
|
# File 'lib/textus/format.rb', line 20
def self.for(format)
STRATEGIES.fetch(format.to_s) { raise Textus::UsageError.new("unknown entry format: #{format.inspect}") }.call
end
|
28
29
30
|
# File 'lib/textus/format.rb', line 28
def self.formats
EXT_TO_FORMAT.values.uniq
end
|
.infer_from_extension(ext) ⇒ Object
24
25
26
|
# File 'lib/textus/format.rb', line 24
def self.infer_from_extension(ext)
EXT_TO_FORMAT[ext]
end
|
.parse(raw, path: nil, format: "markdown") ⇒ Object
32
33
34
|
# File 'lib/textus/format.rb', line 32
def self.parse(raw, path: nil, format: "markdown")
Format.for(format).parse(raw, path: path)
end
|
.serialize(meta: {}, body: "", content: nil, format: "markdown") ⇒ Object
36
37
38
|
# File 'lib/textus/format.rb', line 36
def self.serialize(meta: {}, body: "", content: nil, format: "markdown")
Format.for(format).serialize(meta: meta, body: body, content: content)
end
|