module Embork::Sprockets::Helpers
module ClassMethods
attr_accessor :use_bundled_assets
attr_accessor :bundle_version
end
def javascript_include_tag(path)
path = self.class.use_bundled_assets ? generate_versioned_name(path) : path
script = asset_path(path, :type => :javascript)
%{} % [ script ]
end
def javascript_embed_tag
end
def stylesheet_link_tag(path, options = {})
options = { :media => :all }.merge options
path = self.class.use_bundled_assets ? generate_versioned_name(path) : path
stylesheet = asset_path(path, :type => :stylesheet)
%{} % [
stylesheet,
options[:media].to_s
]
end
def stylesheet_embed_tag
end
def build_version
if self.class.use_bundled_assets
self.class.bundle_version
else
nil
end
end
def namespace
Embork::Sprockets::ES6ModuleTranspiler.namespace
end
def asset_path(path, options = {})
base_path = '/'
if !options.has_key? :type
File.join base_path, path
else
type = options[:type]
case type
when :image
File.join base_path, 'images', path
when :font
File.join base_path, 'fonts', path
when :javascript
File.join base_path, path
when :stylesheet
File.join base_path, path
else
File.join base_path, type.to_s, path
end
end
end
protected
def generate_versioned_name(path_to_file)
ext = File.extname path_to_file
base = File.basename path_to_file, ext
path = File.dirname path_to_file
path = nil if path == '.'
versioned_name = "%s-%s%s" % [ base, self.class.bundle_version, ext ]
(path.nil?) ? versioned_name : File.join(path, versioned_name)
end
end