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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/locale/en.yml +4 -0
  3. data/lib/validate_url.rb +48 -0
  4. metadata +147 -0
@@ -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
@@ -0,0 +1,4 @@
1
+ en:
2
+ errors:
3
+ messages:
4
+ url: is not a valid URL
@@ -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: []