validate_uri 0.3.0
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 +7 -0
- data/lib/locale/en.yml +4 -0
- data/lib/validate_url.rb +48 -0
- metadata +147 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d656be3b3d4cac3e17f026168b03991d39b03a16
|
4
|
+
data.tar.gz: e47ce7ae9b3abc342a00e21d82715d0470b063f5
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 5e303739a9def5ec4d715bf26907a85e1d19ec6ad7f7ee957ee5c2a704b966afaec14a573ff42f07a8acff151feea70b3e5e4b5842dee00dc8bec3292565286d
|
7
|
+
data.tar.gz: c928e42e5255c0bbab1032057d9b03e5953a82d986f55cac9c5f9559d7bfdacf0e92cb7a8f656de5c33060b09289514504f0429643786691c4864ae91c62a4f7
|
data/lib/locale/en.yml
ADDED
data/lib/validate_url.rb
ADDED
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'active_model'
|
2
|
+
require 'active_support/i18n'
|
3
|
+
I18n.load_path << File.dirname(__FILE__) + '/locale/en.yml'
|
4
|
+
|
5
|
+
module ActiveModel
|
6
|
+
module Validations
|
7
|
+
class UrlValidator < ActiveModel::EachValidator
|
8
|
+
|
9
|
+
def initialize(options)
|
10
|
+
options.reverse_merge!(:schemes => %w(http https))
|
11
|
+
options.reverse_merge!(:message => :url)
|
12
|
+
super(options)
|
13
|
+
end
|
14
|
+
|
15
|
+
def validate_each(record, attribute, value)
|
16
|
+
schemes = [*options.fetch(:schemes)].map(&:to_s)
|
17
|
+
begin
|
18
|
+
uri = URI.parse(value)
|
19
|
+
unless uri && schemes.include?(uri.scheme)
|
20
|
+
record.errors.add(attribute, options.fetch(:message), :value => value)
|
21
|
+
end
|
22
|
+
rescue URI::InvalidURIError
|
23
|
+
record.errors.add(attribute, options.fetch(:message), :value => value)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
module ClassMethods
|
29
|
+
# Validates whether the value of the specified attribute is valid url.
|
30
|
+
#
|
31
|
+
# class Unicorn
|
32
|
+
# include ActiveModel::Validations
|
33
|
+
# attr_accessor :homepage, :ftpsite
|
34
|
+
# validates_url :homepage, :allow_blank => true
|
35
|
+
# validates_url :ftpsite, :schemes => ['ftp']
|
36
|
+
# end
|
37
|
+
# Configuration options:
|
38
|
+
# * <tt>:message</tt> - A custom error message (default is: "is not a valid URL").
|
39
|
+
# * <tt>:allow_nil</tt> - If set to true, skips this validation if the attribute is +nil+ (default is +false+).
|
40
|
+
# * <tt>:allow_blank</tt> - If set to true, skips this validation if the attribute is blank (default is +false+).
|
41
|
+
# * <tt>:schemes</tt> - Array of URI schemes to validate against. (default is +['http', 'https']+)
|
42
|
+
|
43
|
+
def validates_url(*attr_names)
|
44
|
+
validates_with UrlValidator, _merge_attributes(attr_names)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
metadata
ADDED
@@ -0,0 +1,147 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: validate_uri
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Michal Cichra
|
8
|
+
- Tanel Suurhans
|
9
|
+
- Tarmo Lehtpuu
|
10
|
+
autorequire:
|
11
|
+
bindir: bin
|
12
|
+
cert_chain: []
|
13
|
+
date: 2014-09-01 00:00:00.000000000 Z
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
16
|
+
name: activemodel
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirements:
|
19
|
+
- - '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 3.0.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - '>='
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: 3.0.0
|
29
|
+
- !ruby/object:Gem::Dependency
|
30
|
+
name: addressable
|
31
|
+
requirement: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - '>='
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '0'
|
36
|
+
type: :runtime
|
37
|
+
prerelease: false
|
38
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
|
+
requirements:
|
40
|
+
- - '>='
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '0'
|
43
|
+
- !ruby/object:Gem::Dependency
|
44
|
+
name: rspec
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - '>='
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '0'
|
50
|
+
type: :development
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: diff-lcs
|
59
|
+
requirement: !ruby/object:Gem::Requirement
|
60
|
+
requirements:
|
61
|
+
- - '>='
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 1.1.2
|
64
|
+
type: :development
|
65
|
+
prerelease: false
|
66
|
+
version_requirements: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: 1.1.2
|
71
|
+
- !ruby/object:Gem::Dependency
|
72
|
+
name: sqlite3
|
73
|
+
requirement: !ruby/object:Gem::Requirement
|
74
|
+
requirements:
|
75
|
+
- - '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
type: :development
|
79
|
+
prerelease: false
|
80
|
+
version_requirements: !ruby/object:Gem::Requirement
|
81
|
+
requirements:
|
82
|
+
- - '>='
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
version: '0'
|
85
|
+
- !ruby/object:Gem::Dependency
|
86
|
+
name: activerecord
|
87
|
+
requirement: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - '>='
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
type: :development
|
93
|
+
prerelease: false
|
94
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: rake
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - '>='
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
type: :development
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - '>='
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0'
|
113
|
+
description: Library for validating urls in Rails.
|
114
|
+
email:
|
115
|
+
- michal.cichra@gmail.com
|
116
|
+
- tanel.suurhans@perfectline.ee
|
117
|
+
- tarmo.lehtpuu@perfectline.ee
|
118
|
+
executables: []
|
119
|
+
extensions: []
|
120
|
+
extra_rdoc_files: []
|
121
|
+
files:
|
122
|
+
- lib/locale/en.yml
|
123
|
+
- lib/validate_url.rb
|
124
|
+
homepage: http://github.com/mikz/validates_uri
|
125
|
+
licenses: []
|
126
|
+
metadata: {}
|
127
|
+
post_install_message:
|
128
|
+
rdoc_options: []
|
129
|
+
require_paths:
|
130
|
+
- lib
|
131
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - '>='
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - '>='
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '0'
|
141
|
+
requirements: []
|
142
|
+
rubyforge_project:
|
143
|
+
rubygems_version: 2.2.2
|
144
|
+
signing_key:
|
145
|
+
specification_version: 4
|
146
|
+
summary: Library for validating urls in Rails.
|
147
|
+
test_files: []
|