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 +4 -4
- data/.github/workflows/test.yml +26 -0
- data/.gitignore +1 -2
- data/.ruby-version +1 -3
- data/Gemfile +4 -0
- data/Gemfile.lock +13 -7
- data/README.markdown +2 -2
- data/Rakefile +9 -2
- data/lib/sterile/entities.rb +3 -1
- data/lib/sterile/version.rb +1 -1
- data/sterile.gemspec +1 -2
- data/test/test_helper.rb +2 -0
- data/test/test_sterile.rb +74 -0
- metadata +11 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 82975c959e59df1cb9411de684259be5470d4653b811a9bc0569c63bc5c7a3eb
|
4
|
+
data.tar.gz: cac8194311cb05acad5e0209adefb414befa6236c5545d61fc7eca9eb1899763
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
data/.ruby-version
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,21 +1,27 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
sterile (1.0.
|
5
|
-
nokogiri (>= 1.
|
4
|
+
sterile (1.0.22)
|
5
|
+
nokogiri (>= 1.11.7)
|
6
6
|
|
7
7
|
GEM
|
8
|
-
remote:
|
8
|
+
remote: https://rubygems.org/
|
9
9
|
specs:
|
10
|
-
mini_portile2 (2.
|
11
|
-
|
12
|
-
|
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
|
-
|
27
|
+
2.2.19
|
data/README.markdown
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Sterile
|
1
|
+
Sterile 
|
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.
|
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
|
data/lib/sterile/entities.rb
CHANGED
@@ -24,7 +24,8 @@ module Sterile
|
|
24
24
|
# their Unicode counterparts.
|
25
25
|
#
|
26
26
|
def decode_entities(string)
|
27
|
-
string.gsub!(/&#(
|
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
|
+
|
data/lib/sterile/version.rb
CHANGED
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.
|
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
|
-
|
data/test/test_helper.rb
ADDED
@@ -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("“Hey” you")
|
6
|
+
|
7
|
+
# try all variants
|
8
|
+
assert_equal "°", Sterile.decode_entities("°")
|
9
|
+
assert_equal "°", Sterile.decode_entities("°")
|
10
|
+
assert_equal "°", Sterile.decode_entities("°")
|
11
|
+
assert_equal "°", Sterile.decode_entities("°")
|
12
|
+
assert_equal "°", Sterile.decode_entities("°")
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_encode_entities
|
16
|
+
assert_equal "“Hey” 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 = "© © ™ ™"
|
25
|
+
assert_equal "(c) (c) (tm) (tm)", Sterile.plain_format(s)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_plain_format_tags
|
29
|
+
s = '<i x="©">©</i>'
|
30
|
+
assert_equal '<i x="©">(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.
|
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-
|
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.
|
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.
|
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.
|
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
|