rails_html_validator 0.1.9 → 0.1.10
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/Gemfile.lock +4 -1
- data/lib/html_validator.rb +16 -3
- data/lib/rails_html_validator/version.rb +1 -1
- data/rails_html_validator.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8bc068ef8f1412133383186fa08eb639c7517cc98f5bfb125aba4e00ade21fc
|
4
|
+
data.tar.gz: b47e2bfd600025189d5af1cadfbc70b63b90cb8263fce2c391067da15672f66f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e8f105b3a3540e8e76536dbfcad3086633de914b4aae29c8d8cfad55cf937e58e586a0235bb7c3d05bd6f23f43f3daf366d8143fcd3e93e3c239301600e62fb2
|
7
|
+
data.tar.gz: 2845619b63af8e0287793d7541779f3738d3edb17e1cdb71b1883a23d6214b1aa61dcb3f5b3d4148429deeb60391665acd431d7350b0c2e362b2b910660ce126
|
data/Gemfile.lock
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
rails_html_validator (0.1.
|
4
|
+
rails_html_validator (0.1.10)
|
5
5
|
activemodel (>= 3.0.0)
|
6
6
|
nokogiri
|
7
|
+
nokogumbo
|
7
8
|
rspec (~> 3.0)
|
8
9
|
|
9
10
|
GEM
|
@@ -29,6 +30,8 @@ GEM
|
|
29
30
|
minitest (5.11.3)
|
30
31
|
nokogiri (1.8.2)
|
31
32
|
mini_portile2 (~> 2.3.0)
|
33
|
+
nokogumbo (1.5.0)
|
34
|
+
nokogiri
|
32
35
|
rake (10.5.0)
|
33
36
|
rspec (3.7.0)
|
34
37
|
rspec-core (~> 3.7.0)
|
data/lib/html_validator.rb
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
require "rails_html_validator/version"
|
2
2
|
require 'active_model'
|
3
3
|
require 'active_support/i18n'
|
4
|
-
require '
|
4
|
+
require 'nokogumbo'
|
5
5
|
I18n.load_path += Dir[File.dirname(__FILE__) + "/locale/*.yml"]
|
6
6
|
|
7
7
|
module ActiveModel
|
8
8
|
module Validations
|
9
9
|
class HtmlValidator < ::ActiveModel::EachValidator
|
10
|
+
HTML5_TAGS = %w(section nav article aside header footer figure figcaption time mark ruby rt rp wbr embed video audio source canvas datalist optgroup option textarea keygen output progress meter details summary command menu )
|
11
|
+
|
10
12
|
def initialize(options)
|
11
13
|
options.reverse_merge!(exclude_tags: [])
|
12
14
|
super(options)
|
@@ -14,9 +16,10 @@ module ActiveModel
|
|
14
16
|
|
15
17
|
def validate_each(record, attribute, value)
|
16
18
|
html = ::Nokogiri.HTML(value) {|config| config.strict}
|
17
|
-
|
19
|
+
errors = ignore_html5_tag_errors(html.errors)
|
20
|
+
if errors.present?
|
18
21
|
record.errors.add(attribute, I18n.t("errors.messages.html"))
|
19
|
-
|
22
|
+
errors.each do |err|
|
20
23
|
record.errors.add(attribute, err.message)
|
21
24
|
end
|
22
25
|
end
|
@@ -27,6 +30,16 @@ module ActiveModel
|
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
33
|
+
|
34
|
+
def ignore_html5_tag_errors errors
|
35
|
+
checker = HTML5_TAGS.map { |tag| "Tag #{tag} invalid"}
|
36
|
+
regexp = Regexp.union()
|
37
|
+
errors.select do |error|
|
38
|
+
regexp.match(error.message).blank?
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
|
30
43
|
end
|
31
44
|
end
|
32
45
|
end
|
@@ -32,6 +32,7 @@ Gem::Specification.new do |spec|
|
|
32
32
|
spec.require_paths = ["lib"]
|
33
33
|
|
34
34
|
spec.add_dependency "nokogiri"
|
35
|
+
spec.add_dependency "nokogumbo"
|
35
36
|
spec.add_dependency "activemodel", ">= 3.0.0"
|
36
37
|
spec.add_dependency "rspec", "~> 3.0"
|
37
38
|
spec.add_development_dependency "sqlite3"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rails_html_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.10
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kawaoka
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: nokogiri
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: nokogumbo
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: activemodel
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|