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