domain_validator 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +14 -3
- data/domain_validator.gemspec +1 -2
- data/lib/domain_validator/validator.rb +3 -3
- data/lib/domain_validator/version.rb +1 -1
- data/spec/domain_validator_spec.rb +2 -2
- data/spec/support/domain_helpers.rb +1 -1
- metadata +2 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a951e441fa4015ac815c9ba5fee96609c22fc8a4
|
4
|
+
data.tar.gz: ae1724471b31badf6553fd783e5da8c5e905a17b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a82193dea64c492105c0b64e847f02f8214f8b2a82a0c7048a1c29b4fe5501280ed60aea2d329e23898b875f1c93e1d5be84947d13176e5b1856ba563d61a502
|
7
|
+
data.tar.gz: 082544a780890525d87962ec301888a8842beb0d7696e6176ad26254142c0d34b1ecb1b08a66fc899b8d2e3085036c87f4c2f956d1f08411cf95d13c88104b13
|
data/README.md
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
# DomainValidator
|
2
2
|
|
3
|
-
ActiveModel vaidations for domains
|
4
|
-
|
5
3
|
[![Build Status](https://travis-ci.org/kdayton-/domain_validator.png?branch=master)](https://travis-ci.org/kdayton-/domain_validator)
|
6
4
|
|
5
|
+
Adds a DomainValidator to ActiveModel, allowing for easy validation of FQDNs
|
6
|
+
|
7
|
+
|
7
8
|
## Installation
|
8
9
|
|
9
10
|
Add this line to your application's Gemfile:
|
@@ -20,7 +21,7 @@ Or install it yourself as:
|
|
20
21
|
|
21
22
|
## Usage
|
22
23
|
|
23
|
-
Add a
|
24
|
+
Add a domain validation to your ActiveModel enabled class
|
24
25
|
|
25
26
|
```ruby
|
26
27
|
class User < ActiveRecord::Base
|
@@ -28,6 +29,16 @@ class User < ActiveRecord::Base
|
|
28
29
|
end
|
29
30
|
```
|
30
31
|
|
32
|
+
## Examples
|
33
|
+
|
34
|
+
```ruby
|
35
|
+
user = User.new :domain => 'mydomain.com'
|
36
|
+
user.valid? # => true
|
37
|
+
|
38
|
+
user.domain = 'invalid*characters.com'
|
39
|
+
user.valid? # => false
|
40
|
+
```
|
41
|
+
|
31
42
|
## Contributing
|
32
43
|
|
33
44
|
1. Fork it
|
data/domain_validator.gemspec
CHANGED
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.email = ["kyle@graphicflash.com"]
|
11
11
|
spec.description = %q{Adds ActiveModel validation for domain format.}
|
12
12
|
spec.summary = %q{Adds ActiveModel validation for domain format.}
|
13
|
-
spec.homepage = ""
|
13
|
+
spec.homepage = "http://github.com/kdayton-/domain_validator"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
16
16
|
spec.files = `git ls-files`.split($/)
|
@@ -18,7 +18,6 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_dependency "public_suffix"
|
22
21
|
spec.add_dependency "activemodel"
|
23
22
|
|
24
23
|
spec.add_development_dependency "bundler"
|
@@ -1,18 +1,18 @@
|
|
1
1
|
require 'active_model'
|
2
2
|
require 'active_model/validator'
|
3
3
|
|
4
|
-
require 'public_suffix'
|
5
|
-
|
6
4
|
module DomainValidator
|
7
5
|
class Validator < ActiveModel::EachValidator
|
8
6
|
|
7
|
+
RE_DOMAIN = %r(^(?=.{1,255}$)[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?(?:\.[0-9A-Za-z](?:(?:[0-9A-Za-z]|-){0,61}[0-9A-Za-z])?)+$)
|
8
|
+
|
9
9
|
def validate_each(record, attr_name, value)
|
10
10
|
valid_domain = is_valid_domain?(value)
|
11
11
|
record.errors.add(attr_name, options[:message] || "is invalid") and return unless valid_domain
|
12
12
|
end
|
13
13
|
|
14
14
|
def is_valid_domain?(domain)
|
15
|
-
|
15
|
+
domain =~ RE_DOMAIN
|
16
16
|
end
|
17
17
|
|
18
18
|
end
|
@@ -71,7 +71,7 @@ describe DomainValidator do
|
|
71
71
|
|
72
72
|
describe "error messages" do
|
73
73
|
context "when the :message option is not defined" do
|
74
|
-
subject { User.new :domain => "
|
74
|
+
subject { User.new :domain => "notadomain" }
|
75
75
|
before { subject.valid? }
|
76
76
|
|
77
77
|
it "should add the default message" do
|
@@ -80,7 +80,7 @@ describe DomainValidator do
|
|
80
80
|
end
|
81
81
|
|
82
82
|
context "when the :message option is defined" do
|
83
|
-
subject { UserWithMessage.new :domain => "
|
83
|
+
subject { UserWithMessage.new :domain => "notadomain" }
|
84
84
|
before { subject.valid? }
|
85
85
|
|
86
86
|
it "should add the customized message" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: domain_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kyle Dayton
|
@@ -10,20 +10,6 @@ bindir: bin
|
|
10
10
|
cert_chain: []
|
11
11
|
date: 2013-06-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: public_suffix
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - '>='
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - '>='
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: activemodel
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,7 +86,7 @@ files:
|
|
100
86
|
- spec/domain_validator_spec.rb
|
101
87
|
- spec/spec_helper.rb
|
102
88
|
- spec/support/domain_helpers.rb
|
103
|
-
homepage:
|
89
|
+
homepage: http://github.com/kdayton-/domain_validator
|
104
90
|
licenses:
|
105
91
|
- MIT
|
106
92
|
metadata: {}
|