binxtils 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d72b64353d985a2d1473b717fe1adff0e04c89af0d62ef6b5a1a1af9d274509
4
- data.tar.gz: dc3707cc25fd903d65bddca88af6eeea7ea1e05abad11ae17f9f53b2afacc880
3
+ metadata.gz: 58786a3391a102bc9a6e08a9420088cf9796ae49f425af65bd40504bb350ea37
4
+ data.tar.gz: decb330bdb3ac5b78b24fdff8fa8431331a8933b4b5e6c06957850e7d5910de4
5
5
  SHA512:
6
- metadata.gz: 965dbfb38c5dc90180f92ebd1ca5a1403d39cc4688183c42ee474d859efc396387453eec0647ec04a67b57df64a10b05bf29b99294a5d72c2f6f4e80b35f1a9f
7
- data.tar.gz: b3a516d70a73ae33f9d4486f23c292f6f644c4a341e591c07d83d67737813e1cda77b6f3649a268887bd6902e611cbabe83f0ae76c291ab339f825c790e365d4
6
+ metadata.gz: 8ebdeccb552c059b0f4d6951cf6e5305656c97a0d5949d8536fa920e96bce5b211ced41f9eb0252d4420973c3ef853286a2be01ae25ed0a3e63c55feac03d2cc
7
+ data.tar.gz: 309384e08b2afb921202bd92fede339d559f29857a58b3ab23ed667652182a87252a4424c708d57e74345f6a4f523eb26426ce3c51cacacaaf835eb6efa7cb5f
@@ -20,6 +20,11 @@ module Binxtils
20
20
  val.to_s.present?
21
21
  end
22
22
 
23
+ def regex_escape(val)
24
+ # Lazy hack, good enough for current purposes. Improve if required!
25
+ string(val)&.gsub(/\W/, ".")
26
+ end
27
+
23
28
  def sanitize(str = nil)
24
29
  Rails::Html::Sanitizer.full_sanitizer.new.sanitize(str.to_s, encode_special_chars: true)
25
30
  .strip
@@ -27,9 +32,14 @@ module Binxtils
27
32
  .gsub(/\s+/, " ") # remove extra whitespace
28
33
  end
29
34
 
30
- def regex_escape(val)
31
- # Lazy hack, good enough for current purposes. Improve if required!
32
- string(val)&.gsub(/\W/, ".")
35
+ # Plain text, so unlike sanitize: every entity is decoded and angle brackets stay literal
36
+ def plain_text(value = nil)
37
+ normalize_whitespace(CGI.unescapeHTML(Rails::Html::Sanitizer.full_sanitizer.new.sanitize(value.to_s)))
38
+ end
39
+
40
+ # An HTML email's "blank" lines are often a  , which String#strip doesn't count as whitespace
41
+ def normalize_whitespace(value = nil)
42
+ value.to_s.tr(" ", " ").lines.map(&:strip).join("\n").gsub(/\n{3,}/, "\n\n").strip
33
43
  end
34
44
  end
35
45
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Binxtils
4
- VERSION = "0.6.0"
4
+ VERSION = "0.7.0"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: binxtils
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.7.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bike Index