validates_url_format_of 0.4.1 → 0.4.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/validates_url_format_of.rb +2 -2
- data/validates_url_format_of.gemspec +11 -14
- metadata +6 -15
- data/Gemfile +0 -29
- data/Rakefile +0 -38
- data/test/helper.rb +0 -23
- data/test/model.rb +0 -5
- data/test/validates_url_format_of_test.rb +0 -74
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f0bb35bbaf41419d8016af89dfcf3dfe5bf2bed6
|
4
|
+
data.tar.gz: a96156e9123f6a541bd93126475256fe1aa5876b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbf098d2ff2795679141fd375e34e5def2e294f8ff5b50565a1cc8987e47053c70625aabab5a377c5492a97d4d5f5269edfdfe6413274a12700f25c4d9ae9ebb
|
7
|
+
data.tar.gz: b2a19ad934bc38d28f51992078ebf6e2cd87d4316d79c56bffa1f20624ea44b6e7dbf25f6b5093c378ad545647415b46cc9bd323df79fc64fc123480293c087e
|
@@ -1,12 +1,12 @@
|
|
1
1
|
require 'active_record'
|
2
2
|
|
3
3
|
module ValidatesUrlFormatOf
|
4
|
-
IPV4_PART = /\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]/
|
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,
|
9
|
+
( (xn--)?(\-|[a-z0-9])+([-.][a-z0-9]+)*\.[a-z]{2,13}\.? | # domain (including Punycode/IDN)...
|
10
10
|
#{IPV4_PART}(\.#{IPV4_PART}){3} ) # or IPv4
|
11
11
|
(:\d{1,5})? # optional port
|
12
12
|
([/?]\S*)? # optional /whatever or ?whatever
|
@@ -1,18 +1,15 @@
|
|
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
|
5
|
-
spec.description
|
6
|
-
spec.email
|
7
|
-
spec.files
|
8
|
-
spec.
|
9
|
-
spec.
|
10
|
-
spec.
|
11
|
-
spec.
|
12
|
-
spec.
|
13
|
-
spec.
|
14
|
-
spec.
|
15
|
-
spec.summary = %q{ActiveRecord URL Validation}
|
16
|
-
spec.test_files = Dir.glob('test/**/*')
|
17
|
-
spec.version = '0.4.1'
|
4
|
+
spec.authors = ['Erik Michels-Ober', 'Henrik Nyh', 'Josh Nichols', 'Nicholas Silva']
|
5
|
+
spec.description = 'Rails plugin that provides a validates_url_format_of method to ActiveRecord models. URLs are validated by regexp.'
|
6
|
+
spec.email = %w(conickal@gmail.com)
|
7
|
+
spec.files = %w(LICENSE.md README.md validates_url_format_of.gemspec) + Dir['lib/**/*.rb']
|
8
|
+
spec.homepage = 'http://github.com/conickal/validates_url_format_of'
|
9
|
+
spec.licenses = %w(MIT)
|
10
|
+
spec.name = 'validates_url_format_of'
|
11
|
+
spec.require_paths = %w(lib)
|
12
|
+
spec.required_ruby_version = '>= 1.9.3'
|
13
|
+
spec.summary = 'ActiveRecord URL Validation'
|
14
|
+
spec.version = '0.4.2'
|
18
15
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: validates_url_format_of
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Erik Michels-Ober
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2017-02-22 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: activerecord
|
@@ -55,14 +55,9 @@ executables: []
|
|
55
55
|
extensions: []
|
56
56
|
extra_rdoc_files: []
|
57
57
|
files:
|
58
|
-
- Gemfile
|
59
58
|
- LICENSE.md
|
60
59
|
- README.md
|
61
|
-
- Rakefile
|
62
60
|
- lib/validates_url_format_of.rb
|
63
|
-
- test/helper.rb
|
64
|
-
- test/model.rb
|
65
|
-
- test/validates_url_format_of_test.rb
|
66
61
|
- validates_url_format_of.gemspec
|
67
62
|
homepage: http://github.com/conickal/validates_url_format_of
|
68
63
|
licenses:
|
@@ -76,20 +71,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
76
71
|
requirements:
|
77
72
|
- - ">="
|
78
73
|
- !ruby/object:Gem::Version
|
79
|
-
version:
|
74
|
+
version: 1.9.3
|
80
75
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
81
76
|
requirements:
|
82
77
|
- - ">="
|
83
78
|
- !ruby/object:Gem::Version
|
84
|
-
version:
|
79
|
+
version: '0'
|
85
80
|
requirements: []
|
86
81
|
rubyforge_project:
|
87
|
-
rubygems_version: 2.
|
82
|
+
rubygems_version: 2.6.10
|
88
83
|
signing_key:
|
89
84
|
specification_version: 4
|
90
85
|
summary: ActiveRecord URL Validation
|
91
|
-
test_files:
|
92
|
-
- test/helper.rb
|
93
|
-
- test/model.rb
|
94
|
-
- test/validates_url_format_of_test.rb
|
95
|
-
has_rdoc:
|
86
|
+
test_files: []
|
data/Gemfile
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
source 'http://rubygems.org'
|
2
|
-
|
3
|
-
gem 'maruku'
|
4
|
-
gem 'rake'
|
5
|
-
gem 'yard'
|
6
|
-
|
7
|
-
platforms :jruby do
|
8
|
-
gem 'activerecord-jdbcsqlite3-adapter'
|
9
|
-
gem 'jdbc-sqlite3'
|
10
|
-
gem 'jruby-openssl'
|
11
|
-
end
|
12
|
-
|
13
|
-
group :test do
|
14
|
-
gem 'backports'
|
15
|
-
gem 'minitest'
|
16
|
-
gem 'rubocop', '>= 0.16', :platforms => [:ruby_19, :ruby_20, :ruby_21]
|
17
|
-
gem 'simplecov', :require => false
|
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'
|
27
|
-
end
|
28
|
-
|
29
|
-
gemspec
|
data/Rakefile
DELETED
@@ -1,38 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
|
3
|
-
require 'bundler'
|
4
|
-
Bundler::GemHelper.install_tasks
|
5
|
-
|
6
|
-
require 'rake/testtask'
|
7
|
-
Rake::TestTask.new(:test) do |test|
|
8
|
-
test.libs << 'lib' << 'test'
|
9
|
-
test.pattern = 'test/**/*_test.rb'
|
10
|
-
test.verbose = true
|
11
|
-
end
|
12
|
-
|
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
|
21
|
-
|
22
|
-
require 'yard'
|
23
|
-
YARD::Rake::YardocTask.new do |task|
|
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'
|
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]
|
data/test/helper.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
$LOAD_PATH.unshift File.expand_path('..', __FILE__)
|
2
|
-
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
3
|
-
require 'simplecov'
|
4
|
-
SimpleCov.start do
|
5
|
-
add_filter '/spec/'
|
6
|
-
minimum_coverage(100)
|
7
|
-
end
|
8
|
-
require 'validates_url_format_of'
|
9
|
-
require 'active_record'
|
10
|
-
require 'model'
|
11
|
-
require 'minitest/autorun'
|
12
|
-
|
13
|
-
unless ActiveRecord::Base.connected?
|
14
|
-
ActiveRecord::Base.establish_connection(:adapter => 'sqlite3', :database => ':memory:')
|
15
|
-
ActiveRecord::Migration.verbose = false
|
16
|
-
ActiveRecord::Schema.define(:version => 0) do
|
17
|
-
create_table :models, :force => true do |t|
|
18
|
-
t.string :homepage
|
19
|
-
t.string :my_UrL_hooray
|
20
|
-
t.string :custom_url
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/test/model.rb
DELETED
@@ -1,74 +0,0 @@
|
|
1
|
-
require File.expand_path('../helper', __FILE__)
|
2
|
-
|
3
|
-
class ValidatesUrlFormatOfTest < MiniTest::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
@model = Model.new
|
6
|
-
end
|
7
|
-
|
8
|
-
def test_should_allow_valid_urls # rubocop:disable MethodLength
|
9
|
-
[
|
10
|
-
'http://example.com',
|
11
|
-
'http://example.com/',
|
12
|
-
'http://www.example.com/',
|
13
|
-
'http://sub.domain.example.com/',
|
14
|
-
'http://bbc.co.uk',
|
15
|
-
'http://example.com?foo',
|
16
|
-
'http://example.com?url=http://example.com',
|
17
|
-
'http://example.com:8000',
|
18
|
-
'http://www.sub.example.com/page.html?foo=bar&baz=%23#anchor',
|
19
|
-
'http://user:pass@example.com',
|
20
|
-
'http://user:@example.com',
|
21
|
-
'http://example.com/~user',
|
22
|
-
'http://example.xy', # Not a real TLD, but we're fine with anything of 2-6 chars
|
23
|
-
'http://example.museum',
|
24
|
-
'http://1.0.255.249',
|
25
|
-
'http://1.2.3.4:80',
|
26
|
-
'HttP://example.com',
|
27
|
-
'https://example.com',
|
28
|
-
'http://xn--rksmrgs-5wao1o.nu', # Punycode
|
29
|
-
'http://example.com.', # Explicit TLD root period
|
30
|
-
'http://example.com./foo',
|
31
|
-
'http://innsofaurora--com.rztrkr.com/accommodations/?rzreturn=1&rzsource=nc'
|
32
|
-
].each do |url|
|
33
|
-
@model.homepage = url
|
34
|
-
@model.save
|
35
|
-
assert @model.errors[:homepage].empty?, "#{url.inspect} should have been accepted"
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
def test_should_reject_invalid_urls # rubocop:disable MethodLength
|
40
|
-
[
|
41
|
-
nil, 1, '', ' ', 'url',
|
42
|
-
'www.example.com',
|
43
|
-
'http://ex ample.com',
|
44
|
-
'http://example.com/foo bar',
|
45
|
-
'http://256.0.0.1',
|
46
|
-
'http://u:u:u@example.com',
|
47
|
-
'http://r?ksmorgas.com',
|
48
|
-
|
49
|
-
# These can all be valid local URLs, but should not be considered valid
|
50
|
-
# for public consumption.
|
51
|
-
'http://example',
|
52
|
-
'http://example.c',
|
53
|
-
'http://example.toolongtld'
|
54
|
-
].each do |url|
|
55
|
-
@model.homepage = url
|
56
|
-
@model.save
|
57
|
-
assert @model.errors[:homepage], "#{url.inspect} should have been rejected"
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def test_different_defaults_based_on_attribute_name
|
62
|
-
@model.homepage = 'x'
|
63
|
-
@model.my_UrL_hooray = 'x'
|
64
|
-
@model.save
|
65
|
-
assert_equal ValidatesUrlFormatOf::DEFAULT_MESSAGE, @model.errors[:homepage].first
|
66
|
-
assert_equal ValidatesUrlFormatOf::DEFAULT_MESSAGE_URL, @model.errors[:my_UrL_hooray].first
|
67
|
-
end
|
68
|
-
|
69
|
-
def test_can_override_defaults
|
70
|
-
@model.custom_url = 'x'
|
71
|
-
@model.save
|
72
|
-
assert_equal 'custom message', @model.errors[:custom_url].first
|
73
|
-
end
|
74
|
-
end
|