vidibus-validate_uri 0.1.0 → 0.1.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.
@@ -1,2 +1,2 @@
1
- --color
1
+ --colour
2
2
  --format nested
data/Gemfile ADDED
@@ -0,0 +1,7 @@
1
+ source "http://gemcutter.org"
2
+ gem "bundler", "~> 1.0.0"
3
+
4
+ gem "rails", "~> 3.0.0"
5
+ gem "rspec", "~> 2.0.0.beta.20"
6
+ gem "rr"
7
+ gem "relevance-rcov"
data/Gemfile.lock ADDED
@@ -0,0 +1,86 @@
1
+ GEM
2
+ remote: http://gemcutter.org/
3
+ specs:
4
+ abstract (1.0.0)
5
+ actionmailer (3.0.0.rc2)
6
+ actionpack (= 3.0.0.rc2)
7
+ mail (~> 2.2.5)
8
+ actionpack (3.0.0.rc2)
9
+ activemodel (= 3.0.0.rc2)
10
+ activesupport (= 3.0.0.rc2)
11
+ builder (~> 2.1.2)
12
+ erubis (~> 2.6.6)
13
+ i18n (~> 0.4.1)
14
+ rack (~> 1.2.1)
15
+ rack-mount (~> 0.6.12)
16
+ rack-test (~> 0.5.4)
17
+ tzinfo (~> 0.3.23)
18
+ activemodel (3.0.0.rc2)
19
+ activesupport (= 3.0.0.rc2)
20
+ builder (~> 2.1.2)
21
+ i18n (~> 0.4.1)
22
+ activerecord (3.0.0.rc2)
23
+ activemodel (= 3.0.0.rc2)
24
+ activesupport (= 3.0.0.rc2)
25
+ arel (~> 1.0.0.rc1)
26
+ tzinfo (~> 0.3.23)
27
+ activeresource (3.0.0.rc2)
28
+ activemodel (= 3.0.0.rc2)
29
+ activesupport (= 3.0.0.rc2)
30
+ activesupport (3.0.0.rc2)
31
+ arel (1.0.0.rc1)
32
+ activesupport (>= 3.0.0.beta)
33
+ builder (2.1.2)
34
+ diff-lcs (1.1.2)
35
+ erubis (2.6.6)
36
+ abstract (>= 1.0.0)
37
+ i18n (0.4.1)
38
+ mail (2.2.5)
39
+ activesupport (>= 2.3.6)
40
+ mime-types
41
+ treetop (>= 1.4.5)
42
+ mime-types (1.16)
43
+ polyglot (0.3.1)
44
+ rack (1.2.1)
45
+ rack-mount (0.6.12)
46
+ rack (>= 1.0.0)
47
+ rack-test (0.5.4)
48
+ rack (>= 1.0)
49
+ rails (3.0.0.rc2)
50
+ actionmailer (= 3.0.0.rc2)
51
+ actionpack (= 3.0.0.rc2)
52
+ activerecord (= 3.0.0.rc2)
53
+ activeresource (= 3.0.0.rc2)
54
+ activesupport (= 3.0.0.rc2)
55
+ bundler (>= 1.0.0.rc.6)
56
+ railties (= 3.0.0.rc2)
57
+ railties (3.0.0.rc2)
58
+ actionpack (= 3.0.0.rc2)
59
+ activesupport (= 3.0.0.rc2)
60
+ rake (>= 0.8.3)
61
+ thor (~> 0.14.0)
62
+ rake (0.8.7)
63
+ relevance-rcov (0.9.2.1)
64
+ rr (1.0.0)
65
+ rspec (2.0.0.beta.20)
66
+ rspec-core (= 2.0.0.beta.20)
67
+ rspec-expectations (= 2.0.0.beta.20)
68
+ rspec-mocks (= 2.0.0.beta.20)
69
+ rspec-core (2.0.0.beta.20)
70
+ rspec-expectations (2.0.0.beta.20)
71
+ diff-lcs (>= 1.1.2)
72
+ rspec-mocks (2.0.0.beta.20)
73
+ thor (0.14.0)
74
+ treetop (1.4.8)
75
+ polyglot (>= 0.3.1)
76
+ tzinfo (0.3.23)
77
+
78
+ PLATFORMS
79
+ ruby
80
+
81
+ DEPENDENCIES
82
+ bundler (~> 1.0.0)
83
+ rails (~> 3.0.0)
84
+ relevance-rcov
85
+ rr
86
+ rspec (~> 2.0.0.beta.20)
data/Rakefile CHANGED
@@ -1,5 +1,8 @@
1
- require 'rubygems'
2
- require 'rake'
1
+ require "rubygems"
2
+ require "rake"
3
+ require "rake/rdoctask"
4
+ require "rspec"
5
+ require "rspec/core/rake_task"
3
6
 
