postrank-uri 1.0.15 → 1.0.16

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -1,9 +1,6 @@
1
1
  require 'bundler'
2
2
  Bundler::GemHelper.install_tasks
3
3
 
4
- require 'rspec'
5
4
  require 'rspec/core/rake_task'
6
5
 
7
- Rspec::Core::RakeTask.new do |t|
8
- t.rspec_opts = '--color'
9
- end
6
+ Rspec::Core::RakeTask.new(:spec)
@@ -164,13 +164,13 @@ module PostRank
164
164
  u = parse(uri, opts)
165
165
  u = embedded(u)
166
166
 
167
- if q = u.query_values(:notation => :flat_array)
167
+ if q = u.query_values(Array)
168
168
  q.delete_if { |k,v| C18N[:global].include?(k) }
169
169
  q.delete_if { |k,v| C18N[:hosts].find {|r,p| u.host =~ r && p.include?(k) } }
170
170
  end
171
171
  u.query_values = q
172
172
 
173
- if u.host == 'twitter.com' && u.fragment && u.fragment.match(/^!(.*)/)
173
+ if u.host =~ /^(mobile\.)?twitter\.com$/ && u.fragment && u.fragment.match(/^!(.*)/)
174
174
  u.fragment = nil
175
175
  u.path = $1
176
176
  end
@@ -222,6 +222,11 @@ module PostRank
222
222
  uri.normalize!
223
223
  end
224
224
 
225
+ def valid?(uri)
226
+ Domainatrix.parse(uri)
227
+ true
228
+ rescue
229
+ false
230
+ end
225
231
  end
226
232
  end
227
-
@@ -49,4 +49,6 @@
49
49
  allthingsd.com:
50
50
  - mod
51
51
  waomarketing.com:
52
- - nucrss
52
+ - nucrss
53
+ youtube.com:
54
+ - feature
@@ -1,5 +1,5 @@
1
1
  module PostRank
2
2
  module URI
3
- VERSION = "1.0.15"
3
+ VERSION = "1.0.16"
4
4
  end
5
5
  end
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.rubyforge_project = "postrank-uri"
16
16
 
17
- s.add_dependency "addressable", ">= 2.2.3"
17
+ s.add_dependency "addressable", ">= 2.3.0"
18
18
  s.add_dependency "domainatrix"
19
19
  s.add_dependency "nokogiri"
20
20
  s.add_development_dependency "rspec"
@@ -61,3 +61,6 @@
61
61
 
62
62
  - - http://www.waomarketing.com/blog/at-internet-white-paper-series/?nucrss=1
63
63
  - http://www.waomarketing.com/blog/at-internet-white-paper-series
64
+
65
+ - - http://www.youtube.com/watch?v=RRBoPveyETc&feature=player_embedded
66
+ - http://www.youtube.com/watch?v=RRBoPveyETc
@@ -1,4 +1,7 @@
1
1
  require 'bundler'
2
2
  Bundler.setup
3
3
 
4
- require 'lib/postrank-uri'
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib')), __FILE__)
6
+
7
+ require 'postrank-uri'
@@ -226,6 +226,10 @@ describe PostRank::URI do
226
226
  e('test http://twitter.com/#!/igrigorik').should include('http://twitter.com/igrigorik')
227
227
  end
228
228
 
229
+ it "should extract mobile twitter links with hashbangs" do
230
+ e('test http://mobile.twitter.com/#!/_mm6').should include('http://mobile.twitter.com/_mm6')
231
+ end
232
+
229
233
  it "should handle a URL that comes after text without a space" do
230
234
  e("text:http://spn.tw/tfnLT").should include("http://spn.tw/tfnLT")
231
235
  e("text;http://spn.tw/tfnLT").should include("http://spn.tw/tfnLT")
@@ -333,4 +337,14 @@ describe PostRank::URI do
333
337
  PostRank::URI.parse('xmpp:void(0);').scheme.should == 'xmpp'
334
338
  end
335
339
  end
