url_scrubber 0.7.17 → 0.7.18

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