validates_url_format_of 0.4.1 → 0.4.2
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 +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
|