selma 0.4.6.1-arm64-darwin → 0.4.8-arm64-darwin

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: bf04315d8fd4d420c3297c4bdffa35fa976f9a325126c62f1080212b7b3b2b0c
4
- data.tar.gz: b01ebb3dddc691e660bcba41e3b3a0598952b11ee218f14b395bb5cb64a0dc1c
3
+ metadata.gz: 0b36cb9e2e201ccd0508cf6f300c6e1641efa56940fe42647d63dc09a6241636
4
+ data.tar.gz: 15ece812464d989dfaf5e3bee65cfa9a0eabccd1ed5f6659b0aa0333ca39ae50
5
5
  SHA512:
6
- metadata.gz: 44085b1ac9ffd69de8671dd5332a099423419fcba922127c83366d4dbcb073d31840f28013b0dd6fc65969e065e3673690d5b3e9a8305e6066f5cb3fa53513a1
7
- data.tar.gz: 3cf70e93890d48e6d6f55193ca981e9b4e13274cd8e9f689d91b0b3165862d19d9e4c4a079907c9b5a4fc80a38222dcfec26491b822fe01ff8992044bd7f2e5f
6
+ metadata.gz: be38e9393ba8ba385d482cc57f388f3ac83a22ed68bc5b60e1e595bed374cd08f2408f6c60893b3510232ce04582e400b55284eebf036d62db0627cb2dc06bed
7
+ data.tar.gz: ac5ff20c0feaa1eb8d9f07abd7987d4dcd95c9b0a649e170791999532bac2ca85702396a5c18f79931317c90947c4986665596ad0891a32feaae440e099d4e48
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: arm64-darwin
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