340
+
341
+ context 'valid?' do
342
+ it 'marks www.test.c as invalid' do
343
+ PostRank::URI.valid?('http://www.test.c').should be_false
344
+ end
345
+
346
+ it 'marks www.test.com as valid' do
347
+ PostRank::URI.valid?('http://www.test.com').should be_true
348
+ end
349
+ end
336
350
  end
metadata CHANGED
@@ -1,91 +1,87 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: postrank-uri
3
- version: !ruby/object:Gem::Version
4
- hash: 9
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.16
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 0
9
- - 15
10
- version: 1.0.15
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ilya Grigorik
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-05-19 00:00:00 -04:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2012-09-28 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: addressable
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 1
30
- segments:
31
- - 2
32
- - 2
33
- - 3
34
- version: 2.2.3
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.3.0
35
22
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: domainatrix
39
23
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.3.0
30
+ - !ruby/object:Gem::Dependency
31
+ name: domainatrix
32
+ requirement: !ruby/object:Gem::Requirement
41
33
  none: false
42
- requirements:
43
- - - ">="
44
- - !ruby/object:Gem::Version
45
- hash: 3
46
- segments:
47
- - 0
48
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
49
38
  type: :runtime
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
52
- name: nokogiri
53
39
  prerelease: false
54
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: nokogiri
48
+ requirement: !ruby/object:Gem::Requirement
55
49
  none: false
56
- requirements:
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- hash: 3
60
- segments:
61
- - 0
62
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
63
54
  type: :runtime
64
- version_requirements: *id003
65
- - !ruby/object:Gem::Dependency
66
- name: rspec
67
55
  prerelease: false
68
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rspec
64
+ requirement: !ruby/object:Gem::Requirement
69
65
  none: false
70
- requirements:
71
- - - ">="
72
- - !ruby/object:Gem::Version
73
- hash: 3
74
- segments:
75
- - 0
76
- version: "0"
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
77
70
  type: :development
78
- version_requirements: *id004
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
79
78
  description: URI normalization, c18n, escaping, and extraction
80
- email:
79
+ email:
81
80
  - ilya@igvita.com
82
81
  executables: []
83
-
84
82
  extensions: []
85
-
86
83
  extra_rdoc_files: []
87
-
88
- files:
84
+ files:
89
85
  - .gitignore
90
86
  - .rspec
91
87
  - Gemfile
@@ -98,41 +94,31 @@ files:
98
94
  - spec/c18n_hosts.yml
99
95
  - spec/helper.rb
100
96
  - spec/postrank-uri_spec.rb
101
- has_rdoc: true
102
97
  homepage: http://github.com/postrank-labs/postrank-uri
103
98
  licenses: []
104
-
105
99
  post_install_message:
106
100
  rdoc_options: []
107
-
108
- require_paths:
101
+ require_paths:
109
102
  - lib
110
- required_ruby_version: !ruby/object:Gem::Requirement
103
+ required_ruby_version: !ruby/object:Gem::Requirement
111
104
  none: false
112
- requirements:
113
- - - ">="
114
- - !ruby/object:Gem::Version
115
- hash: 3
116
- segments:
117
- - 0
118
- version: "0"
119
- required_rubygems_version: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ! '>='
107
+ - !ruby/object:Gem::Version
108
+ version: '0'
109
+ required_rubygems_version: !ruby/object:Gem::Requirement
120
110
  none: false
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- hash: 3
125
- segments:
126
- - 0
127
- version: "0"
111
+ requirements:
112
+ - - ! '>='
113
+ - !ruby/object:Gem::Version
114
+ version: '0'
128
115
  requirements: []
129
-
130
116
  rubyforge_project: postrank-uri
131
- rubygems_version: 1.6.2
117
+ rubygems_version: 1.8.24
132
118
  signing_key:
133
119
  specification_version: 3
134
120
  summary: URI normalization, c18n, escaping, and extraction
135
- test_files:
121
+ test_files:
136
122
  - spec/c18n_hosts.yml
137
123
  - spec/helper.rb
138
124
  - spec/postrank-uri_spec.rb