deelay 0.4.0 → 0.5.0

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.
@@ -1,3 +1,4 @@
1
1
  require_relative "deelay/version"
2
2
  require_relative "deelay/homepage"
3
+ require_relative "deelay/utils"
3
4
  require_relative "deelay/app"
@@ -1,20 +1,20 @@
1
1
  require 'sinatra/async'
2
- require 'uri'
3
2
 
4
3
  module Deelay
5
4
  class App < Sinatra::Base
6
5
  register Sinatra::Async
7
6
 
8
7
  aget '/:delay' do
9
- url = parse_query_string(request.query_string)
8
+ url = Deelay.parse_query_string(request.query_string)
10
9
  redirect_to url
11
10
  end
12
11
 
13
12
  aget '/:delay/*' do
14
- url = parse_splat(params[:splat].join("/"), request.query_string)
13
+ url = Deelay.parse_splat(params[:splat].join("/"), request.query_string)
15
14
  redirect_to url
16
15
  end
17
16
 
17
+
18
18
  private
19
19
 
20
20
  def redirect_to(url, delay = 0)
@@ -23,35 +23,13 @@ module Deelay
23
23
  end
24
24
  end
25
25
 
26
- def parse_query_string(raw_url)
27
- escaped_url = ::URI.unescape(raw_url)
28
- raise ArgumentError, "Missing URL" if request.query_string.empty?
29
-
30
- url = (escaped_url =~ /^http:\/\// ? "" : "http://") + escaped_url
31
- return url
32
- end
33
-
34
- def parse_splat(raw_url, query_string)
35
- raise ArgumentError, "Missing URL" if raw_url.empty?
36
-
37
- escaped_url = ::URI.unescape(raw_url)
38
- url = escaped_url.sub(/^http:\//, "http://")
39
- url = "http://" + url if url !~ /^http:\/\//
40
- url << "?" + request.query_string if !request.query_string.empty?
41
- return url
42
- end
43
-
44
- def validate(url)
45
- raise "Invalid url" if url =~ /(http|https)/
46
- end
47
-
48
26
  # swaps env when testing
49
27
  def em_async_schedule
50
- o = self.class.environment
28
+ env = self.class.environment
51
29
  self.class.set :environment, :normal
52
30
  async_schedule { yield }
53
31
  ensure
54
- self.class.set :environment, o
32
+ self.class.set :environment, env
55
33
  end
56
34
  end
57
35
  end
@@ -0,0 +1,21 @@
1
+ require 'uri'
2
+
3
+ module Deelay
4
+ def self.parse_query_string(query_string)
5
+ escaped_url = ::URI.unescape(query_string)
6
+ raise ArgumentError, "Missing URL" if query_string.empty?
7
+
8
+ url = (escaped_url =~ /^http:\/\// ? "" : "http://") + escaped_url
9
+ return url
10
+ end
11
+
12
+ def self.parse_splat(splat, query_string)
13
+ raise ArgumentError, "Missing URL" if splat.empty?
14
+
15
+ escaped_url = ::URI.unescape(splat)
16
+ url = escaped_url.sub(/^http:\//, "http://")
17
+ url = "http://" + url if url !~ /^http:\/\//
18
+ url << "?" + query_string if !query_string.empty?
19
+ return url
20
+ end
21
+ end
@@ -1,3 +1,3 @@
1
1
  module Deelay
2
- VERSION = "0.4.0"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deelay
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -30,6 +30,7 @@ files:
30
30
  - lib/deelay.rb
31
31
  - lib/deelay/app.rb
32
32
  - lib/deelay/homepage.rb
33
+ - lib/deelay/utils.rb
33
34
  - lib/deelay/version.rb
34
35
  - test/test_deelay_app.rb
35
36
  homepage: http://deelay.me
@@ -46,7 +47,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
46
47
  version: '0'
47
48
  segments:
48
49
  - 0
49
- hash: -2051873546142903568
50
+ hash: 3462912169812269730
50
51
  required_rubygems_version: !ruby/object:Gem::Requirement
51
52
  none: false
52
53
  requirements: