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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 2451a419974eaad8d53ffe00cb2a2e0fee54a6aab75614e11fa96cde17115056
4
- data.tar.gz: 2bbf539d069c9a57f4540b333aa2b140e3155d0f166e6b2d37bf4c6a240744b8
3
+ metadata.gz: c8bc068ef8f1412133383186fa08eb639c7517cc98f5bfb125aba4e00ade21fc
4
+ data.tar.gz: b47e2bfd600025189d5af1cadfbc70b63b90cb8263fce2c391067da15672f66f
5
5
  SHA512:
6
- metadata.gz: 419c08d46382598daaacb4a1853b0f9b89cecb5f4229a21563d892e5b68963a48e2cb9bab1a3c51d9dcbe878cfea59dbde2a9820a64c708f2742c26af43b1356
7
- data.tar.gz: fe8268375888fbc1c2b59d6b893ceb77b1da5b6e720d45fe0752a956bec6d3870b6e26ce7583b77552f645e64e8297e5a4948eaee368e2e8b5a0e7aa3449afaf
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.9)
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)
@@ -1,12 +1,14 @@
1
1
  require "rails_html_validator/version"
2
2
  require 'active_model'
3
3
  require 'active_support/i18n'
4
- require 'nokogiri'
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
- if html.errors.present?
19
+ errors = ignore_html5_tag_errors(html.errors)
20
+ if errors.present?
18
21
  record.errors.add(attribute, I18n.t("errors.messages.html"))
19
- html.errors.each do |err|
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
@@ -1,3 +1,3 @@
1
1
  module RailsHtmlValidator
2
- VERSION = "0.1.9"
2
+ VERSION = "0.1.10"
3
3
  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.9
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 00:00:00.000000000 Z
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