4
7
  begin
5
8
  require 'jeweler'
@@ -11,34 +14,24 @@ begin
11
14
  gem.homepage = "http://github.com/vidibus/vidibus-validate_uri"
12
15
  gem.authors = ["Andre Pankratz"]
13
16
  gem.add_development_dependency "rspec"
14
- gem.add_dependency "rails", ">= 3.0.0.rc"
17
+ gem.add_dependency "rails", "~> 3.0.0"
15
18
  end
16
19
  Jeweler::GemcutterTasks.new
17
20
  rescue LoadError
18
21
  puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
19
22
  end
20
23
 
21
- require "spec/rake/spectask"
22
- Spec::Rake::SpecTask.new(:spec) do |spec|
23
- spec.libs << "lib" << "spec"
24
- spec.spec_files = FileList["spec/**/*_spec.rb"]
25
- end
26
-
27
- Spec::Rake::SpecTask.new(:rcov) do |t|
28
- t.spec_files = FileList["spec/vidibus/**/*_spec.rb"]
24
+ Rspec::Core::RakeTask.new(:rcov) do |t|
25
+ t.pattern = "spec/**/*_spec.rb"
29
26
  t.rcov = true
30
27
  t.rcov_opts = ["--exclude", "^spec,/gems/"]
31
28
  end
32
29
 
33
- task :spec => :check_dependencies
34
- task :default => :spec
35
-
36
- require "rake/rdoctask"
37
30
  Rake::RDocTask.new do |rdoc|
38
31
  version = File.exist?("VERSION") ? File.read("VERSION") : ""
39
32
  rdoc.rdoc_dir = "rdoc"
40
- rdoc.title = "vidibus-remote #{version}"
33
+ rdoc.title = "vidibus-core_extensions #{version}"
41
34
  rdoc.rdoc_files.include("README*")
42
35
  rdoc.rdoc_files.include("lib/**/*.rb")
43
36
  rdoc.options << "--charset=utf-8"
44
- end
37
+ end
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.0
1
+ 0.1.1
@@ -2,4 +2,5 @@ en:
2
2
  activemodel:
3
3
  errors:
4
4
  messages:
5
- invalid_uri: "is not a valid uri"
5
+ invalid_uri: "is invalid"
6
+ inaccessible_uri: "is inaccessible"
@@ -1,29 +1,27 @@
1
1
  require "net/http"
2
+ require "uri"
2
3
 
3
4
  module Vidibus
4
5
  module ValidateUri
5
- module InstanceMethods
6
-
6
+ module Core
7
+
7
8
  PORT_REGEXP = /(([:]\d+)?)/
8
- DOMAIN_REGEXP = /([äüößa-z0-9\-]+\.?)*([äüößa-z0-9]{2,})\.([a-z]{2,}){1,2}/ # TODO: Support more UTF-8 chars
9
+ DOMAIN_REGEXP = /([äüößa-z0-9\-]+\.?)*([äüößa-z0-9]{2,})\.([a-z]{2,}){1,2}/ # TODO: Add real IDN support
9
10
  IP_REGEXP = /(?>(?:1?\d?\d|2[0-4]\d|25[0-5])\.){3}(?:1?\d?\d|2[0-4]\d|25[0-5])(?:\/(?:[12]?\d|3[012])|-(?>(?:1?\d?\d|2[0-4]\d|25[0-5])\.){3}(?:1?\d?\d|2[0-4]\d|25[0-5]))?/
