sterile 1.0.22 → 1.0.23

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: 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