Class: Zantetsuken::Ruleset::Base

Inherits:
Object
  • Object
show all
Extended by:
ActiveModel::Callbacks
Includes:
ActiveModel::AttributeAssignment
Defined in:
lib/zantetsuken/ruleset/base.rb

Overview

Base class for rulesets. Defines the rules to be applied and the behavior for composing these rulesets into a single instance of ActionDispatch::ContentSecurityPolicy.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**attributes) ⇒ Base



24
25
26
27
28
# File 'lib/zantetsuken/ruleset/base.rb', line 24

def initialize(**attributes)
  run_callbacks :initialize do
    assign_attributes(attributes)
  end
end

Instance Attribute Details

#base_uriObject

Returns the value of attribute base_uri.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def base_uri
  @base_uri
end

#child_srcObject

Returns the value of attribute child_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def child_src
  @child_src
end

#connect_srcObject

Returns the value of attribute connect_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def connect_src
  @connect_src
end

#default_srcObject

Returns the value of attribute default_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def default_src
  @default_src
end

#font_srcObject

Returns the value of attribute font_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def font_src
  @font_src
end

#form_actionObject

Returns the value of attribute form_action.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def form_action
  @form_action
end

#frame_srcObject

Returns the value of attribute frame_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def frame_src
  @frame_src
end

#img_srcObject

Returns the value of attribute img_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def img_src
  @img_src
end

#media_srcObject

Returns the value of attribute media_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def media_src
  @media_src
end

#object_srcObject

Returns the value of attribute object_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def object_src
  @object_src
end

#report_uriObject

Returns the value of attribute report_uri.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def report_uri
  @report_uri
end

#script_srcObject

Returns the value of attribute script_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def script_src
  @script_src
end

#style_srcObject

Returns the value of attribute style_src.



15
16
17
# File 'lib/zantetsuken/ruleset/base.rb', line 15

def style_src
  @style_src
end

Class Method Details

.ruleset(&block) ⇒ Object



19
20
21
# File 'lib/zantetsuken/ruleset/base.rb', line 19

def ruleset(&block)
  after_initialize(&block)
end

Instance Method Details

#add(ruleset) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/zantetsuken/ruleset/base.rb', line 30

def add(ruleset)
  tap do
    assign_attributes(
      to_h.merge(ruleset.to_h) do |_, existing_rules, new_rules|
        Array.wrap(existing_rules) | Array.wrap(new_rules)
      end
    )
  end
end

#load?Boolean



50
51
52
# File 'lib/zantetsuken/ruleset/base.rb', line 50

def load?
  true
end

#to_actiondispatch_csp(policy) ⇒ Object



44
45
46
47
48
# File 'lib/zantetsuken/ruleset/base.rb', line 44

def to_actiondispatch_csp(policy)
  instance_values.each do |rule_name, attribute|
    policy.public_send(rule_name, *attribute)
  end
end

#to_hObject



40
41
42
# File 'lib/zantetsuken/ruleset/base.rb', line 40

def to_h
  instance_values.symbolize_keys
end