sbsm 1.6.2 → 1.6.3

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: 0c0b16442273f02641861ab2af2df40bdedf7adcf57a5da81e7f2f643c8cb40f
4
- data.tar.gz: 52cbff715b9e7c64a476a1c8daca37aa684103b9a88e05451fb1ab6f1b8190e9
3
+ metadata.gz: 86e899261cc339f9823718208de2acff2be0eee084ff0327f7d8773a219255b4
4
+ data.tar.gz: d5bbc3378fa5e2ced23310629caa4459cb52261973f3676e9bae0f9f8cee2183
5
5
  SHA512:
6
- metadata.gz: 45cc5410d706b22306be01727bfd9db0364df776402592cfcaa1de71850774bbb961107411b8eb35225a05dae23fc944a3047289f761d64d3743cf7fc236b67d
7
- data.tar.gz: 3056680481b6b5d3a24d04637713497f41d6b4e7394a0d81023f6da3880eacaf8b94649eb487c50ff28f54fa8e3847fd135572d34bfd293953d9abfd0f7178d3
6
+ metadata.gz: 406aa85aad631e33db299ed2d6dc351695ba5bf6550ce3aae67d01a12596cdc4b70a67dc5471599a4ac4ef17d28a5e1d456173bf66b44ac02b77ed27dd582782
7
+ data.tar.gz: 77aeb85b366d0bef22bede0ffd0f8ff0d300d32729021c6786b0cd78e32079cbbaccdd133521d90f8121c1e18d0c452b8749cd89ac8e1849a30f52a2deb0c073
@@ -22,7 +22,7 @@ jobs:
22
22
  fail-fast: false
23
23
  matrix:
24
24
  os: [ ubuntu]
25
- ruby: [2.5, 2.6, 2.7, '3.0', 3.1, 3.2, 3.3, head]
25
+ ruby: [2.5, 2.6, 2.7, '3.0', 3.1, 3.2, 3.3, 3.4, head]
26
26
  continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
27
27
  steps:
28
28
  - uses: actions/checkout@v2
