virtus-uri 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +7 -0
  2. data/spec/virtus/uri_spec.rb +47 -0
  3. metadata +101 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: aaaf45ad68adcdf258a3557b78585d0fa362a06e
4
+ data.tar.gz: cc6b38131108e133535467b61c661c7ebf475370
5
+ SHA512:
6
+ metadata.gz: 098a74a833d6db1c4846b22e8a6ce24ac16f449ede01ac15645ed68b8526c060585ab597c671e53281ee8030c110184795d6fc501583ec96cf35a227ea7a8e76
7
+ data.tar.gz: 879e36a996c9150c04be46d613857ddef95f5de8eed1f0e5b73af397c3571d6f90e0b3ad5bca9245070dec1e6d68af9f4f2d23aae7f2c9a0c6bff920cf38760c
@@ -0,0 +1,47 @@
1
+ require 'virtus'
2
+ require 'virtus/uri'
3
+
4
+ describe 'Using Virtus::URI' do
5
+
6
+ class Request
7
+ include Virtus
8
+
9
+ attribute :url, URI, default: URI('http://example.com')
10
+ attribute :referer, URI
11
+ attribute :history, Array[URI]
12
+ end
13
+
14
+ it 'coerces http URLs' do
15
+ request = Request.new(url: 'http://example.com')
16
+
17
+ expect(request.url).to be_a(URI::HTTP)
18
+ expect(String(request.url)).to eql('http://example.com')
19
+ end
20
+
21
+ it 'coerces https URLs' do
22
+ request = Request.new(url: 'https://example.com')
23
+
24
+ expect(request.url).to be_a(URI::HTTPS)
25
+ expect(String(request.url)).to eql('https://example.com')
26
+ end
27
+
28
+ it 'coerces generic URLs' do
29
+ request = Request.new(url: 'protocol://example.com')
30
+
31
+ expect(request.url).to be_a(URI::Generic)
32
+ expect(String(request.url)).to eql('protocol://example.com')
33
+ end
34
+
35
+ it 'defaults to nil unless otherwise specified' do
36
+ expect(Request.new.url).to eql(URI('http://example.com'))
37
+ expect(Request.new.referer).to be_nil
38
+ end
39
+
40
+ it 'works with arrays' do
41
+ request = Request.new(history: ['http://example.com'])
42
+
43
+ expect(request.history.first).to be_a(URI::HTTP)
44
+ expect(String(request.history.first)).to eql('http://example.com')
45
+ end
46
+
47
+ end
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: virtus-uri
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Brian Cobb
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-10-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '1.3'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1.3'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - '>='
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rspec
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - '>='
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - '>='
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: virtus
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - <
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - <
67
+ - !ruby/object:Gem::Version
68
+ version: 1.0.0
69
+ description:
70
+ email:
71
+ - bcobb@uwalumni.com
72
+ executables: []
73
+ extensions: []
74
+ extra_rdoc_files: []
75
+ files:
76
+ - spec/virtus/uri_spec.rb
77
+ homepage: https://github.com/bcobb/virtus-uri
78
+ licenses:
79
+ - MIT
80
+ metadata: {}
81
+ post_install_message:
82
+ rdoc_options: []
83
+ require_paths:
84
+ - lib
85
+ required_ruby_version: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - '>='
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ requirements: []
96
+ rubyforge_project:
97
+ rubygems_version: 2.0.6
98
+ signing_key:
99
+ specification_version: 4
100
+ summary: Add a URI attribute type to Virtus.
101
+ test_files: []