short 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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
@@ -30,8 +30,8 @@ class Shortener
30
30
  halt 412, {}, message
31
31
  end
32
32
 
33
- def nope!
34
- halt 404, {}, "No luck."
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
- $redis.multi do
173
- $redis.del "data:#{sha}:#{id}"
174
- $redis.del "expire:#{sha}:#{id}"
175
- $redis.del id
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: true, shortened: id}.to_json
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
- content_type :json
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
@@ -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.is_a?(Net::HTTPPreconditionFailed)
56
+ raise NetworkException.new(response.body) if response.kind_of?(Net::HTTPClientError)
57
57
  response
58
58
  end
59
59
 
@@ -1,6 +1,6 @@
1
1
 
2
2
  class Shortener
3
3
 
4
- VERSION = '0.4.1'
4
+ VERSION = '0.4.2'
5
5
 
6
6
  end
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.1
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-04 00:00:00.000000000 Z
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: &70230588057420 !ruby/object:Gem::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: *70230588057420
24
+ version_requirements: *70223898504320
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: redis-namespace
27
- requirement: &70230592657600 !ruby/object:Gem::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: *70230592657600
35
+ version_requirements: *70223898503760
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: haml
38
- requirement: &70230592656820 !ruby/object:Gem::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: *70230592656820
46
+ version_requirements: *70223898502800
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: turn
49
- requirement: &70230592654100 !ruby/object:Gem::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: *70230592654100
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