short 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/bin/short CHANGED
@@ -35,14 +35,18 @@ def fetch(url)
35
35
  url = url[-6..-1]
36
36
  end
37
37
  fetched = Shortener::Client.new.fetch(url)
38
- puts <<-EOF
38
+ unless fetched['success'] == false
39
+ puts <<-EOF
39
40
  short => #{fetched['shortened']}
40
41
  url => #{fetched['url']}
41
42
  set-count => #{fetched['set-count']}
42
43
  click-count => #{fetched['click-count']}
43
44
  expired => #{fetched['expired']}
44
45
  maxed => #{fetched['maxed']}
45
- EOF
46
+ EOF
47
+ else
48
+ puts fetched['message']
49
+ end
46
50
  end
47
51
 
48
52
  def delete(short)
@@ -280,21 +280,29 @@ class Shortener
280
280
  end
281
281
 
282
282
  #get '/:id.?:format?' do
283
- get %r{\/([a-z0-9]{5})(\.[a-z]{3,}){0,1}}i do
283
+ get %r{\/([a-z0-9]{3,})(\.[a-z]{3,}){0,1}}i do
284
284
  id = params[:captures].first
285
285
  sha = $redis.get(id)
286
- unless sha.nil?
286
+ if sha.nil?
287
+ if (params[:captures].last == '.json')
288
+ content_type :json
289
+ {success: false, message: 'Short not found'}.to_json
290
+ else
291
+ puts "redirecting to default url"
292
+ redirect $default_url
293
+ end
294
+ else
287
295
  key = "data:#{sha}:#{id}"
288
296
  short = $redis.hgetall(key)
289
297
  not_expired = short.has_key?('expire') ? $redis.get(short['expire']) : true
290
298
  not_maxed = !(short['click-count'].to_i >= short['max-clicks'].to_i)
291
299
  short.has_key?('max-clicks') ? not_maxed : not_maxed = true
292
- $redis.hincrby(key, 'click-count', 1) if not_expired && not_maxed
293
300
  if params[:captures].last == '.json'
294
301
  ret = short.merge({expired: not_expired.nil? , maxed: !not_maxed})
295
302
  content_type :json
296
303
  return ret.to_json
297
304
  else
305
+ $redis.hincrby(key, 'click-count', 1) if not_expired && not_maxed
298
306
  if not_expired
299
307
  unless short['s3'] == 'true' && !(short['type'] == 'download')
300
308
  if not_maxed
@@ -309,8 +317,6 @@ class Shortener
309
317
  end # => expired check
310
318
  end # => format
311
319
  end
312
- puts "redirecting to default url"
313
- redirect $default_url
314
320
  end
315
321
 
316
322
  post '/upload.?:format?' do |format|
@@ -1,6 +1,6 @@
1
1
 
2
2
  class Shortener
3
3
 
4
- VERSION = '0.3.1'
4
+ VERSION = '0.3.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.3.1
4
+ version: 0.3.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: 2011-12-23 00:00:00.000000000 Z
12
+ date: 2011-12-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sinatra
16
- requirement: &70366416744540 !ruby/object:Gem::Requirement
16
+ requirement: &70253057029640 !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: *70366416744540
24
+ version_requirements: *70253057029640
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: redis-namespace
27
- requirement: &70366416743560 !ruby/object:Gem::Requirement
27
+ requirement: &70253057028820 !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: *70366416743560
35
+ version_requirements: *70253057028820
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: haml
38
- requirement: &70366416741440 !ruby/object:Gem::Requirement
38
+ requirement: &70253057027960 !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: *70366416741440
46
+ version_requirements: *70253057027960
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: turn
49
- requirement: &70366416737040 !ruby/object:Gem::Requirement
49
+ requirement: &70253057023180 !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: *70366416737040
57
+ version_requirements: *70253057023180
58
58
  description: A (hopefully) easy and handy deployable APIable way to shorten links.
59
59
  email:
60
60
  - jake@jakewilkins.com