module BetterErrors::ErrorPageStyle
@private
Public Class Methods
compiled_css(for_deployment = false)
click to toggle source
# File lib/better_errors/error_page_style.rb, line 4 def self.compiled_css(for_deployment = false) begin require "sassc" rescue LoadError raise LoadError, "The `sassc` gem is required when developing the `better_errors` gem. "\ "If you're using a release of `better_errors`, the compiled CSS is missing from the released gem" # If you arrived here because sassc is not in your project's Gemfile, # the issue here is that the release of the better_errors gem # is supposed to contain the compiled CSS, but that file is missing from the release. # So better_errors is trying to build the CSS on the fly, which requires the sassc gem. # # If you're developing the better_errors gem locally, and you're running a project # that does not have sassc in its bundle, run `rake style:build` in the better_errors # project to compile the CSS file. end style_dir = File.expand_path("style", File.dirname(__FILE__)) style_file = "#{style_dir}/main.scss" engine = SassC::Engine.new( File.read(style_file), filename: style_file, style: for_deployment ? :compressed : :expanded, line_comments: !for_deployment, load_paths: [style_dir], ) engine.render end
style_tag(csp_nonce)
click to toggle source
# File lib/better_errors/error_page_style.rb, line 33 def self.style_tag(csp_nonce) style_file = File.expand_path("templates/main.css", File.dirname(__FILE__)) css = if File.exist?(style_file) File.open(style_file).read else compiled_css(false) end "<style type='text/css' nonce='#{csp_nonce}'>\n#{css}\n</style>" end