selma 0.4.6.1-x86_64-darwin → 0.4.8-x86_64-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: 323a97e0bb570fb642d23b0f085cb53329c5486081c12ad0d1cbb91c956954c5
4
- data.tar.gz: 23f3214fc75778c963fa17455138a5aa522d1dc0da9ead750a187584a4d1a20d
3
+ metadata.gz: e72b5846225f7a1e2f4dd89d0559befc4c7a04f01a0721693460a85ba102c33c
4
+ data.tar.gz: 42c361abd7a7bd10a12f5b2f16c8a26ea8d32809bcbf5624ee641aaf5da40126
5
5
  SHA512:
6
- metadata.gz: 80435662e4611db822e2aa5644847b730046490921aaa84770561c946ae4cf4717f431585810e3b462a6f98931d293d0e79436f5bd9836f32f5c654851d4c37b
7
- data.tar.gz: 0f15097d9f9f959957d442bdb00d494739bf6b7c20a6bbd8d294a92604ca6943f77982a7a0f30d289c1e081ae0430ff4eb09c5cdb3e0609a70eda84a97dc60e3
6
+ metadata.gz: dcd8cb718e5d0e62c8cc806a6a2773f7e6af267006027461a71d4e661ef23a67cc3a471b2b7b33654dc25d4b0da6a99f76e60c865052496b4fc5e7d143d1b64e
7
+ data.tar.gz: b008b88aa40ef1b5ce6de3d01bc131d74ceb740ad4c9f66d4fe725c1b2479b55e9ebc511859df22378a02ad33b59c0039087753b7765e91f59211f6dfe2a9e6e
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-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