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