class Jfm::Post
Attributes
filename[R]
Public Class Methods
new(filename)
click to toggle source
# File lib/jfm.rb, line 28 def initialize(filename) @filename = filename end
Public Instance Methods
frontmatter()
click to toggle source
# File lib/jfm.rb, line 32 def frontmatter @frontmatter ||= YAML.load(raw_frontmatter) end
frontmatter=(new_frontmatter)
click to toggle source
# File lib/jfm.rb, line 36 def frontmatter=(new_frontmatter) @frontmatter = new_frontmatter end
match?(query)
click to toggle source
# File lib/jfm.rb, line 40 def match?(query) case query when /(.+?):\s*~(.+)/ frontmatter[$1] != $2 when /(.+?):\s*(.+)/ frontmatter[$1] == $2 else frontmatter.has_key?(query) end end
save()
click to toggle source
# File lib/jfm.rb, line 51 def save backmatter = content.lines.drop_while { |l| l.chomp == "---" }.drop_while { |l| l.chomp != "---" }.drop(1).join File.open(filename, "w") do |file| file.write YAML::dump(frontmatter) file.puts "---" file.write backmatter end end
Private Instance Methods
content()
click to toggle source
# File lib/jfm.rb, line 62 def content @content ||= File.read(filename) end
raw_frontmatter()
click to toggle source
# File lib/jfm.rb, line 66 def raw_frontmatter content.lines.drop_while { |l| l.chomp == "---" }.take_while { |l| l.chomp != "---" }.join end