rails_html_validator 0.1.3 → 0.1.5

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: 9810553a68a02508534bea0f24327bdf5eb8a34b5caa9b918799c42ef2b433ba
4
- data.tar.gz: 2dfb53efedc379cade5de12af36712e1d2962ce6cc63e92e39f65f6f504cc566
3
+ metadata.gz: '049ca0563828727d9d5a378d1547e4775b2a5b5d4f026ba22a06319c901184e4'
4
+ data.tar.gz: 7f1f5d65126c1239b133a3ac00d87598dfa5aadc86a1e7f909b720829c6bd52e
5
5
  SHA512:
6
- metadata.gz: df359163a4e7c0387a96e21c74062ce37219f01abc10f3e6dbce56270fe41da1bafee0fdfb3e779c83d52d7a223bca2545d55882009af0f2f879aa9453e59b3f
7
- data.tar.gz: 27ce574d223b3ba6b1b2484cb801673aedc9a4640b56b206ab633b342caec8c047b89f3b571f57ceeb8c3c5e8d60c8b5204430d854a1fd2ca4978be8a197748a
6
+ metadata.gz: 561811682bc4d1a69ff2d09d087a19d9093c1fe99980e1957ba8b10304fdb00055200f80997907b56ee6e75e4dccb7959001d9b63cb446fe32fb8face52b0d94
7
+ data.tar.gz: 1065a0fe026977bad4665990827ca5a8378a1c0c4cc16a1b66312a6eb442e4b44b4cbdfb80cb250c7f993bced7202aada7a586bd1cef5ffaab752576e407650b
data/Gemfile.lock CHANGED
@@ -1,9 +1,10 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- rails_html_validator (0.1.3)
4
+ rails_html_validator (0.1.5)
5
5
  activemodel (>= 3.0.0)
6
6
  nokogiri
7
+ rspec (~> 3.0)
7
8
 
8
9
  GEM
9
10
  remote: https://rubygems.org/
@@ -55,7 +56,6 @@ DEPENDENCIES
55
56
  bundler (~> 1.16)
56
57
  rails_html_validator!
57
58
  rake (~> 10.0)
58
- rspec (~> 3.0)
59
59
  sqlite3
60
60
 
61
61
  BUNDLED WITH
data/README.md CHANGED
@@ -44,6 +44,12 @@ class Blog
44
44
  end
45
45
  ```
46
46
 
47
+ ### Rspec Matcher
48
+ ```ruby
49
+ RSpec.describe Blog, type: :model do
50
+ it { is_expected.to exclude_html_tag_of :body, tag: :script }
51
+ end
52
+ ```
47
53
 
48
54
  ## Development
49
55
 
@@ -0,0 +1,32 @@
1
+ require "rails_html_validator/version"
2
+ require 'active_model'
3
+ require 'active_support/i18n'
4
+ require 'nokogiri'
5
+ I18n.load_path += Dir[File.dirname(__FILE__) + "/locale/*.yml"]
6
+
7
+ module ActiveModel
8
+ module Validations
9
+ class HtmlValidator < ::ActiveModel::EachValidator
10
+ def initialize(options)
11
+ options.reverse_merge!(exclude_tags: [])
12
+ super(options)
13
+ end
14
+
15
+ def validate_each(record, attribute, value)
16
+ html = ::Nokogiri.HTML(value) {|config| config.strict}
17
+ if html.errors.present?
18
+ record.errors.add(attribute, I18n.t("errors.messages.html"))
19
+ html.errors.each do |err|
20
+ record.errors.add(attribute, err.message)
21
+ end
22
+ end
23
+
24
+ options.fetch(:exclude_tags).each do |tag|
25
+ if html.css(tag.to_s).present?
26
+ record.errors.add(attribute, I18n.t("errors.messages.html_tag", tag: tag))
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
data/lib/matcher.rb ADDED
@@ -0,0 +1,9 @@
1
+ require "nokogiri"
2
+
3
+ RSpec::Matchers.define :exclude_html_tag_of do |value, tag:|
4
+ match do |model|
5
+ html = "<#{tag.to_s}></#{tag.to_s}>"
6
+ model.try("#{value}=", html)
7
+ !model.valid?
8
+ end
9
+ end
@@ -1,3 +1,3 @@
1
1
  module RailsHtmlValidator
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.5"
3
3
  end
@@ -1,32 +1,2 @@
1
- require "rails_html_validator/version"
2
- require 'active_model'
3
- require 'active_support/i18n'
4
- require 'nokogiri'
5
- I18n.load_path += Dir[File.dirname(__FILE__) + "/locale/*.yml"]
6
-
7
- module ActiveModel
8
- module Validations
9
- class HtmlValidator < ::ActiveModel::EachValidator
10
- def initialize(options)
11
- options.reverse_merge!(exclude_tags: [])
12
- super(options)
13
- end
14
-
15
- def validate_each(record, attribute, value)
16
- html = ::Nokogiri.HTML(value) {|config| config.strict}
17
- if html.errors.present?
18
- record.errors.add(attribute, I18n.t("errors.messages.html"))
19
- html.errors.each do |err|
20
- record.errors.add(attribute, err.message)
21
- end
22
- end
23
-
24
- options.fetch(:exclude_tags).each do |tag|
25
- if html.css(tag.to_s).present?
26
- record.errors.add(attribute, I18n.t("errors.messages.html_tag", tag: tag))
27
- end
28
- end
29
- end
30
- end
31
- end
32
- end
1
+ require 'html_validator'
2
+ require 'matcher'
@@ -33,9 +33,9 @@ Gem::Specification.new do |spec|
33
33
 
34
34
  spec.add_dependency "nokogiri"
35
35
  spec.add_dependency "activemodel", ">= 3.0.0"
36
+ spec.add_dependency "rspec", "~> 3.0"
36
37
  spec.add_development_dependency "sqlite3"
37
38
  spec.add_development_dependency "activerecord"
38
39
  spec.add_development_dependency "bundler", "~> 1.16"
39
40
  spec.add_development_dependency "rake", "~> 10.0"
40
- spec.add_development_dependency "rspec", "~> 3.0"
41
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_html_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - kawaoka
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: 3.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '3.0'
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: sqlite3
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +108,6 @@ dependencies:
94
108
  - - "~>"
95
109
  - !ruby/object:Gem::Version
96
110
  version: '10.0'
97
- - !ruby/object:Gem::Dependency
98
- name: rspec
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '3.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '3.0'
111
111
  description: simple rails html validator
112
112
  email:
113
113
  - br2jn51@yahoo.co.jp
@@ -126,8 +126,10 @@ files:
126
126
  - Rakefile
127
127
  - bin/console
128
128
  - bin/setup
129
+ - lib/html_validator.rb
129
130
  - lib/locale/en.yml
130
131
  - lib/locale/ja.yml
132
+ - lib/matcher.rb
131
133
  - lib/rails_html_validator.rb
132
134
  - lib/rails_html_validator/version.rb
133
135
  - rails_html_validator.gemspec