selma 0.4.6.1-x64-mingw-ucrt → 0.4.8-x64-mingw-ucrt

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: 1b78a7efba761f377a87854a1ec35e717eaee5a9c8a674e1ad99e2f895f51032
4
- data.tar.gz: b98802b78f05144aeb50209d555cd7987e312b6fbdd60fbe8e172d145726cc30
3
+ metadata.gz: c44e5459cf2fe7a1c050bee8bf330189f8aa12fa5031d706a98ee99004384321
4
+ data.tar.gz: 810323fc2e944b9d5fa866444ca7d3927e30fcd1d8e461023343c793c2c1f928
5
5
  SHA512:
6
- metadata.gz: a331239ba888689f8903ae8036426e8c3d039b26270ee2daee02458eb3701568841c1f2104c91c49a70b884649b46c8c00fd2beab55b491206d74ed19db3f130
7
- data.tar.gz: 645d049681e0277ac52b9e19eef4253df8301df4094f75028da4724e61f8fa5c9e230e910c19d92ca4d31b1c533cdffe622544daef060ea08496556851780fb9
6
+ metadata.gz: d9ccda75e056dca33cf9a97e6a55116426358438c95772443716aca19333d98ad4dc80f33a3b2ac4b31cbbae06a29fc316cbe69b52d8dfb8595d485951f961dc
7
+ data.tar.gz: f491f5090066c635779ca385d5e9f566ed1b99f41ff255483ede69a7cbace3fd99f01533bb299b77adf09eb8ab4bb22f1a026193cffbe619262b9dee2744e423
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: x64-mingw-ucrt
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