short 0.3.1 → 0.3.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
@@ -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