woah 1.0.0 → 1.0.1
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.
- checksums.yaml +4 -4
- data/README.md +2 -1
- data/lib/woah/base.rb +16 -8
- data/lib/woah/version.rb +1 -1
- data/test/redirect_test.rb +24 -0
- data/test/{testapp.rb → test_app.rb} +0 -0
- data/test/test_helper.rb +5 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e89d5accb3e229e345ca7252a4cdc38a4858b242c03d213d50fa586595cfc209
|
4
|
+
data.tar.gz: 63eec991362896f918a6b775c16ec7e92d4229333013723996ba21a934399218
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9a75175eab7ec60a0b21eabd1b13773e7d59541d6371e32d08873b1f64b8395fb11d87aec770357ab643c68820b35302af7f035a4e15499651ab4b3ba7c76467
|
7
|
+
data.tar.gz: 832ac1d476cb10c78bf094a76d0674d14db0fed992e0c2715c460473e3d647c490d91bab97162f851ffe18eea4a3ba777efd0d1260dde4427df8d035df844a82
|
data/README.md
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
# Woah!
|
2
2
|
[](https://travis-ci.org/knarka/woah)
|
3
|
+
[](https://coveralls.io/github/knarka/woah?branch=master)
|
3
4
|
[](https://badge.fury.io/rb/woah)
|
4
5
|
|
5
6
|
Woah! is a minimal web framework built on Rack. It's primary design goal is to be unobtrusive, and to just let you do your thing, dude.
|
@@ -7,7 +8,7 @@ Woah! is a minimal web framework built on Rack. It's primary design goal is to b
|
|
7
8
|
## Installation
|
8
9
|
`gem install woah`
|
9
10
|
|
10
|
-
## What
|
11
|
+
## What do I do with it???
|
11
12
|
Simple. You're gonna want to extend Woah::Base, which will be your app's, er, base.
|
12
13
|
|
13
14
|
```ruby
|
data/lib/woah/base.rb
CHANGED
@@ -14,7 +14,7 @@ module Woah
|
|
14
14
|
|
15
15
|
@@before&.call
|
16
16
|
|
17
|
-
response =
|
17
|
+
response = resolve_route env['REQUEST_METHOD'], env['REQUEST_URI']
|
18
18
|
|
19
19
|
@@after&.call
|
20
20
|
|
@@ -25,10 +25,9 @@ module Woah
|
|
25
25
|
response.values
|
26
26
|
end
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
route = @@routes.select { |r| r.matches?(env['REQUEST_METHOD'], env['REQUEST_URI']) }[0]
|
28
|
+
# Resolves and executes a round
|
29
|
+
def resolve_route(method, path)
|
30
|
+
route = @@routes.select { |r| r.matches?(method, path) }[0]
|
32
31
|
|
33
32
|
if route.nil?
|
34
33
|
return {
|
@@ -73,11 +72,20 @@ module Woah
|
|
73
72
|
@@after = action
|
74
73
|
end
|
75
74
|
|
75
|
+
# Redirect to another route.
|
76
|
+
def redirect_to(path, method = 'GET')
|
77
|
+
result = new.resolve_route method, path
|
78
|
+
|
79
|
+
%i[status headers].each do |r|
|
80
|
+
set r, result[r]
|
81
|
+
end
|
82
|
+
|
83
|
+
result[:body]
|
84
|
+
end
|
85
|
+
|
76
86
|
# Override an item in the response.
|
77
87
|
def set(item, content)
|
78
|
-
unless %i[status headers body].include? item
|
79
|
-
raise 'unknown item ' + item.to_s + ', cannot override'
|
80
|
-
end
|
88
|
+
raise "unknown item #{item}, cannot override" unless %i[status headers body].include? item
|
81
89
|
|
82
90
|
@@override[item] = content
|
83
91
|
end
|
data/lib/woah/version.rb
CHANGED
@@ -0,0 +1,24 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
class RedirectTest < MiniTest::Test
|
4
|
+
def setup
|
5
|
+
@env = {}
|
6
|
+
end
|
7
|
+
|
8
|
+
# rubocop:disable Style/GlobalVars
|
9
|
+
def test_redirect
|
10
|
+
TestApp.on '/goback' do
|
11
|
+
$something = 'gone back'
|
12
|
+
TestApp.redirect_to '/'
|
13
|
+
end
|
14
|
+
|
15
|
+
@env['REQUEST_URI'] = '/goback'
|
16
|
+
@env['REQUEST_METHOD'] = 'GET'
|
17
|
+
response = TestApp.call @env
|
18
|
+
|
19
|
+
assert_equal 200, response[0]
|
20
|
+
assert_equal 'hi there!', response[2]
|
21
|
+
assert_equal 'gone back', $something
|
22
|
+
end
|
23
|
+
# rubocop:enable Style/GlobalVars
|
24
|
+
end
|
File without changes
|
data/test/test_helper.rb
CHANGED
@@ -1,16 +1,18 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'simplecov'
|
4
|
+
require 'coveralls'
|
5
|
+
|
6
|
+
SimpleCov.formatter = Coveralls::SimpleCov::Formatter
|
4
7
|
SimpleCov.start do
|
5
|
-
|
8
|
+
add_filter 'test/'
|
6
9
|
end
|
7
|
-
SimpleCov.start
|
8
10
|
|
9
11
|
ENV['RACK_ENV'] = 'test'
|
10
12
|
|
11
13
|
require 'minitest/autorun'
|
12
14
|
|
13
|
-
require_relative '
|
15
|
+
require_relative 'test_app'
|
14
16
|
|
15
17
|
Dir.foreach('test/') do |test|
|
16
18
|
next if ['.', '..'].include? test
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: woah
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- knarka
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -40,8 +40,9 @@ files:
|
|
40
40
|
- test/basic_verbs_test.rb
|
41
41
|
- test/before_after_test.rb
|
42
42
|
- test/on_method_test.rb
|
43
|
+
- test/redirect_test.rb
|
44
|
+
- test/test_app.rb
|
43
45
|
- test/test_helper.rb
|
44
|
-
- test/testapp.rb
|
45
46
|
homepage: https://github.com/knarka/woah
|
46
47
|
licenses:
|
47
48
|
- GPL-3.0
|