validates_url_format_of 0.4.0 → 0.4.1
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/Gemfile +11 -1
- data/LICENSE.md +1 -1
- data/Rakefile +22 -3
- data/lib/validates_url_format_of.rb +9 -7
- data/test/helper.rb +7 -6
- data/test/validates_url_format_of_test.rb +10 -11
- data/validates_url_format_of.gemspec +9 -9
- metadata +16 -22
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: b3da9effc4336d14d3fcb83603fd2ce960053c94
|
4
|
+
data.tar.gz: 347857fd8cceeb25541252bc6b1912acf4165056
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ef0d57fa3ea78d62750171924434bcc176990c95dea3d4cbbe8ec8ddbdad2c50f07dd8a06e39ab2d324d47615877b228c0fb814d3013664a9a0b77b6cb5b9869
|
7
|
+
data.tar.gz: 435547d77d56fdc8899d78795566de08c3366d2d4aadb6586513372e46f261952b4d081efdecea6be3e2edcd48539a1c93975c0379c91a807b323b5d8345fe7b
|
data/Gemfile
CHANGED
@@ -5,15 +5,25 @@ gem 'rake'
|
|
5
5
|
gem 'yard'
|
6
6
|
|
7
7
|
platforms :jruby do
|
8
|
-
gem 'jruby-openssl'
|
9
8
|
gem 'activerecord-jdbcsqlite3-adapter'
|
10
9
|
gem 'jdbc-sqlite3'
|
10
|
+
gem 'jruby-openssl'
|
11
11
|
end
|
12
12
|
|
13
13
|
group :test do
|
14
|
+
gem 'backports'
|
14
15
|
gem 'minitest'
|
16
|
+
gem 'rubocop', '>= 0.16', :platforms => [:ruby_19, :ruby_20, :ruby_21]
|
15
17
|
gem 'simplecov', :require => false
|
16
18
|
gem 'sqlite3', :platforms => :ruby
|
19
|
+
gem 'yardstick'
|
20
|
+
end
|
21
|
+
|
22
|
+
platforms :rbx do
|
23
|
+
gem 'racc'
|
24
|
+
gem 'rubinius-coverage', '~> 2.0'
|
25
|
+
gem 'rubysl', '~> 2.0'
|
26
|
+
gem 'rubysl-json', '~> 2.0'
|
17
27
|
end
|
18
28
|
|
19
29
|
gemspec
|
data/LICENSE.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
Copyright (c) 2008 Erik
|
1
|
+
Copyright (c) 2008 Erik Michels-Ober, Henrik Nyh, Josh Nichols, Nicholas Silva.
|
2
2
|
|
3
3
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4
4
|
of this software and associated documentation files (the "Software"), to deal
|
data/Rakefile
CHANGED
@@ -10,10 +10,29 @@ Rake::TestTask.new(:test) do |test|
|
|
10
10
|
test.verbose = true
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
begin
|
14
|
+
require 'rubocop/rake_task'
|
15
|
+
Rubocop::RakeTask.new
|
16
|
+
rescue LoadError
|
17
|
+
task :rubocop do
|
18
|
+
$stderr.puts 'Rubocop is disabled'
|
19
|
+
end
|
20
|
+
end
|
14
21
|
|
15
22
|
require 'yard'
|
16
23
|
YARD::Rake::YardocTask.new do |task|
|
17
|
-
task.files = [
|
18
|
-
task.options = [
|
24
|
+
task.files = %w[LICENSE.md lib/**/*.rb]
|
25
|
+
task.options = %w[--markup markdown]
|
26
|
+
end
|
27
|
+
|
28
|
+
require 'yardstick/rake/measurement'
|
29
|
+
Yardstick::Rake::Measurement.new do |measurement|
|
30
|
+
measurement.output = 'measurement/report.txt'
|
19
31
|
end
|
32
|
+
|
33
|
+
require 'yardstick/rake/verify'
|
34
|
+
Yardstick::Rake::Verify.new do |verify|
|
35
|
+
verify.threshold = 50.0
|
36
|
+
end
|
37
|
+
|
38
|
+
task :default => [:test, :rubocop, :verify_measurements]
|
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
|
3
3
|
module ValidatesUrlFormatOf
|
4
|
-
|
4
|
+
IPV4_PART = /\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]/ # 0-255
|
5
5
|
REGEXP = %r{
|
6
6
|
\A
|
7
7
|
https?:// # http:// or https://
|
8
8
|
([^\s:@]+:[^\s:@]*@)? # optional username:pw@
|
9
|
-
( (xn--)?[a-z0-9]+([-.][a-z0-9]+)*\.[a-z]{2,6}\.? | # domain (including Punycode/IDN)...
|
10
|
-
#{
|
9
|
+
( (xn--)?(\-|[a-z0-9])+([-.][a-z0-9]+)*\.[a-z]{2,6}\.? | # domain (including Punycode/IDN)...
|
10
|
+
#{IPV4_PART}(\.#{IPV4_PART}){3} ) # or IPv4
|
11
11
|
(:\d{1,5})? # optional port
|
12
12
|
([/?]\S*)? # optional /whatever or ?whatever
|
13
13
|
\Z
|
@@ -17,14 +17,16 @@ module ValidatesUrlFormatOf
|
|
17
17
|
DEFAULT_MESSAGE_URL = 'does not appear to be valid'
|
18
18
|
|
19
19
|
def validates_url_format_of(*attr_names)
|
20
|
-
options = {
|
21
|
-
|
22
|
-
|
20
|
+
options = {
|
21
|
+
:allow_nil => false,
|
22
|
+
:allow_blank => false,
|
23
|
+
:with => REGEXP,
|
24
|
+
}
|
23
25
|
options = options.merge(attr_names.pop) if attr_names.last.is_a?(Hash)
|
24
26
|
|
25
27
|
attr_names.each do |attr_name|
|
26
28
|
message = attr_name.to_s.match(/(_|\b)URL(_|\b)/i) ? DEFAULT_MESSAGE_URL : DEFAULT_MESSAGE
|
27
|
-
validates_format_of(attr_name, {
|
29
|
+
validates_format_of(attr_name, {:message => message}.merge(options))
|
28
30
|
end
|
29
31
|
end
|
30
32
|
end
|
data/test/helper.rb
CHANGED
@@ -1,13 +1,14 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
$LOAD_PATH.unshift File.expand_path('..', __FILE__)
|
2
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
3
3
|
require 'simplecov'
|
4
|
-
SimpleCov.start
|
4
|
+
SimpleCov.start do
|
5
|
+
add_filter '/spec/'
|
6
|
+
minimum_coverage(100)
|
7
|
+
end
|
5
8
|
require 'validates_url_format_of'
|
6
9
|
require 'active_record'
|
7
10
|
require 'model'
|
8
|
-
require 'minitest/
|
9
|
-
|
10
|
-
MiniTest::Unit.autorun
|
11
|
+
require 'minitest/autorun'
|
11
12
|
|
12
13
|
unless ActiveRecord::Base.connected?
|
13
14
|
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
|
@@ -1,12 +1,11 @@
|
|
1
1
|
require File.expand_path('../helper', __FILE__)
|
2
2
|
|
3
3
|
class ValidatesUrlFormatOfTest < MiniTest::Unit::TestCase
|
4
|
-
|
5
4
|
def setup
|
6
5
|
@model = Model.new
|
7
6
|
end
|
8
7
|
|
9
|
-
def test_should_allow_valid_urls
|
8
|
+
def test_should_allow_valid_urls # rubocop:disable MethodLength
|
10
9
|
[
|
11
10
|
'http://example.com',
|
12
11
|
'http://example.com/',
|
@@ -28,7 +27,8 @@ class ValidatesUrlFormatOfTest < MiniTest::Unit::TestCase
|
|
28
27
|
'https://example.com',
|
29
28
|
'http://xn--rksmrgs-5wao1o.nu', # Punycode
|
30
29
|
'http://example.com.', # Explicit TLD root period
|
31
|
-
'http://example.com./foo'
|
30
|
+
'http://example.com./foo',
|
31
|
+
'http://innsofaurora--com.rztrkr.com/accommodations/?rzreturn=1&rzsource=nc'
|
32
32
|
].each do |url|
|
33
33
|
@model.homepage = url
|
34
34
|
@model.save
|
@@ -36,20 +36,20 @@ class ValidatesUrlFormatOfTest < MiniTest::Unit::TestCase
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
def test_should_reject_invalid_urls
|
39
|
+
def test_should_reject_invalid_urls # rubocop:disable MethodLength
|
40
40
|
[
|
41
|
-
nil, 1,
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
nil, 1, '', ' ', 'url',
|
42
|
+
'www.example.com',
|
43
|
+
'http://ex ample.com',
|
44
|
+
'http://example.com/foo bar',
|
45
45
|
'http://256.0.0.1',
|
46
46
|
'http://u:u:u@example.com',
|
47
47
|
'http://r?ksmorgas.com',
|
48
48
|
|
49
49
|
# These can all be valid local URLs, but should not be considered valid
|
50
50
|
# for public consumption.
|
51
|
-
|
52
|
-
|
51
|
+
'http://example',
|
52
|
+
'http://example.c',
|
53
53
|
'http://example.toolongtld'
|
54
54
|
].each do |url|
|
55
55
|
@model.homepage = url
|
@@ -71,5 +71,4 @@ class ValidatesUrlFormatOfTest < MiniTest::Unit::TestCase
|
|
71
71
|
@model.save
|
72
72
|
assert_equal 'custom message', @model.errors[:custom_url].first
|
73
73
|
end
|
74
|
-
|
75
74
|
end
|
@@ -1,18 +1,18 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.add_dependency 'activerecord', ['>= 3.1', '< 5']
|
3
3
|
spec.add_development_dependency 'bundler', '~> 1.0'
|
4
|
-
spec.authors = [
|
4
|
+
spec.authors = ['Erik Michels-Ober', 'Henrik Nyh', 'Josh Nichols', 'Nicholas Silva']
|
5
5
|
spec.description = %q{Rails plugin that provides a validates_url_format_of method to ActiveRecord models. URLs are validated by regexp.}
|
6
|
-
spec.email = [
|
7
|
-
spec.files = %w
|
8
|
-
spec.files += Dir.glob(
|
9
|
-
spec.files += Dir.glob(
|
6
|
+
spec.email = %w[conickal@gmail.com]
|
7
|
+
spec.files = %w[LICENSE.md README.md Gemfile Rakefile validates_url_format_of.gemspec]
|
8
|
+
spec.files += Dir.glob('lib/**/*.rb')
|
9
|
+
spec.files += Dir.glob('test/**/*')
|
10
10
|
spec.homepage = 'http://github.com/conickal/validates_url_format_of'
|
11
|
-
spec.licenses = [
|
11
|
+
spec.licenses = %w[MIT]
|
12
12
|
spec.name = 'validates_url_format_of'
|
13
|
-
spec.require_paths = [
|
13
|
+
spec.require_paths = %w[lib]
|
14
14
|
spec.required_rubygems_version = '>= 1.3.5'
|
15
15
|
spec.summary = %q{ActiveRecord URL Validation}
|
16
|
-
spec.test_files = Dir.glob(
|
17
|
-
spec.version = '0.4.
|
16
|
+
spec.test_files = Dir.glob('test/**/*')
|
17
|
+
spec.version = '0.4.1'
|
18
18
|
end
|
metadata
CHANGED
@@ -1,55 +1,50 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_url_format_of
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
5
|
-
prerelease:
|
4
|
+
version: 0.4.1
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
|
-
- Erik
|
7
|
+
- Erik Michels-Ober
|
9
8
|
- Henrik Nyh
|
10
9
|
- Josh Nichols
|
11
10
|
- Nicholas Silva
|
12
11
|
autorequire:
|
13
12
|
bindir: bin
|
14
13
|
cert_chain: []
|
15
|
-
date:
|
14
|
+
date: 2014-01-02 00:00:00.000000000 Z
|
16
15
|
dependencies:
|
17
16
|
- !ruby/object:Gem::Dependency
|
18
17
|
name: activerecord
|
19
18
|
requirement: !ruby/object:Gem::Requirement
|
20
|
-
none: false
|
21
19
|
requirements:
|
22
|
-
- -
|
20
|
+
- - ">="
|
23
21
|
- !ruby/object:Gem::Version
|
24
22
|
version: '3.1'
|
25
|
-
- - <
|
23
|
+
- - "<"
|
26
24
|
- !ruby/object:Gem::Version
|
27
25
|
version: '5'
|
28
26
|
type: :runtime
|
29
27
|
prerelease: false
|
30
28
|
version_requirements: !ruby/object:Gem::Requirement
|
31
|
-
none: false
|
32
29
|
requirements:
|
33
|
-
- -
|
30
|
+
- - ">="
|
34
31
|
- !ruby/object:Gem::Version
|
35
32
|
version: '3.1'
|
36
|
-
- - <
|
33
|
+
- - "<"
|
37
34
|
- !ruby/object:Gem::Version
|
38
35
|
version: '5'
|
39
36
|
- !ruby/object:Gem::Dependency
|
40
37
|
name: bundler
|
41
38
|
requirement: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
39
|
requirements:
|
44
|
-
- - ~>
|
40
|
+
- - "~>"
|
45
41
|
- !ruby/object:Gem::Version
|
46
42
|
version: '1.0'
|
47
43
|
type: :development
|
48
44
|
prerelease: false
|
49
45
|
version_requirements: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
46
|
requirements:
|
52
|
-
- - ~>
|
47
|
+
- - "~>"
|
53
48
|
- !ruby/object:Gem::Version
|
54
49
|
version: '1.0'
|
55
50
|
description: Rails plugin that provides a validates_url_format_of method to ActiveRecord
|
@@ -60,39 +55,38 @@ executables: []
|
|
60
55
|
extensions: []
|
61
56
|
extra_rdoc_files: []
|
62
57
|
files:
|
58
|
+
- Gemfile
|
63
59
|
- LICENSE.md
|
64
60
|
- README.md
|
65
|
-
- Gemfile
|
66
61
|
- Rakefile
|
67
|
-
- validates_url_format_of.gemspec
|
68
62
|
- lib/validates_url_format_of.rb
|
69
63
|
- test/helper.rb
|
70
64
|
- test/model.rb
|
71
65
|
- test/validates_url_format_of_test.rb
|
66
|
+
- validates_url_format_of.gemspec
|
72
67
|
homepage: http://github.com/conickal/validates_url_format_of
|
73
68
|
licenses:
|
74
69
|
- MIT
|
70
|
+
metadata: {}
|
75
71
|
post_install_message:
|
76
72
|
rdoc_options: []
|
77
73
|
require_paths:
|
78
74
|
- lib
|
79
75
|
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
-
none: false
|
81
76
|
requirements:
|
82
|
-
- -
|
77
|
+
- - ">="
|
83
78
|
- !ruby/object:Gem::Version
|
84
79
|
version: '0'
|
85
80
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
86
|
-
none: false
|
87
81
|
requirements:
|
88
|
-
- -
|
82
|
+
- - ">="
|
89
83
|
- !ruby/object:Gem::Version
|
90
84
|
version: 1.3.5
|
91
85
|
requirements: []
|
92
86
|
rubyforge_project:
|
93
|
-
rubygems_version:
|
87
|
+
rubygems_version: 2.2.0
|
94
88
|
signing_key:
|
95
|
-
specification_version:
|
89
|
+
specification_version: 4
|
96
90
|
summary: ActiveRecord URL Validation
|
97
91
|
test_files:
|
98
92
|
- test/helper.rb
|