url_validator 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +3 -4
- data/lib/url_validator/version.rb +1 -1
- data/lib/url_validator.rb +1 -2
- data/spec/models/user_spec.rb +13 -2
- data/spec/resources/user.rb +1 -1
- data/spec/resources/user_with_blank.rb +2 -2
- data/spec/spec_helper.rb +1 -1
- data/url_validator.gemspec +1 -1
- metadata +5 -33
data/Rakefile
CHANGED
@@ -2,13 +2,12 @@ require 'bundler'
|
|
2
2
|
|
3
3
|
require 'rubygems'
|
4
4
|
require 'rake'
|
5
|
-
require '
|
5
|
+
require 'rspec/core/rake_task'
|
6
6
|
|
7
7
|
Bundler::GemHelper.install_tasks
|
8
8
|
|
9
9
|
|
10
|
-
|
11
|
-
t.
|
12
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
10
|
+
RSpec::Core::RakeTask.new('spec') do |t|
|
11
|
+
t.pattern = 'spec/**/*_spec.rb'
|
13
12
|
end
|
14
13
|
|
data/lib/url_validator.rb
CHANGED
@@ -11,11 +11,10 @@ module ActiveModel
|
|
11
11
|
schemes = options[:schemes] || %w(http https)
|
12
12
|
url_regexp = /^((#{schemes.join('|')}):\/\/){0,1}[a-z0-9]+([a-z0-9\-\.]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/ix
|
13
13
|
preffered_schema = options[:preffered_schema] || "#{schemes.first}://"
|
14
|
-
|
15
14
|
options[:attributes].each do |attribute|
|
16
15
|
value = record.send(attribute).to_s
|
17
16
|
next if value.blank? && (options[:allow_blank] || options[:allow_nil])
|
18
|
-
record.send("#{attribute}=", preffered_schema
|
17
|
+
record.send("#{attribute}=", preffered_schema + value) if !value.start_with?(*schemes)
|
19
18
|
normalized_value = record.send("#{attribute}_normalized")
|
20
19
|
begin
|
21
20
|
uri = Addressable::URI.parse(value)
|
data/spec/models/user_spec.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
1
3
|
require 'spec_helper'
|
2
4
|
|
3
5
|
describe "User" do
|
@@ -123,6 +125,15 @@ describe "User" do
|
|
123
125
|
@user.should be_valid
|
124
126
|
@user.errors[:website].should be_empty
|
125
127
|
end
|
128
|
+
|
129
|
+
it "should return correct data" do
|
130
|
+
@user.website = "website.com"
|
131
|
+
@user.url = "website.com/blog"
|
132
|
+
@user.should be_valid
|
133
|
+
@user.website.should == "http://website.com"
|
134
|
+
@user.url.should == "http://website.com/blog"
|
135
|
+
end
|
136
|
+
|
126
137
|
end
|
127
138
|
|
128
139
|
context "with ActiveRecord" do
|
@@ -222,7 +233,7 @@ describe "User" do
|
|
222
233
|
|
223
234
|
it "should show correct message" do
|
224
235
|
@user.valid?
|
225
|
-
@user.errors[:website].
|
236
|
+
@user.errors[:website].join.should == 'bad bad URL'
|
226
237
|
end
|
227
238
|
end
|
228
239
|
|
@@ -233,7 +244,7 @@ describe "User" do
|
|
233
244
|
|
234
245
|
it "should show correct message" do
|
235
246
|
@user.valid?
|
236
|
-
@user.errors[:website].
|
247
|
+
@user.errors[:website].join.should == 'is not a valid URL'
|
237
248
|
end
|
238
249
|
end
|
239
250
|
|
data/spec/resources/user.rb
CHANGED
data/spec/spec_helper.rb
CHANGED
data/url_validator.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |s|
|
|
15
15
|
s.rubyforge_project = "url_validator"
|
16
16
|
|
17
17
|
s.add_development_dependency "rspec"
|
18
|
-
s.add_development_dependency "ruby-
|
18
|
+
s.add_development_dependency "ruby-debug19"
|
19
19
|
s.add_development_dependency "sqlite3"
|
20
20
|
s.add_dependency "rails", "~>3.0.1"
|
21
21
|
s.add_dependency "addressable"
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: url_validator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 4
|
10
|
-
version: 0.0.4
|
4
|
+
prerelease:
|
5
|
+
version: 0.0.5
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Zdenko Nevrala
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-09 00:00:00 +02:00
|
19
14
|
default_executable:
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,23 +21,17 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 3
|
30
|
-
segments:
|
31
|
-
- 0
|
32
24
|
version: "0"
|
33
25
|
type: :development
|
34
26
|
version_requirements: *id001
|
35
27
|
- !ruby/object:Gem::Dependency
|
36
|
-
name: ruby-
|
28
|
+
name: ruby-debug19
|
37
29
|
prerelease: false
|
38
30
|
requirement: &id002 !ruby/object:Gem::Requirement
|
39
31
|
none: false
|
40
32
|
requirements:
|
41
33
|
- - ">="
|
42
34
|
- !ruby/object:Gem::Version
|
43
|
-
hash: 3
|
44
|
-
segments:
|
45
|
-
- 0
|
46
35
|
version: "0"
|
47
36
|
type: :development
|
48
37
|
version_requirements: *id002
|
@@ -54,9 +43,6 @@ dependencies:
|
|
54
43
|
requirements:
|
55
44
|
- - ">="
|
56
45
|
- !ruby/object:Gem::Version
|
57
|
-
hash: 3
|
58
|
-
segments:
|
59
|
-
- 0
|
60
46
|
version: "0"
|
61
47
|
type: :development
|
62
48
|
version_requirements: *id003
|
@@ -68,11 +54,6 @@ dependencies:
|
|
68
54
|
requirements:
|
69
55
|
- - ~>
|
70
56
|
- !ruby/object:Gem::Version
|
71
|
-
hash: 5
|
72
|
-
segments:
|
73
|
-
- 3
|
74
|
-
- 0
|
75
|
-
- 1
|
76
57
|
version: 3.0.1
|
77
58
|
type: :runtime
|
78
59
|
version_requirements: *id004
|
@@ -84,9 +65,6 @@ dependencies:
|
|
84
65
|
requirements:
|
85
66
|
- - ">="
|
86
67
|
- !ruby/object:Gem::Version
|
87
|
-
hash: 3
|
88
|
-
segments:
|
89
|
-
- 0
|
90
68
|
version: "0"
|
91
69
|
type: :runtime
|
92
70
|
version_requirements: *id005
|
@@ -130,23 +108,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
130
108
|
requirements:
|
131
109
|
- - ">="
|
132
110
|
- !ruby/object:Gem::Version
|
133
|
-
hash: 3
|
134
|
-
segments:
|
135
|
-
- 0
|
136
111
|
version: "0"
|
137
112
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
138
113
|
none: false
|
139
114
|
requirements:
|
140
115
|
- - ">="
|
141
116
|
- !ruby/object:Gem::Version
|
142
|
-
hash: 3
|
143
|
-
segments:
|
144
|
-
- 0
|
145
117
|
version: "0"
|
146
118
|
requirements: []
|
147
119
|
|
148
120
|
rubyforge_project: url_validator
|
149
|
-
rubygems_version: 1.
|
121
|
+
rubygems_version: 1.6.2
|
150
122
|
signing_key:
|
151
123
|
specification_version: 3
|
152
124
|
summary: URL validator
|