data/History.txt CHANGED
@@ -1,3 +1,8 @@
1
+ === 1.6.3 / 07.01.2025
2
+
3
+ * Updated devenv environment for Ruby 3.3 (see https://devenv.sh/)
4
+ * Replace hpricot with nokogiri as hpricot is no longer maintained and leads to many test warnings under Ruby 3.4
5
+
1
6
  === 1.6.2 / 25.01.2024
2
7
 
3
8
  * Add devenv environment for Ruby 3.3 (see https://devenv.sh/)
data/devenv.lock CHANGED
@@ -3,11 +3,10 @@
3
3
  "devenv": {
4
4
  "locked": {
5
5
  "dir": "src/modules",
6
- "lastModified": 1705399223,
7
- "narHash": "sha256-2nhAJ/9LMlwaEZDnoDIhnhQ0pEC/YIIt09WD7FmTp6g=",
6
+ "lastModified": 1736184348,
8
7
  "owner": "cachix",
9
8
  "repo": "devenv",
10
- "rev": "ff37923d4ba9e220b9826594e83fc29e1a4f4338",
9
+ "rev": "07219f00c633f756d1f0cc5bb6c4c311b5c4cb0d",
11
10
  "type": "github"
12
11
  },
13
12
  "original": {
@@ -20,11 +19,10 @@
20
19
  "flake-compat": {
21
20
  "flake": false,
22
21
  "locked": {
23
- "lastModified": 1696426674,
24
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
22
+ "lastModified": 1733328505,
25
23
  "owner": "edolstra",
26
24
  "repo": "flake-compat",
27
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
25
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
28
26
  "type": "github"
29
27
  },
30
28
  "original": {
@@ -36,11 +34,10 @@
36
34
  "flake-compat_2": {
37
35
  "flake": false,
38
36
  "locked": {
39
- "lastModified": 1696426674,
40
- "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
37
+ "lastModified": 1733328505,
41
38
  "owner": "edolstra",
42
39
  "repo": "flake-compat",
43
- "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
40
+ "rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
44
41
  "type": "github"
45
42
  },
46
43
  "original": {
@@ -54,29 +51,10 @@
54
51
  "systems": "systems"
55
52
  },
56
53
  "locked": {
57
- "lastModified": 1694529238,
58
- "narHash": "sha256-zsNZZGTGnMOf9YpHKJqMSsa0dXbfmxeoJ7xHlrt+xmY=",
54
+ "lastModified": 1731533236,
59
55
  "owner": "numtide",
60
56
  "repo": "flake-utils",
61
- "rev": "ff7b65b44d01cf9ba6a71320833626af21126384",
62
- "type": "github"
63
- },
64
- "original": {
65
- "owner": "numtide",
66
- "repo": "flake-utils",
67
- "type": "github"
68
- }
69
- },
70
- "flake-utils_2": {
71
- "inputs": {
72
- "systems": "systems_2"
73
- },
74
- "locked": {
75
- "lastModified": 1701680307,
76
- "narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
77
- "owner": "numtide",
78
- "repo": "flake-utils",
79
- "rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
57
+ "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
80
58
  "type": "github"
81
59
  },
82
60
  "original": {
@@ -93,11 +71,10 @@
93
71
  ]
94
72
  },
95
73
  "locked": {
96
- "lastModified": 1703887061,
97
- "narHash": "sha256-gGPa9qWNc6eCXT/+Z5/zMkyYOuRZqeFZBDbopNZQkuY=",
74
+ "lastModified": 1709087332,
98
75
  "owner": "hercules-ci",
99
76
  "repo": "gitignore.nix",
100
- "rev": "43e1aa1308018f37118e34d3a9cb4f5e75dc11d5",
77
+ "rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
101
78
  "type": "github"
102
79
  },
103
80
  "original": {
@@ -108,16 +85,15 @@
108
85
  },
109
86
  "nixpkgs": {
110
87
  "locked": {
111
- "lastModified": 1705331948,
112
- "narHash": "sha256-qjQXfvrAT1/RKDFAMdl8Hw3m4tLVvMCc8fMqzJv0pP4=",
88
+ "lastModified": 1736061677,
113
89
  "owner": "NixOS",
114
90
  "repo": "nixpkgs",
115
- "rev": "b8dd8be3c790215716e7c12b247f45ca525867e2",
91
+ "rev": "cbd8ec4de4469333c82ff40d057350c30e9f7d36",
116
92
  "type": "github"
117
93
  },
118
94
  "original": {
119
95
  "owner": "NixOS",
120
- "ref": "nixos-23.11",
96
+ "ref": "nixos-24.11",
121
97
  "repo": "nixpkgs",
122
98
  "type": "github"
123
99
  }
@@ -131,11 +107,10 @@
131
107
  ]
132
108
  },
133
109
  "locked": {
134
- "lastModified": 1705118282,
135
- "narHash": "sha256-9FUnVSPjF+xV2a7tfai8fxi9Ek538mdkEjaFJnWRk9Y=",
110
+ "lastModified": 1735192621,
136
111
  "owner": "bobvanderlinden",
137
112
  "repo": "nixpkgs-ruby",
138
- "rev": "1a4b0055af39b2d0756d5a117589b8ccddbce4f8",
113
+ "rev": "602c528c8228f231f912c6d117703a1700464202",
139
114
  "type": "github"
140
115
  },
141
116
  "original": {
@@ -144,38 +119,19 @@
144
119
  "type": "github"
145
120
  }
146
121
  },
147
- "nixpkgs-stable": {
148
- "locked": {
149
- "lastModified": 1704874635,
150
- "narHash": "sha256-YWuCrtsty5vVZvu+7BchAxmcYzTMfolSPP5io8+WYCg=",
151
- "owner": "NixOS",
152
- "repo": "nixpkgs",
153
- "rev": "3dc440faeee9e889fe2d1b4d25ad0f430d449356",
154
- "type": "github"
155
- },
156
- "original": {
157
- "owner": "NixOS",
158
- "ref": "nixos-23.11",
159
- "repo": "nixpkgs",
160
- "type": "github"
161
- }
162
- },
163
122
  "pre-commit-hooks": {
164
123
  "inputs": {
165
124
  "flake-compat": "flake-compat_2",
166
- "flake-utils": "flake-utils_2",
167
125
  "gitignore": "gitignore",
168
126
  "nixpkgs": [
169
127
  "nixpkgs"
170
- ],
171
- "nixpkgs-stable": "nixpkgs-stable"
128
+ ]
172
129
  },
173
130
  "locked": {
174
- "lastModified": 1705229514,
175
- "narHash": "sha256-itILy0zimR/iyUGq5Dgg0fiW8plRDyxF153LWGsg3Cw=",
131
+ "lastModified": 1735882644,
176
132
  "owner": "cachix",
177
133
  "repo": "pre-commit-hooks.nix",
178
- "rev": "ffa9a5b90b0acfaa03b1533b83eaf5dead819a05",
134
+ "rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
179
135
  "type": "github"
180
136
  },
181
137
  "original": {
@@ -195,22 +151,6 @@
195
151
  "systems": {
196
152
  "locked": {
197
153
  "lastModified": 1681028828,
198
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
199
- "owner": "nix-systems",
200
- "repo": "default",
201
- "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
202
- "type": "github"
203
- },
204
- "original": {
205
- "owner": "nix-systems",
206
- "repo": "default",
207
- "type": "github"
208
- }
209
- },
210
- "systems_2": {
211
- "locked": {
212
- "lastModified": 1681028828,
213
- "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
214
154
  "owner": "nix-systems",
215
155
  "repo": "default",
216
156
  "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
data/devenv.nix CHANGED
@@ -13,13 +13,14 @@
13
13
  ruby --version
14
14
  '';
15
15
 
16
- env.FREEDESKTOP_MIME_TYPES_PATH = "${pkgs.shared-mime-info}/share/mime/packages/freedesktop.org.xml";
17
-
18
16
  # https://devenv.sh/languages/
19
17
  # languages.nix.enable = true;
20
18
 
21
19
  languages.ruby.enable = true;
22
- languages.ruby.versionFile = ./.ruby-version;
20
+ languages.ruby.version = "3.4";
21
+ # Needed for gem mimemagic
22
+ env.FREEDESKTOP_MIME_TYPES_PATH = "${pkgs.shared-mime-info}/share/mime/packages/freedesktop.org.xml";
23
+
23
24
  # https://devenv.sh/pre-commit-hooks/
24
25
  # pre-commit.hooks.shellcheck.enable = true;
25
26
 
data/devenv.yaml CHANGED
@@ -1,6 +1,6 @@
1
1
  inputs:
2
2
  nixpkgs:
3
- url: github:NixOS/nixpkgs/nixos-23.11
3
+ url: github:NixOS/nixpkgs/nixos-24.11
4
4
  nixpkgs-ruby:
5
5
  url: github:bobvanderlinden/nixpkgs-ruby
6
6
  inputs:
@@ -150,7 +150,7 @@ module SBSM
150
150
  end
151
151
  def uri_parser(grammar_path=@grammar_path, parser_path=@parser_path)
152
152
  if(File.exist?(grammar_path))
153
- oldpath = File.expand_path("_" << File.basename(grammar_path),
153
+ oldpath = File.expand_path("_" + File.basename(grammar_path),
154
154
  File.dirname(grammar_path))
155
155
  src = File.read(grammar_path)
156
156
  unless(File.exist?(oldpath) && File.read(oldpath)==src)
@@ -30,7 +30,7 @@ require 'mail'
30
30
  require 'date'
31
31
  require 'uri'
32
32
  require 'stringio'
33
- require 'hpricot'
33
+ require "nokogiri"
34
34
  require 'sbsm/logger'
35
35
 
36
36
  module SBSM
@@ -225,17 +225,16 @@ module SBSM
225
225
  end
226
226
  @@xml_ptrn = /<\?xml[^>]+>/
227
227
  def _validate_html(value, valid=self.class.const_get(:ALLOWED_TAGS))
228
- doc = Hpricot(value.gsub(@@xml_ptrn, ''), :fixup_tags => true)
229
- (doc/"*").each { |element|
230
- unless(element.is_a?(Hpricot::Text) \
231
- || (element.respond_to?(:name) \
232
- && valid.include?(element.name.downcase)))
233
- element.swap _validate_html(element.inner_html.to_s)
234
- end
235
- }
236
- valid = doc.to_html
237
- valid.force_encoding 'UTF-8' if valid.respond_to?(:force_encoding)
238
- valid
228
+ doc = Nokogiri::HTML.parse(value.gsub(@@xml_ptrn, ''))
229
+ doc.elements.each do |element|
230
+ unless( element.is_a?(Nokogiri::XML::Text) ||
231
+ (element.respond_to?(:name) \
232
+ && valid.include?(element.name.downcase)))
233
+ end
234
+ end
235
+ result = ''
236
+ doc.elements.each { |x| result += x.inner_html}
237
+ result.sub('<body>','').sub('</body>','')
239
238
  end
240
239
  @@numeric_ptrn = /\d+(\.\d{1,2})?/
241
240
  def validate_numeric(key, value)
data/lib/sbsm/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module SBSM
2
- VERSION = '1.6.2'
2
+ VERSION = '1.6.3'
3
3
  end
data/sbsm.gemspec CHANGED
@@ -16,13 +16,14 @@ Gem::Specification.new do |spec|
16
16
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
17
17
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
18
18
  spec.require_paths = ["lib"]
19
+ spec.metadata["changelog_uri"] = spec.homepage + "/blob/master/ChangeLog"
19
20
 
20
21
  # We fix the version of the spec to newer versions only in the third position
21
22
  # hoping that these version fix only security/severe bugs
22
23
  # Consulted the Gemfile.lock to get
23
24
  spec.add_dependency 'rack'
24
25
  spec.add_dependency 'mail', '< 2.8.0'
25
- spec.add_dependency 'hpricot'
26
+ spec.add_dependency 'nokogiri'
26
27
  spec.add_dependency 'mimemagic'
27
28
 
28
29
  spec.add_development_dependency "bundler"
@@ -34,7 +35,7 @@ Gem::Specification.new do |spec|
34
35
  spec.add_development_dependency "simplecov"
35
36
  spec.add_development_dependency "watir"
36
37
  spec.add_development_dependency "watir-webdriver"
37
- spec.add_development_dependency "pry-byebug"
38
+ spec.add_development_dependency "debug"
38
39
  spec.add_development_dependency "nokogiri"
39
40
  spec.add_development_dependency "rack-test"
40
41
  end
@@ -26,7 +26,7 @@ class AppVariantTest < Minitest::Test
26
26
  end
27
27
  def test_post_feedback
28
28
  get '/de/page' do # needed to set cookie
29
- last_response.set_cookie(TEST_COOKIE_NAME, :value => Hash.new('anrede' => 'value2'))
29
+ last_response.set_cookie(TEST_COOKIE_NAME, :value => {'anrede' => 'value2'})
30
30
  end
31
31
  clear_cookies
32
32
  set_cookie 'anrede=value2'
@@ -122,7 +122,7 @@ class TestValidator < Minitest::Test
122
122
  end
123
123
  def test_validate_html
124
124
  src = "<SPAN style=\"PADDING-BOTTOM: 4px; LINE-HEIGHT: 1.4em; WHITE-SPACE: normal\"><p class=\"MsoNormal\" style=\"MARGIN: 0cm -0.3pt 0pt 0cm; TEXT-ALIGN: justify\"><span lang=\"DE\" style=\"FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'\">Wirkstoff: Ibuprofenum. </span></p><p class=\"MsoNormal\" style=\"MARGIN: 0cm -0.3pt 0pt 0cm; TEXT-ALIGN: justify\"><span lang=\"DE\" style=\"FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'\">Hilfsstoffe: Conserv.: Sorbinsäure (E 200)</span></p></span>"
125
- expected = "<span style=\"PADDING-BOTTOM: 4px; LINE-HEIGHT: 1.4em; WHITE-SPACE: normal\"><p class=\"MsoNormal\" style=\"MARGIN: 0cm -0.3pt 0pt 0cm; TEXT-ALIGN: justify\"><span lang=\"DE\" style=\"FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'\">Wirkstoff: Ibuprofenum. </span></p><p class=\"MsoNormal\" style=\"MARGIN: 0cm -0.3pt 0pt 0cm; TEXT-ALIGN: justify\"><span lang=\"DE\" style=\"FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'\">Hilfsstoffe: Conserv.: Sorbinsäure (E 200)</span></p></span>"
125
+ expected = "<span style=\"PADDING-BOTTOM: 4px; LINE-HEIGHT: 1.4em; WHITE-SPACE: normal\"><p class=\"MsoNormal\" style=\"MARGIN: 0cm -0.3pt 0pt 0cm; TEXT-ALIGN: justify\"><span lang=\"DE\" style=\"FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'\">Wirkstoff: Ibuprofenum. </span></p>\n<p class=\"MsoNormal\" style=\"MARGIN: 0cm -0.3pt 0pt 0cm; TEXT-ALIGN: justify\"><span lang=\"DE\" style=\"FONT-SIZE: 11pt; FONT-FAMILY: Arial; mso-bidi-font-size: 10.0pt; mso-bidi-font-family: 'Times New Roman'\">Hilfsstoffe: Conserv.: Sorbinsäure (E 200)</span></p></span>"
126
126
  assert_equal expected, @val.validate(:html, src)
127
127
  end
128
128
  def test_validate_html__pre
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sbsm
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.2
4
+ version: 1.6.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaomi Hatakeyama, Zeno R.R. Davatz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-01-25 00:00:00.000000000 Z
11
+ date: 2025-01-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rack
@@ -39,7 +39,7 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: 2.8.0
41
41
  - !ruby/object:Gem::Dependency
42
- name: hpricot
42
+ name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
@@ -193,7 +193,7 @@ dependencies:
193
193
  - !ruby/object:Gem::Version
194
194
  version: '0'
195
195
  - !ruby/object:Gem::Dependency
196
- name: pry-byebug
196
+ name: debug
197
197
  requirement: !ruby/object:Gem::Requirement
198
198
  requirements:
199
199
  - - ">="
@@ -306,7 +306,8 @@ files:
306
306
  homepage: https://github.com/zdavatz/sbsm
307
307
  licenses:
308
308
  - GPL-v2
309
- metadata: {}
309
+ metadata:
310
+ changelog_uri: https://github.com/zdavatz/sbsm/blob/master/ChangeLog
310
311
  post_install_message:
311
312
  rdoc_options: []
312
313
  require_paths: