class ComfortableMexicanSofa::Content::Tag::Asset
This tag allows for linking of js and css content defined on the layout. Looks something like this:
{{cms:asset layout_identifier, type: css, as: tag}}
`type` - css | js - what we're outputting here `as` - url (default) | tag - output url or wrap it in the appropriate tag
Attributes
as[R]
identifier[R]
type[R]
Public Class Methods
new(context:, params: [], source: nil)
click to toggle source
Calls superclass method
ComfortableMexicanSofa::Content::Tag::new
# File lib/comfortable_mexican_sofa/content/tags/asset.rb, line 14 def initialize(context:, params: [], source: nil) super options = params.extract_options! @identifier = params[0] @type = options["type"] @as = options["as"] || "url" unless @identifier.present? raise Error, "Missing layout identifier for asset tag" end end
Public Instance Methods
content()
click to toggle source
# File lib/comfortable_mexican_sofa/content/tags/asset.rb, line 31 def content return "" unless layout base = ComfortableMexicanSofa.config.public_cms_path || "" unless base.ends_with?("/") base += "/" end case @type when "css" out = "#{base}cms-css/#{context.site.id}/#{@identifier}/#{layout.cache_buster}.css" if @as == "tag" out = "<link href='#{out}' media='screen' rel='stylesheet' type='text/css' />" end out when "js" out = "#{base}cms-js/#{context.site.id}/#{@identifier}/#{layout.cache_buster}.js" if @as == "tag" out = "<script src='#{out}' type='text/javascript'></script>" end out end end
layout()
click to toggle source
# File lib/comfortable_mexican_sofa/content/tags/asset.rb, line 27 def layout @layout ||= context.site.layouts.find_by(identifier: @identifier) end