# frozen_string_literal: true require “secure_headers/task_helper”
namespace :secure_headers do
include SecureHeaders::TaskHelper desc "Generate #{SecureHeaders::Configuration::HASH_CONFIG_FILE}" task :generate_hashes do |t, args| script_hashes = { "scripts" => {}, "styles" => {} } Dir.glob("app/{views,templates}/**/*.{erb,mustache}") do |filename| hashes = generate_inline_script_hashes(filename) if hashes.any? script_hashes["scripts"][filename] = hashes end hashes = generate_inline_style_hashes(filename) if hashes.any? script_hashes["styles"][filename] = hashes end end File.open(SecureHeaders::Configuration::HASH_CONFIG_FILE, "w") do |file| file.write(script_hashes.to_yaml) end file_count = (script_hashes["scripts"].keys + script_hashes["styles"].keys).uniq.count puts "Script and style hashes from #{file_count} files added to #{SecureHeaders::Configuration::HASH_CONFIG_FILE}" end
end