Sha256: bdbb6ef447d85e8ce2059d3517d857caa3be8ebb735f5ad45ee8f3306bd447a8

Contents?: true

Size: 1.02 KB

Versions: 2

Compression:

Stored size: 1.02 KB

Contents

# frozen_string_literal: true

module RailsCriticalCss::Helpers
  def critical_css
    @critical_css_cache.try(:[], :css)
  end

  def critical_css_enabled?
    @critical_css_enabled
  end

  def critical_css?
    critical_css.present? && critical_css.instance_of?(String)
  end

  def critical_css_asset(attrs)
    append_critical_css_asset(attrs)
    nil
  end

  def critical_css_tags(preserve_content: true, &block)
    content = capture(&block)

    if critical_css_enabled? && critical_css?
      css_tags = content_tag(:style, critical_css.html_safe, type: 'text/css')
      css_tags = "#{css_tags}#{content}".html_safe if preserve_content
      css_tags.html_safe
    else
      append_css_tags_assets(content)
      content
    end
  end

  def critical_css_link(href, media: nil)
    if critical_css?
      link_to(href: href, rel: 'preload', as: 'style', media: media, onload: "this.rel = 'stylesheet'")
    else
      append_css_tags_assets do
        link_to(href: href, rel: 'stylesheet', media: media)
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rails_critical_css-0.4.1 lib/rails_critical_css/helpers.rb
rails_critical_css-0.4.0 lib/rails_critical_css/helpers.rb