selma 0.4.6.1-x86_64-linux → 0.4.8-x86_64-linux

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 65e6d340a25e0f92d982da2393aac0bbcee0012b3e66f02a98a4e08c00646bfd
4
- data.tar.gz: 07fe2e9852d180dbbe064be7deafe286d60f95d7cca8c8e18683b74eb4a00d82
3
+ metadata.gz: 383b05bb2328246d0a757d6fb894a787367531c3a5e0cd0a33ded80c2b1cc7fc
4
+ data.tar.gz: de5bab92c46b54c27fc8e7600e85b4b80510813a70a64660f3814fc6f7f882e2
5
5
  SHA512:
6
- metadata.gz: b9a8d94f68b56c630d04a5908563627b25d796cc93db7dca79c9f0955659d5423fa5eae5f65ddea9bbe405512f41d187d9ec4f0c786644d3faf9af802796a28f
7
- data.tar.gz: da1f9a94d511869667d3f7adb034c18520206a3c27cc8beee851fb4ecb5093fe9bdb2a6147f927e7ced73d5d8e287f75f5859f483283ae8a4327a6ce09b9cd92
6
+ metadata.gz: c98ff2ab9cf328db1be0b63cb2206240bea153d37e92340cbb3f35355f4bc502bed88e01ec86aee23356dfa4e1271448b2c7e9f5a33c683ed17d26e8a34183bb
7
+ data.tar.gz: 3642390eb8448aeb336ba371b247447a72685b8bc672def465efec6e9799c9b2584871cf419da8d409c5ac8f7b93c693c0a21d86dba21e45d587b09f7bab05e9
Binary file
Binary file
Binary file
@@ -28,7 +28,7 @@ module Selma
28
28
  raise ArgumentError, "other_config must be a Hash" unless other_config.is_a?(Hash)
29
29
 
30
30
  merged = {}
31
- keys = Set.new(config.keys + other_config.keys)
31
+ keys = Set.new(config.keys + other_config.keys).to_a
32
32
 
33
33
  keys.each do |key|
34
34
  oldval = config[key]
@@ -39,7 +39,7 @@ module Selma
39
39
  merged[key] = if oldval.is_a?(Hash) && newval.is_a?(Hash)
40
40
  oldval.empty? ? newval.dup : merge(oldval, newval)
41
41
  elsif newval.is_a?(Array) && key != :transformers
42
- Set.new(newval)
42
+ Set.new(newval).to_a
43
43
  else
44
44
  can_dupe?(newval) ? newval.dup : newval
45
45
  end
@@ -4,87 +4,5 @@ require "selma/sanitizer/config"
4
4
 
5
5
  module Selma
6
6
  class Sanitizer
7
- ALLOW = 1 << 0
8
- ESCAPE_TAGFILTER = (1 << 1)
9
- REMOVE_CONTENTS = (1 << 2)
10
- WRAP_WHITESPACE = (1 << 3)
11
-
12
- # initialize is in Rust, this just helps manage config setup in Ruby
13
- # TODO: could this just become initialize?
14
- def setup
15
- allow_element(config[:elements] || [])
16
-
17
- (config[:attributes] || {}).each do |element, attrs|
18
- allow_attribute(element, attrs)
19
- end
20
-
21
- (config[:protocols] || {}).each do |element, protocols|
22
- protocols.each do |attribute, pr|
23
- allow_protocol(element, attribute, pr)
24
- end
25
- end
26
-
27
- remove_contents(config[:remove_contents]) if config.include?(:remove_contents)
28
-
29
- wrap_with_whitespace(config[:whitespace_elements]) if config.include?(:whitespace_elements)
30
-
31
- set_escape_tagfilter(config.fetch(:escape_tagfilter, true))
32
- set_allow_comments(config.fetch(:allow_comments, false))
33
- set_allow_doctype(config.fetch(:allow_doctype, true))
34
- end
35
-
36
- def elements
37
- config[:elements]
38
- end
39
-
40
- def allow_element(elements)
41
- elements.flatten.each { |e| set_flag(e, ALLOW, true) }
42
- end
43
-
44
- def disallow_element(elements)
45
- elements.flatten.each { |e| set_flag(e, ALLOW, false) }
46
- end
47
-
48
- def allow_attribute(element, attrs)
49
- attrs.flatten.each { |attr| set_allowed_attribute(element, attr, true) }
50
- end
51
-
52
- def require_any_attributes(element, attrs)
53
- if attr.empty?
54
- set_required_attribute(element, "*", true)
55
- else
56
- attrs.flatten.each { |attr| set_required_attribute(element, attr, true) }
57
- end
58
- end
59
-
60
- def disallow_attribute(element, attrs)
61
- attrs.flatten.each { |attr| set_allowed_attribute(element, attr, false) }
62
- end
63
-
64
- def allow_class(element, *klass)
65
- klass.flatten.each { |k| set_allowed_class(element, k, true) }
66
- end
67
-
68
- def allow_protocol(element, attr, protos)
69
- if protos.is_a?(Array)
70
- raise ArgumentError, "`:all` must be passed outside of an array" if protos.include?(:all)
71
- else
72
- protos = [protos]
73
- end
74
-
75
- set_allowed_protocols(element, attr, protos)
76
- end
77
-
78
- def remove_contents(elements)
79
- if elements.is_a?(TrueClass) || elements.is_a?(FalseClass)
80
- set_all_flags(REMOVE_CONTENTS, elements)
81
- else
82
- elements.flatten.each { |e| set_flag(e, REMOVE_CONTENTS, true) }
83
- end
84
- end
85
-
86
- def wrap_with_whitespace(elements)
87
- elements.flatten.each { |e| set_flag(e, WRAP_WHITESPACE, true) }
88
- end
89
7
  end
90
8
  end
data/lib/selma/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Selma
4
- VERSION = "0.4.6.1"
4
+ VERSION = "0.4.8"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: selma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6.1
4
+ version: 0.4.8
5
5
  platform: x86_64-linux
6
6
  authors:
7
7
  - Garen J. Torikian
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2024-08-09 00:00:00.000000000 Z
11
+ date: 2024-10-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake