dogo 0.0.2 → 0.0.3

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