dogo 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,7 +19,9 @@ module Dogo
19
19
  get "/shorten" do
20
20
  halt 401, erb(:"401") unless Dogo.api_key == params[:api_key]
21
21
 
22
- if Dogo::Url.valid?(params[:url])
22
+ if Dogo::Url.shortened?(params[:url])
23
+ params[:url]
24
+ elsif Dogo::Url.valid?(params[:url])
23
25
  shortened = Dogo::Url.new(params[:url])
24
26
  shortened.url
25
27
  else
@@ -8,8 +8,14 @@ module Dogo
8
8
  URI::DEFAULT_PARSER.regexp[:ABS_URI] =~ url.to_s
9
9
  end
10
10
 
11
- #
12
- #
11
+ # Check if the given URL is already shortened.
12
+ # This will consider the host name and check if the url is already saved.
13
+ def self.shortened?(url)
14
+ url.start_with?(Dogo.host) &&
15
+ find(url.split("/").last)
16
+ end
17
+
18
+ # Find a URL by its shortened id.
13
19
  def self.find(id)
14
20
  key = Dogo.redis.keys("urls:*:#{id}").first
15
21
  return unless key
@@ -1,3 +1,3 @@
1
1
  module Dogo
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,80 +1,80 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dogo
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.0.3
4
5
  prerelease:
5
- version: 0.0.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Nando Vieira
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-03 00:00:00.000000000 Z
12
+ date: 2012-12-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- type: :runtime
16
15
  name: redis
17
- prerelease: false
18
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
19
18
  requirements:
20
19
  - - ! '>='
21
20
  - !ruby/object:Gem::Version
22
21
  version: '0'
23
- none: false
22
+ type: :runtime
23
+ prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
25
26
  requirements:
26
27
  - - ! '>='
27
28
  - !ruby/object:Gem::Version
28
29
  version: '0'
29
- none: false
30
30
  - !ruby/object:Gem::Dependency
31
- type: :runtime
32
31
  name: sinatra
33
- prerelease: false
34
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
35
34
  requirements:
36
35
  - - ! '>='
37
36
  - !ruby/object:Gem::Version
38
37
  version: '0'
39
- none: false
38
+ type: :runtime
39
+ prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
41
42
  requirements:
42
43
  - - ! '>='
43
44
  - !ruby/object:Gem::Version
44
45
  version: '0'
45
- none: false
46
46
  - !ruby/object:Gem::Dependency
47
- type: :development
48
47
  name: pry
49
- prerelease: false
50
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
51
50
  requirements:
52
51
  - - ! '>='
53
52
  - !ruby/object:Gem::Version
54
53
  version: '0'
55
- none: false
54
+ type: :development
55
+ prerelease: false
56
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
57
58
  requirements:
58
59
  - - ! '>='
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
- none: false
62
62
  - !ruby/object:Gem::Dependency
63
- type: :development
64
63
  name: awesome_print
65
- prerelease: false
66
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
67
66
  requirements:
68
67
  - - ! '>='
69
68
  - !ruby/object:Gem::Version
70
69
  version: '0'
71
- none: false
70
+ type: :development
71
+ prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
73
74
  requirements:
74
75
  - - ! '>='
75
76
  - !ruby/object:Gem::Version
76
77
  version: '0'
77
- none: false
78
78
  description: A Redis-backed shortener url service.
79
79
  email:
80
80
  - fnando.vieira@gmail.com
@@ -103,17 +103,17 @@ rdoc_options: []
103
103
  require_paths:
104
104
  - lib
105
105
  required_ruby_version: !ruby/object:Gem::Requirement
106
+ none: false
106
107
  requirements:
107
108
  - - ! '>='
108
109
  - !ruby/object:Gem::Version
109
110
  version: '0'
110
- none: false
111
111
  required_rubygems_version: !ruby/object:Gem::Requirement
112
+ none: false
112
113
  requirements:
113
114
  - - ! '>='
114
115
  - !ruby/object:Gem::Version
115
116
  version: '0'
116
- none: false
117
117
  requirements: []
118
118
  rubyforge_project:
119
119
  rubygems_version: 1.8.23