short 0.4.1 → 0.4.2
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/bin/short +2 -0
- data/lib/shortener/server.rb +15 -10
- data/lib/shortener/short.rb +1 -1
- data/lib/shortener/version.rb +1 -1
- metadata +10 -10
data/bin/short
CHANGED
@@ -43,6 +43,7 @@ def fetch(url)
|
|
43
43
|
fetched = Shortener.fetch(url)
|
44
44
|
rescue Shortener::NetworkException => boom
|
45
45
|
puts boom.message
|
46
|
+
exit
|
46
47
|
end
|
47
48
|
unless fetched['success'] == false
|
48
49
|
puts <<-EOF
|
@@ -64,6 +65,7 @@ def delete(short)
|
|
64
65
|
del = Shortener.delete(short)
|
65
66
|
rescue Shortener::NetworkException => boom
|
66
67
|
puts boom.message
|
68
|
+
exit
|
67
69
|
end
|
68
70
|
puts "#{short} deleted" if del['success']
|
69
71
|
end
|
data/lib/shortener/server.rb
CHANGED
@@ -30,8 +30,8 @@ class Shortener
|
|
30
30
|
halt 412, {}, message
|
31
31
|
end
|
32
32
|
|
33
|
-
def nope!
|
34
|
-
halt 404, {},
|
33
|
+
def nope!(message = 'No luck.')
|
34
|
+
halt 404, {}, message
|
35
35
|
end
|
36
36
|
|
37
37
|
def base_url
|
@@ -169,10 +169,15 @@ class Shortener
|
|
169
169
|
def delete_short(id)
|
170
170
|
puts "deleting #{id}"
|
171
171
|
puts sha = $redis.get(id)
|
172
|
-
|
173
|
-
$redis.
|
174
|
-
|
175
|
-
|
172
|
+
unless sha.nil?
|
173
|
+
$redis.multi do
|
174
|
+
$redis.del "data:#{sha}:#{id}"
|
175
|
+
$redis.del "expire:#{sha}:#{id}"
|
176
|
+
$redis.del id
|
177
|
+
end
|
178
|
+
true
|
179
|
+
else
|
180
|
+
false
|
176
181
|
end
|
177
182
|
end
|
178
183
|
|
@@ -230,10 +235,11 @@ class Shortener
|
|
230
235
|
end
|
231
236
|
|
232
237
|
get '/delete/:id.:format' do |id, format|
|
233
|
-
delete_short(id)
|
238
|
+
status = delete_short(id)
|
234
239
|
if format == 'json'
|
240
|
+
nope! "Short not found: #{id}" if status == false
|
235
241
|
content_type :json
|
236
|
-
{success:
|
242
|
+
{success: status, shortened: id}.to_json
|
237
243
|
else
|
238
244
|
redirect :index
|
239
245
|
end
|
@@ -262,8 +268,7 @@ class Shortener
|
|
262
268
|
sha = $redis.get(id)
|
263
269
|
if sha.nil?
|
264
270
|
if (params[:captures].last == '.json')
|
265
|
-
|
266
|
-
return {success: false, message: 'Short not found'}.to_json
|
271
|
+
nope! "Short not found: #{id}"
|
267
272
|
else
|
268
273
|
puts "redirecting to default url"
|
269
274
|
redirect $conf.default_url
|
data/lib/shortener/short.rb
CHANGED
@@ -53,7 +53,7 @@ class Shortener
|
|
53
53
|
when :get
|
54
54
|
Net::HTTP.get_response(config.uri_for(end_point, args))
|
55
55
|
end
|
56
|
-
raise NetworkException.new(response.body) if response.
|
56
|
+
raise NetworkException.new(response.body) if response.kind_of?(Net::HTTPClientError)
|
57
57
|
response
|
58
58
|
end
|
59
59
|
|
data/lib/shortener/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: short
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: sinatra
|
16
|
-
requirement: &
|
16
|
+
requirement: &70223898504320 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70223898504320
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: redis-namespace
|
27
|
-
requirement: &
|
27
|
+
requirement: &70223898503760 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70223898503760
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: haml
|
38
|
-
requirement: &
|
38
|
+
requirement: &70223898502800 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70223898502800
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: turn
|
49
|
-
requirement: &
|
49
|
+
requirement: &70223898500040 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70223898500040
|
58
58
|
description: A (hopefully) easy and handy deployable APIable way to shorten links.
|
59
59
|
email:
|
60
60
|
- jake@jakewilkins.com
|