Sha256: 503439e149c4e42aadb50a3a9763d12c56bc5ac0c7d3e17efab0591458bb4b94
Contents?: true
Size: 1.99 KB
Versions: 1
Compression:
Stored size: 1.99 KB
Contents
module Milksteak class YmlContent attr_accessor :name, :file, :data, :content, :output def self.list milk_root = Milksteak::Admin.milk_root page_dir = File.join(Milksteak::Admin.milk_root, folder) FileUtils.mkdir(milk_root) unless File.exist? milk_root FileUtils.mkdir(page_dir) unless File.exist? page_dir Dir.glob("#{page_dir}/*.yml") end # loads a page from yaml, sets data and content attributes, returns a Milksteak::Page def self.load(name, mode = "r") milk_root = Milksteak::Admin.milk_root page_dir = File.join(Milksteak::Admin.milk_root, folder) FileUtils.mkdir(milk_root) unless File.exist? milk_root FileUtils.mkdir(page_dir) unless File.exist? page_dir page_dir = File.join(page_dir, "#{name}.yml") f = File.exist?(page_dir) ? File.open(page_dir, mode) : File.new(page_dir, mode) p = self.new p.name = name p.file = f p.read_yaml p end # writes to a page. Replaces params and content, doesn't merge. def self.write(name, params = {}, content) p = self.load(name, "w+") p.data = params p.content = content p.write_yaml p.file.close p end def self.render(name) begin p = self.load(name, "r") rendered = Liquid::Template.parse(p.content).render(p.data) BlueCloth.new(rendered).to_html rescue Errno::ENOENT => e "" end end def write_yaml if self.data.empty? self.file.write("---\n") else self.file.write(YAML.dump(self.data)) end self.file.write("---\n\n") self.file.write(self.content) end def read_yaml self.content = self.file.read begin if self.content =~ /^(---\s*\n.*?\n?)^(---\s*$\n?)(.*)/m self.content = $3 self.data = YAML.load($1) end rescue => e puts "YAML Exception reading #{name}: #{e.message}" end self.data ||= {} end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
milksteak-0.0.6 | lib/models/yml_content.rb |