lib/siteleaf/asset.rb in siteleaf-1.0.11 vs lib/siteleaf/asset.rb in siteleaf-2.0.0.pre.beta1

- old
+ new

@@ -1,36 +1,43 @@ module Siteleaf class Asset < Entity - attr_accessor :file, :filename, :replace, :site_id, :page_id, :post_id, :theme_id, :meta - attr_reader :id, :url, :content_type, :filesize, :checksum, :created_at, :updated_at - - def create_endpoint - if !self.post_id.nil? - "posts/#{self.post_id}/assets" - elsif !self.page_id.nil? - "pages/#{self.page_id}/assets" - elsif !self.theme_id.nil? - "sites/#{self.site_id}/theme/assets" + attr_accessor :file, :filename, :path, :basename, :directory, :permalink, :replace, :site_id, :metadata + attr_reader :id, :basename, :directory, :url, :content_type, :filesize, :sha, :static, :created_at, :updated_at + + def site + Site.find(self.site_id) if self.site_id + end + + def filename + # todo: temporary fix + (directory == '.') ? basename : ::File.join(directory, basename) + end + + def to_file + if static? + body else - "sites/#{self.site_id}/assets" + [frontmatter, "---\n\n".freeze, body].join('') end end - - def post - Post.find(self.post_id) if self.post_id + + protected + + def frontmatter + attrs = metadata || {} + attrs.delete('name') # todo: temporary fix + attrs['permalink'] = permalink unless permalink.nil? + + attrs.empty? ? "---\n".freeze : attrs.to_yaml end - - def page - Page.find(self.page_id) if self.page_id + + def body + open(file['url'], 'r:UTF-8') { |f| f.read } end - - def theme - Theme.find(self.theme_id) if self.theme_id + + def static? + static == true end - - def site - Site.find(self.site_id) if self.site_id - end - + end end \ No newline at end of file