module Zantetsuken::Ruleset

Contains definitions for sets of rules that should be applied as part of the content security policy.

A set of rules that comprises a Content Security Policy.

Public Class Methods

load(base_policy = ActionDispatch::ContentSecurityPolicy.new) click to toggle source
# File lib/zantetsuken/ruleset.rb, line 8
def load(base_policy = ActionDispatch::ContentSecurityPolicy.new)
  load_all_rulesets_in(self).to_actiondispatch_csp(base_policy)
end

Private Class Methods

load_all_rulesets_in(mod, base_policy = self::Base.new) click to toggle source
# File lib/zantetsuken/ruleset.rb, line 14
def load_all_rulesets_in(mod, base_policy = self::Base.new)
  mod.constants(false).reduce(base_policy) do |policy, ruleset_class|
    klass = mod.const_get(ruleset_class)
    if klass <= Base
      klass.new.load? ? policy.add(klass.new) : policy
    else
      load_all_rulesets_in(klass, policy)
    end
  end
end