sterile 1.0.22 → 1.0.23

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: 69471b3cdff84cde4e92bca955edcc4b090be82abee6a890f6f452a1ec6b13c8
4
- data.tar.gz: 421a5a328e53452a47dbcd4979dd63b3ef6c70e7f63001dd1191250f6b4f192d
3
+ metadata.gz: 82975c959e59df1cb9411de684259be5470d4653b811a9bc0569c63bc5c7a3eb
4
+ data.tar.gz: cac8194311cb05acad5e0209adefb414befa6236c5545d61fc7eca9eb1899763
5
5
  SHA512:
6
- metadata.gz: 1c9949930230ce8425fe65970f70e3e26e4afd4e0a4e56c0f31a1edd890397a6732f0faa34557330237177f4dca3305db1af50d5d93496e24fc9bad620b1e761
7
- data.tar.gz: 04b3a2f2e08844b53abf9727630f3de56938499ccf337b562e4487026639efd5ebb5a33e867b52b4f6ef7ade02ed45728b0a0991f2b6d7f9701c91a14c44a9c8
6
+ metadata.gz: ed54878488af252a7e6d8db8bea711c2b18877e24830c49c487de9eb89cd9d8527eaf4550f3037f771ad997e68ab1a24713c071d8607bd59c8180b74a9248800
7
+ data.tar.gz: 79df903d40aef3a6b2207a7ed988fa128de361077fa345659d4b867a80a981a4553c19e6c26bd57a1be0a844357e9ef295022f773eade617c1a23d842dbab277
@@ -0,0 +1,26 @@
1
+ name: test
2
+
3
+ on:
4
+ push:
5
+ paths-ignore:
6
+ - '**.md'
7
+ pull_request:
8
+ paths-ignore:
9
+ - '**.md'
10
+ workflow_dispatch:
11
+
12
+ jobs:
13
+ test:
14
+ strategy:
15
+ max-parallel: 3
16
+ matrix:
17
+ os: [ubuntu, macos]
18
+ ruby-version: [head, 3.0, 2.7, 2.5]
19
+ runs-on: ${{ matrix.os }}-latest
20
+ steps:
21
+ - uses: actions/checkout@v2
22
+ - uses: ruby/setup-ruby@v1
23
+ with:
24
+ ruby-version: ${{ matrix.ruby-version }}
25
+ - run: bundle install
26
+ - run: bundle exec rake test
data/.gitignore CHANGED
@@ -5,5 +5,4 @@ doc/*
5
5
  .bundle
6
6
  .DS_Store
7
7
  make
8
- test
9
- vendor
8
+ vendor
data/.ruby-version CHANGED
@@ -1,3 +1 @@
1
- 2.4.9
2
-
3
-
1
+ 2.7.2
data/Gemfile CHANGED
@@ -1,3 +1,7 @@
1
1
  source "https://rubygems.org"
2
2
  gemspec
3
3
 
4
+ group :development, :test do
5
+ gem 'minitest'
6
+ gem 'rake'
7
+ end
data/Gemfile.lock CHANGED
@@ -1,21 +1,27 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sterile (1.0.17)
5
- nokogiri (>= 1.10.8)
4
+ sterile (1.0.22)
5
+ nokogiri (>= 1.11.7)
6
6
 
7
7
  GEM
8
- remote: http://rubygems.org/
8
+ remote: https://rubygems.org/
9
9
  specs:
10
- mini_portile2 (2.4.0)
11
- nokogiri (1.10.10)
12
- mini_portile2 (~> 2.4.0)
10
+ mini_portile2 (2.5.3)
11
+ minitest (5.14.4)
12
+ nokogiri (1.11.7)
13
+ mini_portile2 (~> 2.5.0)
14
+ racc (~> 1.4)
15
+ racc (1.5.2)
16
+ rake (13.0.3)
13
17
 
14
18
  PLATFORMS
15
19
  ruby
16
20
 
17
21
  DEPENDENCIES
22
+ minitest
23
+ rake
18
24
  sterile!
19
25
 
20
26
  BUNDLED WITH
21
- 1.17.3
27
+ 2.2.19
data/README.markdown CHANGED
@@ -1,4 +1,4 @@
1
- Sterile
1
+ Sterile ![test](https://github.com/pbhogan/sterile/actions/workflows/test.yml/badge.svg)
2
2
  =======
3
3
 
4
4
  Sterilize your strings! Transliterate, generate slugs, smart format, strip tags, encode/decode entities and more.
@@ -107,4 +107,4 @@ License
107
107
  -------
108
108
 
109
109
  Copyright (c) 2011 Patrick Hogan, released under the MIT License.
110
- http://www.opensource.org/licenses/mit-license
110
+ http://www.opensource.org/licenses/mit-license
data/Rakefile CHANGED
@@ -1,7 +1,14 @@
1
1
  require 'bundler'
2
+ require 'rake/testtask'
3
+
2
4
  Bundler::GemHelper.install_tasks
3
5
 
4
- require 'rake/testtask'
5
6
  Rake::TestTask.new do |t|
6
- t.pattern = "test/test_*.rb"
7
+ t.libs << 'test'
8
+ end
9
+ task default: :test
10
+
11
+ # Watch rb files, run tests whenever something changes. Requires entr
12
+ task :watch do
13
+ sh "find . -name '*.rb' | entr -c rake"
7
14
  end
@@ -24,7 +24,8 @@ module Sterile
24
24
  # their Unicode counterparts.
25
25
  #
26
26
  def decode_entities(string)
27
- string.gsub!(/&#(\d{1,4});/) { [$1.to_i].pack("U") }
27
+ string.gsub!(/&#x([a-zA-Z0-9]{1,7});/) { [$1.to_i(16)].pack("U") }
28
+ string.gsub!(/&#(\d{1,7});/) { [$1.to_i].pack("U") }
28
29
  string.gsub(/&([a-zA-Z0-9]+);/) do
29
30
  codepoint = html_entities_data[$1]
30
31
  codepoint ? [codepoint].pack("U") : $&
@@ -46,3 +47,4 @@ module Sterile
46
47
  end # class << self
47
48
 
48
49
  end # module Sterile
50
+
@@ -1,6 +1,6 @@
1
1
  # encoding: UTF-8
2
2
 
3
3
  module Sterile
4
- VERSION = "1.0.22"
4
+ VERSION = "1.0.23"
5
5
  end
6
6
 
data/sterile.gemspec CHANGED
@@ -14,11 +14,10 @@ Gem::Specification.new do |s|
14
14
  s.summary = %q{Sterilize your strings! Transliterate, generate slugs, smart format, strip tags, encode/decode entities and more.}
15
15
  s.description = s.summary
16
16
 
17
- s.add_dependency("nokogiri", ">= 1.11.0")
17
+ s.add_dependency("nokogiri", ">= 1.11.7")
18
18
 
19
19
  s.files = `git ls-files`.split("\n")
20
20
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
21
21
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
22
22
  s.require_paths = ["lib"]
23
23
  end
24
-
@@ -0,0 +1,2 @@
1
+ require 'minitest/autorun'
2
+ require 'sterile'
@@ -0,0 +1,74 @@
1
+ require "test_helper"
2
+
3
+ class TestSterile < Minitest::Test
4
+ def test_decode_entities
5
+ assert_equal "“Hey” you", Sterile.decode_entities("&ldquo;Hey&rdquo; you")
6
+
7
+ # try all variants
8
+ assert_equal "°", Sterile.decode_entities("&deg;")
9
+ assert_equal "°", Sterile.decode_entities("&#176;")
10
+ assert_equal "°", Sterile.decode_entities("&#000176;")
11
+ assert_equal "°", Sterile.decode_entities("&#x000b0;")
12
+ assert_equal "°", Sterile.decode_entities("&#x000B0;")
13
+ end
14
+
15
+ def test_encode_entities
16
+ assert_equal "&ldquo;Hey&rdquo; you", Sterile.encode_entities("“Hey” you")
17
+ end
18
+
19
+ def test_gsub_tags
20
+ assert_equal "A<i>B</i>C", Sterile.gsub_tags("a<i>b</i>c", &:upcase)
21
+ end
22
+
23
+ def test_plain_format
24
+ s = "&#169; &copy; &#8482; &trade;"
25
+ assert_equal "(c) (c) (tm) (tm)", Sterile.plain_format(s)
26
+ end
27
+
28
+ def test_plain_format_tags
29
+ s = '<i x="&copy;">&copy;</i>'
30
+ assert_equal '<i x="&copy;">(c)</i>', Sterile.plain_format_tags(s)
31
+ end
32
+
33
+ def test_scan_tags
34
+ text = []
35
+ Sterile.scan_tags("a<i>b</i>c") { |i| text << i }
36
+ assert_equal %w[a b c], text
37
+ end
38
+
39
+ def test_sluggerize
40
+ assert_equal "hello-world", Sterile.sluggerize("Hello world!")
41
+ end
42
+
43
+ def test_smart_format
44
+ s = "\"He said, 'Away, Drake!'\""
45
+ assert_equal "“He said, ‘Away, Drake!’”", Sterile.smart_format(s)
46
+ end
47
+
48
+ def test_smart_format_tags
49
+ # ?
50
+ end
51
+
52
+ def test_sterilize
53
+ assert_equal "nasty", Sterile.sterilize("<b>nåsty</b>")
54
+ end
55
+
56
+ def test_strip_tags
57
+ s = 'Visit <a href="http://example.com">site!</a>'
58
+ assert_equal "Visit site!", Sterile.strip_tags(s)
59
+ end
60
+
61
+ def test_titlecase
62
+ s = "Q&A: 'That's what happens'"
63
+ assert_equal "Q&A: 'That's What Happens'", Sterile.titlecase(s)
64
+ end
65
+
66
+ def test_transliterate
67
+ assert_equal "yucky", Sterile.transliterate("ýůçký")
68
+ end
69
+
70
+ def test_trim_whitespace
71
+ assert_equal "Hello world!", Sterile.trim_whitespace(" Hello world! ")
72
+ end
73
+ end
74
+
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sterile
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.22
4
+ version: 1.0.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Patrick Hogan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-12 00:00:00.000000000 Z
11
+ date: 2021-06-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 1.11.0
19
+ version: 1.11.7
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 1.11.0
26
+ version: 1.11.7
27
27
  description: Sterilize your strings! Transliterate, generate slugs, smart format,
28
28
  strip tags, encode/decode entities and more.
29
29
  email:
@@ -32,6 +32,7 @@ executables: []
32
32
  extensions: []
33
33
  extra_rdoc_files: []
34
34
  files:
35
+ - ".github/workflows/test.yml"
35
36
  - ".gitignore"
36
37
  - ".ruby-gemset"
37
38
  - ".ruby-version"
@@ -56,6 +57,8 @@ files:
56
57
  - lib/sterile/version.rb
57
58
  - sterile
58
59
  - sterile.gemspec
60
+ - test/test_helper.rb
61
+ - test/test_sterile.rb
59
62
  homepage: https://github.com/pbhogan/sterile
60
63
  licenses:
61
64
  - MIT
@@ -75,9 +78,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
75
78
  - !ruby/object:Gem::Version
76
79
  version: '0'
77
80
  requirements: []
78
- rubygems_version: 3.0.8
81
+ rubygems_version: 3.2.6
79
82
  signing_key:
80
83
  specification_version: 4
81
84
  summary: Sterilize your strings! Transliterate, generate slugs, smart format, strip
82
85
  tags, encode/decode entities and more.
83
- test_files: []
86
+ test_files:
87
+ - test/test_helper.rb
88
+ - test/test_sterile.rb