url_scrubber 0.7.17 → 0.7.18

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,3 @@
1
1
  module UrlScrubber
2
- VERSION = "0.7.17"
2
+ VERSION = "0.7.18"
3
3
  end
data/lib/url_scrubber.rb CHANGED
@@ -14,7 +14,9 @@ module UrlScrubber
14
14
  url = m[1]
15
15
  url.sub!(/^https/, 'http')
16
16
  url.sub!(/\/+$/, '')
17
+ url.sub!(/;+$/, '')
17
18
  url.sub!('#!/', '')
19
+ url.sub!('%27', '\'')
18
20
  url = downcase_domain(url)
19
21
  remove_www!(url)
20
22
  remove_html_tags!(url)
@@ -69,7 +71,7 @@ module UrlScrubber
69
71
  when :twitter
70
72
  !!url.match(%r{^http://twitter\.com/[\w_]+$})
71
73
  when :facebook
72
- !!url.match(%r{^http://facebook\.com/(profile\.php?id=\d+|[\w_\.-]+)$})
74
+ !!url.match(%r{^http://facebook\.com/(profile\.php?id=\d+|[\w_\.-]+)$}) || !!url.match(%r{^http://facebook\.com/groups/[\w_\.-]+$})
73
75
  when :linkedin
74
76
  !!url.match(%r{^http://linkedin\.com/pub/[\w-]+/[\w]+/[\w]+/[\w]+$}) || !!url.match(%r{^http://linkedin\.com/in/[\w_-]+$}) || !!url.match(%r{^http://linkedin\.com/(company/[\w_-]+|profile/view\?id=\d+)$}) || !!url.match(%r{^http://linkedin\.com/(groups\?gid=[0-9]+)$}) || !!url.match(%r{^http://linkedin\.com/(groups/[\w_-]+)$})
75
77
  when :google
@@ -83,7 +85,7 @@ module UrlScrubber
83
85
  when :yelp
84
86
  !!url.match(%r{^http://yelp\.com/[\w_-]+$})
85
87
  when :vimeo
86
- !!url.match(%r{^http://vimeo\.com/[\w_-]+$}) && !url.match(%r{/\d+$})
88
+ (!!url.match(%r{^http://vimeo\.com/[\w_-]+$}) && !url.match(%r{/\d+$})) || !!url.match(%r{^http://vimeo\.com/groups/[\w_\.-]+$})
87
89
  when :instagram
88
90
  !!url.match(%r{^http://instagram\.com/[\w_]+$})
89
91
  when :tumblr
@@ -156,6 +158,7 @@ module UrlScrubber
156
158
  when :google then return sc_google_plus(url)
157
159
  when :flickr then return sc_flickr(url)
158
160
  when :pinterest then return sc_pinterest(url)
161
+ when :vimeo then return sc_vimeo(url)
159
162
  when :yelp then return sc_yelp(url)
160
163
  end
161
164
 
@@ -193,6 +196,19 @@ module UrlScrubber
193
196
  url
194
197
  end
195
198
 
199
+ def self.sc_vimeo(url)
200
+ if url.include?('vimeo.com/groups/')
201
+ groups_partition = url.partition('vimeo.com/groups/')
202
+ slash_partition = groups_partition[2].partition('/') if groups_partition[2] && groups_partition[2] != ""
203
+ if slash_partition[2] && slash_partition[2] != ""
204
+ # need to trim off the sub page stuff
205
+ garbage = slash_partition[1] + slash_partition[2]
206
+ url.gsub!(garbage, '')
207
+ end
208
+ end
209
+ url
210
+ end
211
+
196
212
  def self.sc_twitter(url)
197
213
  url.sub!('twitter.com/@', 'twitter.com/')
198
214
 
@@ -212,6 +228,8 @@ module UrlScrubber
212
228
  def self.sc_facebook(url)
213
229
  if url.match("/media/albums") || url.match("/media/set")
214
230
  url = url.match('\&') ? url.split('&',2)[0] : url
231
+ elsif url.include?('facebook.com/groups/')
232
+ url = drop_url_query!(url)
215
233
  elsif url.include?("facebook.com/profile.php?id=")
216
234
  # these were being truncated, they do redirect, but typically a 301 response is generated
217
235
  # so the url is returned unchanged. Better than truncation.
metadata CHANGED
@@ -1,7 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: url_scrubber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.17
4
+ version: 0.7.18
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Colin Langton
@@ -11,11 +12,12 @@ authors:
11
12
  autorequire:
12
13
  bindir: bin
13
14
  cert_chain: []
14
- date: 2014-04-18 00:00:00.000000000 Z
15
+ date: 2014-04-23 00:00:00.000000000 Z
15
16
  dependencies:
16
17
  - !ruby/object:Gem::Dependency
17
18
  name: rspec
18
19
  requirement: !ruby/object:Gem::Requirement
20
+ none: false
19
21
  requirements:
20
22
  - - ~>
21
23
  - !ruby/object:Gem::Version
@@ -23,6 +25,7 @@ dependencies:
23
25
  type: :development
24
26
  prerelease: false
25
27
  version_requirements: !ruby/object:Gem::Requirement
28
+ none: false
26
29
  requirements:
27
30
  - - ~>
28
31
  - !ruby/object:Gem::Version
@@ -30,6 +33,7 @@ dependencies:
30
33
  - !ruby/object:Gem::Dependency
31
34
  name: guard-bundler
32
35
  requirement: !ruby/object:Gem::Requirement
36
+ none: false
33
37
  requirements:
34
38
  - - ~>
35
39
  - !ruby/object:Gem::Version
@@ -37,6 +41,7 @@ dependencies:
37
41
  type: :development
38
42
  prerelease: false
39
43
  version_requirements: !ruby/object:Gem::Requirement
44
+ none: false
40
45
  requirements:
41
46
  - - ~>
42
47
  - !ruby/object:Gem::Version
@@ -44,6 +49,7 @@ dependencies:
44
49
  - !ruby/object:Gem::Dependency
45
50
  name: guard-rspec
46
51
  requirement: !ruby/object:Gem::Requirement
52
+ none: false
47
53
  requirements:
48
54
  - - ~>
49
55
  - !ruby/object:Gem::Version
@@ -51,6 +57,7 @@ dependencies:
51
57
  type: :development
52
58
  prerelease: false
53
59
  version_requirements: !ruby/object:Gem::Requirement
60
+ none: false
54
61
  requirements:
55
62
  - - ~>
56
63
  - !ruby/object:Gem::Version
@@ -58,6 +65,7 @@ dependencies:
58
65
  - !ruby/object:Gem::Dependency
59
66
  name: terminal-notifier-guard
60
67
  requirement: !ruby/object:Gem::Requirement
68
+ none: false
61
69
  requirements:
62
70
  - - ! '>='
63
71
  - !ruby/object:Gem::Version
@@ -65,6 +73,7 @@ dependencies:
65
73
  type: :development
66
74
  prerelease: false
67
75
  version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
68
77
  requirements:
69
78
  - - ! '>='
70
79
  - !ruby/object:Gem::Version
@@ -72,6 +81,7 @@ dependencies:
72
81
  - !ruby/object:Gem::Dependency
73
82
  name: rb-fsevent
74
83
  requirement: !ruby/object:Gem::Requirement
84
+ none: false
75
85
  requirements:
76
86
  - - ~>
77
87
  - !ruby/object:Gem::Version
@@ -79,6 +89,7 @@ dependencies:
79
89
  type: :development
80
90
  prerelease: false
81
91
  version_requirements: !ruby/object:Gem::Requirement
92
+ none: false
82
93
  requirements:
83
94
  - - ~>
84
95
  - !ruby/object:Gem::Version
@@ -107,26 +118,27 @@ files:
107
118
  - url_scrubber.gemspec
108
119
  homepage: http://brandle.net
109
120
  licenses: []
110
- metadata: {}
111
121
  post_install_message:
112
122
  rdoc_options: []
113
123
  require_paths:
114
124
  - lib
115
125
  required_ruby_version: !ruby/object:Gem::Requirement
126
+ none: false
116
127
  requirements:
117
128
  - - ! '>='
118
129
  - !ruby/object:Gem::Version
119
130
  version: '0'
120
131
  required_rubygems_version: !ruby/object:Gem::Requirement
132
+ none: false
121
133
  requirements:
122
134
  - - ! '>='
123
135
  - !ruby/object:Gem::Version
124
136
  version: '0'
125
137
  requirements: []
126
138
  rubyforge_project:
127
- rubygems_version: 2.1.10
139
+ rubygems_version: 1.8.21
128
140
  signing_key:
129
- specification_version: 4
141
+ specification_version: 3
130
142
  summary: Clean up URLs.
131
143
  test_files:
132
144
  - spec/spec_helper.rb
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: e190bb6babd544c3006ff9bee363274dea493f2d
4
- data.tar.gz: 50ebc61fd01d8408814bafeeeea00731b1a1c29e
5
- SHA512:
6
- metadata.gz: 01a0987592be80476d471f1d68a8eb2ae3aa04cc488419360f5391814b2bca8a7a8391538fb2f0d6eb06bd2174673f63e5daff1aedd2e945084f6026238bed5f
7
- data.tar.gz: d7bd07dee54435ded935405975f88feeeaba2ea8f0590d20474da8f9c65c2a57015abe9b9ab832850bfa1c7b57721964395324096173570ada1936590c2c15c2