module Frails::Monkey::ActionView::PartialRenderer
Public Instance Methods
build_ident(local_name, path)
click to toggle source
# File lib/frails/monkey/action_view/partial_renderer.rb, line 50 def build_ident(local_name, path) hash_digest = Digest::MD5.hexdigest("#{path}+#{local_name}")[0, 6] return "#{local_name}-#{hash_digest}" unless Frails.dev_server.running? name = path.basename.sub(path.extname, '').sub('.', '-') ident = +"#{name}__#{local_name}___#{hash_digest}" ident.prepend("#{path.dirname.to_s.tr('/', '-')}-") ident end
build_rendered_template(content, template, layout = nil)
click to toggle source
Calls superclass method
# File lib/frails/monkey/action_view/partial_renderer.rb, line 27 def build_rendered_template(content, template, layout = nil) content = transform_css_modules(content).html_safe if @asset_path super end
class_name_for_style(class_names, path)
click to toggle source
# File lib/frails/monkey/action_view/partial_renderer.rb, line 46 def class_name_for_style(class_names, path) class_names.to_s.split.map { |class_name| build_ident class_name, path } end
render_collection(view, template)
click to toggle source
Calls superclass method
# File lib/frails/monkey/action_view/partial_renderer.rb, line 7 def render_collection(view, template) # Side load partial assets - if any. @asset_path = @side_load_assets && side_load_assets(view, template) super end
render_partial(view, template)
click to toggle source
Calls superclass method
# File lib/frails/monkey/action_view/partial_renderer.rb, line 14 def render_partial(view, template) # Side load partial assets - if any. @asset_path = @side_load_assets && side_load_assets(view, template) super end
setup(context, options, as, block)
click to toggle source
Calls superclass method
# File lib/frails/monkey/action_view/partial_renderer.rb, line 21 def setup(context, options, as, block) @side_load_assets = options.key?(:side_load_assets) ? options[:side_load_assets] : false super end
stylesheet_path_for_ident()
click to toggle source
# File lib/frails/monkey/action_view/partial_renderer.rb, line 61 def stylesheet_path_for_ident return if (globs = Rails.root.glob("app/#{@asset_path}.{css,scss,sass,less}")).empty? globs.first.relative_path_from(Rails.root) end
transform_css_modules(content)
click to toggle source
# File lib/frails/monkey/action_view/partial_renderer.rb, line 32 def transform_css_modules(content) doc = Nokogiri::HTML::DocumentFragment.parse(content) return content if (modules = doc.css('[css_module]')).empty? return content unless (path = stylesheet_path_for_ident) modules.each do |ele| classes = class_name_for_style(ele.delete('css_module'), path) ele['class'] = (ele['class'].nil? ? classes : classes << ele['class']).join(' ') end doc.to_html end