postrank-uri 1.0.15 → 1.0.16

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.
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