10
- PATH_REGEXP = /(\/[a-z0-1\-_\.\,\/]*)?/
11
- PARAMS_REGEXP = /\/?(\?[a-z0-1\-_\&=]*)?/
11
+ PATH_REGEXP = /(\/[a-z0-9\-_\.\,\/]*)?/
12
+ PARAMS_REGEXP = /\/?(\?[a-z0-9\-_\&=\|]*)?/
12
13
  FRAGMENT_REGEXP = /(\#.*)?/
13
-
14
- # Returns true if given uri is valid.
14
+
15
+ # Returns true if given URI is valid.
15
16
  #
16
- # To restrict to a certain protocol, provide :protocol option:
17
+ # To restrict URI to a certain protocol, provide :protocol option:
17
18
  #
18
19
  # valid_uri?(your_uri, :protocol => :rtmp)
19
20
  # valid_uri?(your_uri, :protocol => [:rtsp, :rtmp])
20
21
  #
21
- # To check if the uri is accessible, provide :accessible option:
22
- #
23
- # valid_uri?(your_uri, :accessible => true)
24
- #
25
22
  def valid_uri?(uri, options = {})
26
23
  return false if uri.blank?
24
+
27
25
  if protocol = options[:protocol]
28
26
  protocol = [protocol] unless p.is_a?(Array)
29
27
  protocol_regexp = /#{protocol.join("|")}/
@@ -31,19 +29,15 @@ module Vidibus
31
29
  protocol_regexp = /\w+/
32
30
  end
33
31
  regexp = /^#{protocol_regexp}:\/\/(localhost|#{DOMAIN_REGEXP}|#{IP_REGEXP})#{PORT_REGEXP}#{PATH_REGEXP}#{PARAMS_REGEXP}#{FRAGMENT_REGEXP}$/i
34
- valid = uri.match(regexp) ? true : false
35
-
36
- if options[:accessible] == true
37
- valid = accessible_uri?(uri)
38
- end
39
-
40
- return valid
32
+ return !!uri.match(regexp)
41
33
  end
42
-
43
- protected
44
-
34
+
45
35
  # Checks if given uri is accessible.
36
+ # The check will not be performed in test environment.
37
+ #
46
38
  def accessible_uri?(uri)
39
+ return false unless valid_uri?(uri)
40
+ return true if ENV["RAILS_ENV"] == "test"
47
41
  _uri = URI.parse(uri)
48
42
  path = _uri.path.blank? ? "/" : _uri.path
49
43
  begin
@@ -55,4 +49,4 @@ module Vidibus
55
49
  end
56
50
  end
57
51
  end
58
- end
52
+ end
@@ -2,8 +2,8 @@ module Vidibus
2
2
  module ValidateUri
3
3
  module Extensions
4
4
  module Controller
5
- include Vidibus::ValidateUri::InstanceMethods
6
-
5
+ include Vidibus::ValidateUri::Core
6
+
7
7
  def self.included(base)
8
8
  base.class_eval do
9
9
  helper_method :validate_uri
@@ -12,4 +12,4 @@ module Vidibus
12
12
  end
13
13
  end
14
14
  end
15
- end
15
+ end
@@ -2,4 +2,4 @@ require "validate_uri/extensions/controller"
2
2
 
3
3
  ActiveSupport.on_load(:action_controller) do
4
4
  include Vidibus::ValidateUri::Extensions::Controller
5
- end
5
+ end
@@ -1,13 +1,17 @@
1
1
  module Vidibus
2
2
  module ValidateUri
3
3
  class UriValidator < ActiveModel::EachValidator
4
- include Vidibus::ValidateUri::InstanceMethods
5
-
4
+ include Vidibus::ValidateUri::Core
5
+
6
6
  def validate_each(record, attribute, value)
7
- unless valid_uri?(value, options)
7
+ if valid_uri?(value, options)
8
+ if options[:accessible] == true and !accessible_uri?(value)
9
+ record.errors.add(attribute, :inaccessible_uri)
10
+ end
11
+ else
8
12
  record.errors.add(attribute, :invalid_uri)
9
13
  end
10
14
  end
11
15
  end
12
16
  end
13
- end
17
+ end
@@ -1,5 +1,5 @@
1
- require "validate_uri/instance_methods"
1
+ require "validate_uri/core"
2
2
  require "validate_uri/extensions"
3
3
  require "validate_uri/uri_validator"
4
4
 
5
- ActiveModel::Validations.send(:include, Vidibus::ValidateUri)
5
+ ActiveModel::Validations.send(:include, Vidibus::ValidateUri)
@@ -1,2 +1,9 @@
1
+ require "rails"
2
+ require "active_support/core_ext"
3
+
1
4
  $:.unshift(File.join(File.dirname(__FILE__), "..", "lib", "vidibus"))
2
- require "validate_uri"
5
+ require "validate_uri"
6
+
7
+ module Vidibus::ValidateUri
8
+ class Engine < ::Rails::Engine; end
9
+ end
data/spec/spec_helper.rb CHANGED
@@ -2,11 +2,11 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
2
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
3
3
 
4
4
  require "rubygems"
5
- require "active_support/core_ext"
6
- require "active_record"
7
- require "action_controller"
5
+ require "rspec"
8
6
  require "vidibus-validate_uri"
9
- require "spec"
10
- require "spec/autorun"
11
7
 
12
- I18n.load_path += Dir[File.join('config', 'locales', '**', '*.{rb,yml}')]
8
+ RSpec.configure do |config|
9
+ config.mock_with :rr
10
+ end
11
+
12
+ I18n.load_path += Dir[File.join('config', 'locales', '**', '*.{rb,yml}')]
@@ -1,4 +1,5 @@
1
1
  require "spec_helper"
2
+ require "action_controller"
2
3
 
3
4
  class Controller < ActionController::Base; end
4
5
 
@@ -6,4 +7,8 @@ describe "ActionController::Base" do
6
7
  it "should respond to #valid_uri?" do
7
8
  Controller.new.should respond_to(:valid_uri?)
8
9
  end
9
- end
10
+
11
+ it "should respond to #accessible_uri?" do
12
+ Controller.new.should respond_to(:accessible_uri?)
13
+ end
14
+ end
@@ -1,10 +1,17 @@
1
1
  require "spec_helper"
2
2
 
3
3
  class Test
4
- include Vidibus::ValidateUri::InstanceMethods
4
+ include Vidibus::ValidateUri::Core
5
5
  end
6
6
 
7
- describe "Vidibus::ValidateUri::InstanceMethods" do
7
+ def in_test_environment(&block)
8
+ e = ENV["RAILS_ENV"]
9
+ ENV["RAILS_ENV"] = "test"
10
+ yield
11
+ ENV["RAILS_ENV"] = e
12
+ end
13
+
14
+ describe "Vidibus::ValidateUri::Core" do
8
15
  let(:test) { Test.new }
9
16
 
10
17
  describe "#valid_uri?" do
@@ -12,172 +19,196 @@ describe "Vidibus::ValidateUri::InstanceMethods" do
12
19
  uri = "http://mydomain.local"
13
20
  test.valid_uri?(uri).should be_true
14
21
  end
15
-
22
+
16
23
  it "should validate http://mydomain.local/" do
17
24
  uri = "http://mydomain.local/"
18
25
  test.valid_uri?(uri).should be_true
19
26
  end
20
-
27
+
21
28
  it "should validate http://mydomain.com" do
22
29
  uri = "http://mydomain.com"
23
30
  test.valid_uri?(uri).should be_true
24
31
  end
25
-
32
+
26
33
  it "should validate http://www.mydomain.com" do
27
34
  uri = "http://www.mydomain.com"
28
35
  test.valid_uri?(uri).should be_true
29
36
  end
30
-
37
+
31
38
  it "should validate http://mydomain.com:8080" do
32
39
  uri = "http://mydomain.com:8080"
33
40
  test.valid_uri?(uri).should be_true
34
41
  end
35
-
42
+
36
43
  it "should validate http://mydomain.local/" do
37
44
  uri = "http://mydomain.local/"
38
45
  test.valid_uri?(uri).should be_true
39
46
  end
40
-
47
+
41
48
  it "should validate http://localhost" do
42
49
  uri = "http://localhost"
43
50
  test.valid_uri?(uri).should be_true
44
51
  end
45
-
52
+
46
53
  it "should validate http://localhost/" do
47
54
  uri = "http://localhost/"
48
55
  test.valid_uri?(uri).should be_true
49
56
  end
50
-
57
+
51
58
  it "should fail for http://localhosts" do
52
59
  uri = "http://localhosts"
53
60
  test.valid_uri?(uri).should be_false
54
61
  end
55
-
62
+
56
63
  it "should validate http://localhost:3000" do
57
64
  uri = "http://localhost:3000"
58
65
  test.valid_uri?(uri).should be_true
59
66
  end
60
-
67
+
61
68
  it "should validate http://localhost:3000/" do
62
69
  uri = "http://localhost:3000/"
63
70
  test.valid_uri?(uri).should be_true
64
71
  end
65
-
72
+
66
73
  it "should validate http://84.191.143.127" do
67
74
  uri = "http://84.191.199.127"
68
75
  test.valid_uri?(uri).should be_true
69
76
  end
70
-
77
+
71
78
  it "should validate http://84.191.143.127/" do
72
79
  uri = "http://84.191.199.127/"
73
80
  test.valid_uri?(uri).should be_true
74
81
  end
75
-
82
+
76
83
  it "should validate http://84.191.143.127:80" do
77
84
  uri = "http://84.191.199.127:80"
78
85
  test.valid_uri?(uri).should be_true
79
86
  end
80
-
87
+
81
88
  it "should fail for http://84.2a.143.127" do
82
89
  uri = "http://84.2a.143.127"
83
90
  test.valid_uri?(uri).should be_false
84
91
  end
85
-
92
+
86
93
  it "should validate https://some.weird.sub.1.mydomain.com:10000" do
87
94
  uri = "https://some.weird.sub.1.mydomain.com:10000"
88
95
  test.valid_uri?(uri).should be_true
89
96
  end
90
-
97
+
91
98
  it "should validate http://mydomain.local?some=params" do
92
99
  uri = "http://mydomain.local?some=params"
93
100
  test.valid_uri?(uri).should be_true
94
101
  end
95
-
102
+
96
103
  it "should validate http://mydomain.local/?some=params" do
97
104
  uri = "http://mydomain.local/?some=params"
98
105
  test.valid_uri?(uri).should be_true
99
106
  end
100
-
107
+
101
108
  it "should validate http://mydomain.local/hello/world" do
102
109
  uri = "http://mydomain.local/hello/world"
103
110
  test.valid_uri?(uri).should be_true
104
111
  end
105
-
112
+
106
113
  it "should fail for http://mydomain.local/hel lo/world" do
107
114
  uri = "http://mydomain.local/hel lo/world"
108
115
  test.valid_uri?(uri).should be_false
109
116
  end
110
-
117
+
111
118
  it "should validate http://mydomain.local/hello/world/" do
112
119
  uri = "http://mydomain.local/hello/world/"
113
120
  test.valid_uri?(uri).should be_true
114
121
  end
115
-
122
+
116
123
  it "should validate http://mydomain.local/hello/world.html" do
117
124
  uri = "http://mydomain.local/hello/world.html"
118
125
  test.valid_uri?(uri).should be_true
119
126
  end
120
-
127
+
121
128
  it "should validate http://mydomain.local/hello/world.html#doit" do
122
129
  uri = "http://mydomain.local/hello/world.html#doit"
123
130
  test.valid_uri?(uri).should be_true
124
131
  end
125
-
132
+
126
133
  it "should validate http://mydomain.local/hello/world?some=params" do
127
134
  uri = "http://mydomain.local/hello/world?some=params"
128
135
  test.valid_uri?(uri).should be_true
129
136
  end
130
-
137
+
131
138
  it "should validate http://mydomain.local/hello/world/?some=params" do
132
139
  uri = "http://mydomain.local/hello/world/?some=params"
133
140
  test.valid_uri?(uri).should be_true
134
141
  end
135
-
142
+
136
143
  it "should validate http://mydomain.local?some=params&another=one" do
137
144
  uri = "http://mydomain.local?some=params&another=one"
138
145
  test.valid_uri?(uri).should be_true
139
146
  end
140
-
147
+
141
148
  it "should validate http://mydomain.local?some=params&another=one#withFragment" do
142
149
  uri = "http://mydomain.local?some=params&another=one#withFragment"
143
150
  test.valid_uri?(uri).should be_true
144
151
  end
145
-
152
+
146
153
  it "should validate https://mydomain.local" do
147
154
  uri = "https://mydomain.local"
148
155
  test.valid_uri?(uri).should be_true
149
156
  end
150
-
157
+
151
158
  it "should validate https://mydomain.local with protocol => :https" do
152
159
  uri = "https://mydomain.local"
153
160
  test.valid_uri?(uri, :protocol => :https).should be_true
154
161
  end
155
-
162
+
156
163
  it "should validate https://mydomain.local with protocol => [:http, :https]" do
157
164
  uri = "https://mydomain.local"
158
165
  test.valid_uri?(uri, :protocol => [:http, :https]).should be_true
159
166
  end
160
-
167
+
161
168
  it "should fail for https://mydomain.local with protocol => :http" do
162
169
  uri = "https://mydomain.local"
163
170
  test.valid_uri?(uri, :protocol => :http).should be_false
164
171
  end
165
-
172
+
166
173
  it "should fail for https://mydomain.local with protocol => [:http, :rtmp]" do
167
174
  uri = "https://mydomain.local"
168
175
  test.valid_uri?(uri, :protocol => [:http, :rtmp]).should be_false
169
176
  end
170
-
171
- describe "with accessibility check" do
172
- it "should validate http://www.vidibus.org" do
173
- uri = "http://www.vidibus.org"
174
- test.valid_uri?(uri, :accessible => true).should be_true
175
- end
176
-
177
- it "should fail for http://www.vidibus.zzz" do
177
+
178
+ it "should validate rtmp://mydomain.local/video/13os/pi1x/1391/sxj9/go.flv?10|12|33 with protocol => [:rtmp, :rtsp]" do
179
+ uri = "rtmp://mydomain.local/video/13os/pi1x/1391/sxj9/go.flv?10|12|33"
180
+ test.valid_uri?(uri, :protocol => [:rtmp, :rtsp]).should be_true
181
+ end
182
+
183
+ it "should validate http://www.ali.baba.döner.de" do
184
+ uri = "http://www.ali.baba.döner.de"
185
+ test.valid_uri?(uri).should be_true
186
+ end
187
+ end
188
+
189
+ describe "#accessible_uri?" do
190
+ it "should validate http://www.vidibus.org" do
191
+ uri = "http://www.vidibus.org"
192
+ test.accessible_uri?(uri).should be_true
193
+ end
194
+
195
+ it "should fail for http://www.vidibus.zzz" do
196
+ uri = "http://www.vidibus.zzz"
197
+ test.accessible_uri?(uri).should be_false
198
+ end
199
+
200
+ it "should not perform accessibility check of syntactically invalid URIs" do
201
+ uri = "http://invalid"
202
+ dont_allow(URI).parse
203
+ test.accessible_uri?(uri).should be_false
204
+ end
205
+
206
+ it "should not perform accessibility check in test environment" do
207
+ in_test_environment do
178
208
  uri = "http://www.vidibus.zzz"
179
- test.valid_uri?(uri, :accessible => true).should be_false
209
+ dont_allow(URI).parse
210
+ test.accessible_uri?(uri).should be_true
180
211
  end
181
212
  end
182
213
  end
183
- end
214
+ end
@@ -2,33 +2,53 @@ require "spec_helper"
2
2
 
3
3
  class Model
4
4
  include ActiveModel::Validations
5
- attr_accessor :uri, :https_uri
5
+ attr_accessor :uri
6
6
  validates :uri, :uri => true
7
- validates :https_uri, :uri => { :protocol => "https", :allow_blank => true }
7
+ end
8
+
9
+ class SecureModel < Model
10
+ validates :uri, :uri => { :protocol => "https" }
11
+ end
12
+
13
+ class AccessibleModel < Model
14
+ validates :uri, :uri => { :accessible => true }
8
15
  end
9
16
 
10
17
  describe "Vidibus::ValidateUri::UriValidator" do
11
18
  let(:model) { Model.new }
12
-
19
+ let(:secure_model) { SecureModel.new }
20
+ let(:acessible_model) { AccessibleModel.new }
21
+
13
22
  it "should be available as URI validator" do
14
23
  Model.validators_on(:uri).first.should be_a_kind_of(Vidibus::ValidateUri::UriValidator)
15
24
  end
16
-
25
+
17
26
  it "should add an error to model if URI is blank" do
18
27
  model.uri = nil
19
28
  model.should be_invalid
20
- model.errors[:uri].should eql(["is not a valid uri"])
29
+ model.errors[:uri].should eql(["is invalid"])
21
30
  end
22
-
31
+
23
32
  it "should add an error to model if URI is invalid" do
24
33
  model.uri = "http://localhosts"
25
34
  model.should be_invalid
26
- model.errors[:uri].should eql(["is not a valid uri"])
35
+ model.errors[:uri].should eql(["is invalid"])
27
36
  end
28
-
29
- it "should allow options" do
30
- model.https_uri = "http://www.vidibus.org"
31
- model.should be_invalid
32
- model.errors[:https_uri].should have(1).error
37
+
38
+ it "should add no error to model if URI is valid" do
39
+ model.uri = "http://vidibus.org"
40
+ model.should be_valid
41
+ end
42
+
43
+ it "should add an error if uri does not match provided protocols" do
44
+ secure_model.uri = "http://www.vidibus.org"
45
+ secure_model.should be_invalid
46
+ secure_model.errors[:uri].should have(1).error
47
+ end
48
+
49
+ it "should add an error to model if URI is inaccessible" do
50
+ acessible_model.uri = "http://vidibus.zzz"
51
+ acessible_model.should be_invalid
52
+ acessible_model.errors[:uri].should eql(["is inaccessible"])
33
53
  end
34
54
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{vidibus-validate_uri}
8
- s.version = "0.1.0"
8
+ s.version = "0.1.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andre Pankratz"]
12
- s.date = %q{2010-08-17}
12
+ s.date = %q{2010-09-23}
13
13
  s.description = %q{It provides validation of URIs (URLs) to ActiveModel records and ActionControllers in Rails 3.}
