Module: SecureHeaders::DynamicConfig
- Included in:
- ContentSecurityPolicyConfig
- Defined in:
- lib/secure_headers/headers/content_security_policy_config.rb
Class Method Summary collapse
Instance Method Summary collapse
- #==(o) ⇒ Object
- #append(new_hash) ⇒ Object
- #directive_value(directive) ⇒ Object (also: #[])
- #dup ⇒ Object
- #initialize(hash) ⇒ Object
- #merge(new_hash) ⇒ Object
- #merge!(new_hash) ⇒ Object
- #opt_out? ⇒ Boolean
- #to_h ⇒ Object
- #update_directive(directive, value) ⇒ Object (also: #[]=)
Class Method Details
.included(base) ⇒ Object
4 5 6 7 8 9 10 11 12 13 14 15 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 4 def self.included(base) base.send(:attr_reader, *base.attrs) base.attrs.each do |attr| base.send(:define_method, "#{attr}=") do |value| if self.class.attrs.include?(attr) write_attribute(attr, value) else raise ContentSecurityPolicyConfigError, "Unknown config directive: #{attr}=#{value}" end end end end |
Instance Method Details
#==(o) ⇒ Object
85 86 87 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 85 def ==(o) self.class == o.class && self.to_h == o.to_h end |
#append(new_hash) ⇒ Object
66 67 68 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 66 def append(new_hash) from_hash(ContentSecurityPolicy.combine_policies(self.to_h, new_hash)) end |
#directive_value(directive) ⇒ Object Also known as: []
50 51 52 53 54 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 50 def directive_value(directive) if self.class.attrs.include?(directive) self.send(directive) end end |
#dup ⇒ Object
77 78 79 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 77 def dup self.class.new(self.to_h) end |
#initialize(hash) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 17 def initialize(hash) @base_uri = nil @block_all_mixed_content = nil @child_src = nil @connect_src = nil @default_src = nil @font_src = nil @form_action = nil @frame_ancestors = nil @frame_src = nil @img_src = nil @manifest_src = nil @media_src = nil @object_src = nil @plugin_types = nil @preserve_schemes = nil @report_only = nil @report_uri = nil @sandbox = nil @script_nonce = nil @script_src = nil @style_nonce = nil @style_src = nil @worker_src = nil @upgrade_insecure_requests = nil from_hash(hash) end |
#merge(new_hash) ⇒ Object
56 57 58 59 60 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 56 def merge(new_hash) new_config = self.dup new_config.send(:from_hash, new_hash) new_config end |
#merge!(new_hash) ⇒ Object
62 63 64 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 62 def merge!(new_hash) from_hash(new_hash) end |
#opt_out? ⇒ Boolean
81 82 83 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 81 def opt_out? false end |
#to_h ⇒ Object
70 71 72 73 74 75 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 70 def to_h self.class.attrs.each_with_object({}) do |key, hash| value = self.send(key) hash[key] = value unless value.nil? end end |
#update_directive(directive, value) ⇒ Object Also known as: []=
46 47 48 |
# File 'lib/secure_headers/headers/content_security_policy_config.rb', line 46 def update_directive(directive, value) self.send("#{directive}=", value) end |