14
14
  s.email = %q{andre@vidibus.com}
15
15
  s.extra_rdoc_files = [
@@ -19,6 +19,9 @@ Gem::Specification.new do |s|
19
19
  s.files = [
20
20
  ".document",
21
21
  ".gitignore",
22
+ ".rspec",
23
+ "Gemfile",
24
+ "Gemfile.lock",
22
25
  "LICENSE",
23
26
  "README.rdoc",
24
27
  "Rakefile",
@@ -26,14 +29,13 @@ Gem::Specification.new do |s|
26
29
  "config/locales/en.yml",
27
30
  "lib/vidibus-validate_uri.rb",
28
31
  "lib/vidibus/validate_uri.rb",
32
+ "lib/vidibus/validate_uri/core.rb",
29
33
  "lib/vidibus/validate_uri/extensions.rb",
30
34
  "lib/vidibus/validate_uri/extensions/controller.rb",
31
- "lib/vidibus/validate_uri/instance_methods.rb",
32
35
  "lib/vidibus/validate_uri/uri_validator.rb",
33
- "spec/spec.opts",
34
36
  "spec/spec_helper.rb",
35
37
  "spec/vidibus/validate_uri/action_controller_spec.rb",
36
- "spec/vidibus/validate_uri/instance_methods_spec.rb",
38
+ "spec/vidibus/validate_uri/core_spec.rb",
37
39
  "spec/vidibus/validate_uri/uri_validator_spec.rb",
38
40
  "vidibus-validate_uri.gemspec"
39
41
  ]
@@ -45,7 +47,7 @@ Gem::Specification.new do |s|
45
47
  s.test_files = [
46
48
  "spec/spec_helper.rb",
47
49
  "spec/vidibus/validate_uri/action_controller_spec.rb",
48
- "spec/vidibus/validate_uri/instance_methods_spec.rb",
50
+ "spec/vidibus/validate_uri/core_spec.rb",
49
51
  "spec/vidibus/validate_uri/uri_validator_spec.rb"
50
52
  ]
51
53
 
@@ -55,14 +57,14 @@ Gem::Specification.new do |s|
55
57
 
56
58
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
57
59
  s.add_development_dependency(%q<rspec>, [">= 0"])
58
- s.add_runtime_dependency(%q<rails>, [">= 3.0.0.rc"])
60
+ s.add_runtime_dependency(%q<rails>, ["~> 3.0.0"])
59
61
  else
60
62
  s.add_dependency(%q<rspec>, [">= 0"])
61
- s.add_dependency(%q<rails>, [">= 3.0.0.rc"])
63
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
62
64
  end
63
65
  else
64
66
  s.add_dependency(%q<rspec>, [">= 0"])
65
- s.add_dependency(%q<rails>, [">= 3.0.0.rc"])
67
+ s.add_dependency(%q<rails>, ["~> 3.0.0"])
66
68
  end
67
69
  end
68
70
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vidibus-validate_uri
3
3
  version: !ruby/object:Gem::Version
4
- hash: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 0
10
- version: 0.1.0
9
+ - 1
10
+ version: 0.1.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Andre Pankratz
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-08-17 00:00:00 +02:00
18
+ date: 2010-09-23 00:00:00 +02:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -38,15 +38,14 @@ dependencies:
38
38
  requirement: &id002 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
- - - ">="
41
+ - - ~>
42
42
  - !ruby/object:Gem::Version
43
- hash: 7712042
43
+ hash: 7
44
44
  segments:
45
45
  - 3
46
46
  - 0
47
47
  - 0
48
- - rc
49
- version: 3.0.0.rc
48
+ version: 3.0.0
50
49
  type: :runtime
51
50
  version_requirements: *id002
52
51
  description: It provides validation of URIs (URLs) to ActiveModel records and ActionControllers in Rails 3.
@@ -61,6 +60,9 @@ extra_rdoc_files:
61
60
  files:
62
61
  - .document
63
62
  - .gitignore
63
+ - .rspec
64
+ - Gemfile
65
+ - Gemfile.lock
64
66
  - LICENSE
65
67
  - README.rdoc
66
68
  - Rakefile
@@ -68,14 +70,13 @@ files:
68
70
  - config/locales/en.yml
69
71
  - lib/vidibus-validate_uri.rb
70
72
  - lib/vidibus/validate_uri.rb
73
+ - lib/vidibus/validate_uri/core.rb
71
74
  - lib/vidibus/validate_uri/extensions.rb
72
75
  - lib/vidibus/validate_uri/extensions/controller.rb
73
- - lib/vidibus/validate_uri/instance_methods.rb
74
76
  - lib/vidibus/validate_uri/uri_validator.rb
75
- - spec/spec.opts
76
77
  - spec/spec_helper.rb
77
78
  - spec/vidibus/validate_uri/action_controller_spec.rb
78
- - spec/vidibus/validate_uri/instance_methods_spec.rb
79
+ - spec/vidibus/validate_uri/core_spec.rb
79
80
  - spec/vidibus/validate_uri/uri_validator_spec.rb
80
81
  - vidibus-validate_uri.gemspec
81
82
  has_rdoc: true
@@ -115,5 +116,5 @@ summary: Provides an URI validator for Rails 3.
115
116
  test_files:
116
117
  - spec/spec_helper.rb
117
118
  - spec/vidibus/validate_uri/action_controller_spec.rb
118
- - spec/vidibus/validate_uri/instance_methods_spec.rb
119
+ - spec/vidibus/validate_uri/core_spec.rb
119
120
  - spec/vidibus/validate_uri/uri_validator_spec.rb