hobby 0.0.11 → 0.0.12
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/hobby.gemspec +1 -1
- data/lib/hobby/helpers.rb +34 -0
- data/lib/hobby.rb +7 -29
- data/readme.adoc +1 -1
- data/spec/app_spec.rb +8 -0
- data/spec/apps/Status.rb +4 -0
- metadata +5 -4
- data/CHANGELOG.md +0 -53
- data/Rakefile +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2d2d480ccdf4a60839072589bfaa58309a00bf4a
|
4
|
+
data.tar.gz: e69b2439193e69c2f53adc780dac6666f71a01e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff31f1f11344235dec85b8d021008a1b89a18ab65b8e4743add83b8e8e8e3104af567c8bdb01a5e84d6a78c5c9248a95272e3de7f3ac88fc6c60180a3e7266ee
|
7
|
+
data.tar.gz: 723ba318c713c9d21c44c3bf8397e48a7204a562c7294545aedd7a26634a402887269878618cc61e91b3a2dcbe3454a0aa590dfde07f1cc51532c0d8123a0f2f
|
data/hobby.gemspec
CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = 'hobby'
|
7
|
-
spec.version = '0.0.
|
7
|
+
spec.version = '0.0.12'
|
8
8
|
spec.authors = ['Anatoly Chernow']
|
9
9
|
spec.email = ['chertoly@gmail.com']
|
10
10
|
spec.summary = %q{A minimal DSL over rack}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Hobby
|
2
|
+
module Helpers
|
3
|
+
attr_reader :env, :route
|
4
|
+
|
5
|
+
def request
|
6
|
+
@request ||= self.class.request.new env
|
7
|
+
end
|
8
|
+
|
9
|
+
def response
|
10
|
+
@response ||= self.class.response.new
|
11
|
+
end
|
12
|
+
|
13
|
+
def my
|
14
|
+
route.params
|
15
|
+
end
|
16
|
+
|
17
|
+
def halt
|
18
|
+
throw :halt, response
|
19
|
+
end
|
20
|
+
|
21
|
+
def not_found
|
22
|
+
response.status = 404
|
23
|
+
end
|
24
|
+
|
25
|
+
def content_type type
|
26
|
+
mime_type = Rack::Mime::MIME_TYPES.fetch ".#{type}"
|
27
|
+
response.add_header 'Content-Type', mime_type
|
28
|
+
end
|
29
|
+
|
30
|
+
def status status
|
31
|
+
response.status = status
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/hobby.rb
CHANGED
@@ -2,6 +2,7 @@ require 'rack'
|
|
2
2
|
require 'forwardable'
|
3
3
|
|
4
4
|
require 'hobby/router'
|
5
|
+
require 'hobby/helpers'
|
5
6
|
|
6
7
|
module Hobby
|
7
8
|
App = Hobby # to stay compatible with old code
|
@@ -31,6 +32,8 @@ module Hobby
|
|
31
32
|
end
|
32
33
|
end
|
33
34
|
|
35
|
+
include Helpers
|
36
|
+
|
34
37
|
def call env
|
35
38
|
dup.handle env
|
36
39
|
end
|
@@ -39,39 +42,14 @@ module Hobby
|
|
39
42
|
def handle env
|
40
43
|
catch :halt do
|
41
44
|
@route = self.class.router.route_for (@env = env)
|
42
|
-
|
43
|
-
body = route ? (instance_exec &route) : not_found
|
44
|
-
response.write body
|
45
|
-
|
45
|
+
fill_body
|
46
46
|
response
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
50
50
|
private
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
@request ||= self.class.request.new env
|
55
|
-
end
|
56
|
-
|
57
|
-
def response
|
58
|
-
@response ||= self.class.response.new
|
59
|
-
end
|
60
|
-
|
61
|
-
def my
|
62
|
-
route.params
|
63
|
-
end
|
64
|
-
|
65
|
-
def halt
|
66
|
-
throw :halt, response
|
67
|
-
end
|
68
|
-
|
69
|
-
def not_found
|
70
|
-
response.status = 404
|
71
|
-
end
|
72
|
-
|
73
|
-
def content_type type
|
74
|
-
mime_type = Rack::Mime::MIME_TYPES.fetch ".#{type}"
|
75
|
-
response.add_header 'Content-Type', mime_type
|
51
|
+
def fill_body
|
52
|
+
body = route ? (instance_exec &route) : not_found
|
53
|
+
response.write body
|
76
54
|
end
|
77
55
|
end
|
data/readme.adoc
CHANGED
data/spec/app_spec.rb
CHANGED
@@ -163,5 +163,13 @@ describe Hobby::App do
|
|
163
163
|
assert { last_response.headers['Content-Type'] == 'application/javascript' }
|
164
164
|
end
|
165
165
|
end
|
166
|
+
|
167
|
+
describe Status do
|
168
|
+
it do
|
169
|
+
get '/'
|
170
|
+
assert { last_response.status == 201 }
|
171
|
+
assert { last_response.body == 'Created.' }
|
172
|
+
end
|
173
|
+
end
|
166
174
|
end
|
167
175
|
end
|
data/spec/apps/Status.rb
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hobby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.12
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anatoly Chernow
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-07-
|
11
|
+
date: 2017-07-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -33,12 +33,11 @@ extra_rdoc_files: []
|
|
33
33
|
files:
|
34
34
|
- ".gitignore"
|
35
35
|
- ".travis.yml"
|
36
|
-
- CHANGELOG.md
|
37
36
|
- Gemfile
|
38
37
|
- LICENSE
|
39
|
-
- Rakefile
|
40
38
|
- hobby.gemspec
|
41
39
|
- lib/hobby.rb
|
40
|
+
- lib/hobby/helpers.rb
|
42
41
|
- lib/hobby/router.rb
|
43
42
|
- lib/hobby/router/route.rb
|
44
43
|
- lib/hobby/router/routes.rb
|
@@ -52,6 +51,7 @@ files:
|
|
52
51
|
- spec/apps/Map.rb
|
53
52
|
- spec/apps/Nested.rb
|
54
53
|
- spec/apps/OneRouteRouter.rb
|
54
|
+
- spec/apps/Status.rb
|
55
55
|
- spec/apps/Use.rb
|
56
56
|
- spec/apps/WithoutPath.rb
|
57
57
|
- spec/helper.rb
|
@@ -91,6 +91,7 @@ test_files:
|
|
91
91
|
- spec/apps/Map.rb
|
92
92
|
- spec/apps/Nested.rb
|
93
93
|
- spec/apps/OneRouteRouter.rb
|
94
|
+
- spec/apps/Status.rb
|
94
95
|
- spec/apps/Use.rb
|
95
96
|
- spec/apps/WithoutPath.rb
|
96
97
|
- spec/helper.rb
|
data/CHANGELOG.md
DELETED
@@ -1,53 +0,0 @@
|
|
1
|
-
# 0.6.0
|
2
|
-
|
3
|
-
* Change the implementation of `Hobbit::Base#halt`. This new implementation is
|
4
|
-
more rack compliant.
|
5
|
-
* Test hobbit with [oktobertest](https://github.com/patriciomacadden/oktobertest)
|
6
|
-
instead of minitest (Because reasons!).
|
7
|
-
|
8
|
-
# 0.5.1 (Unreleased)
|
9
|
-
|
10
|
-
* A class is an object too, so allow to `run` classes.
|
11
|
-
* Add `Hobbit::Request`, which sets the path info to `/` if its empty (instead
|
12
|
-
of doing that on the call method).
|
13
|
-
|
14
|
-
# 0.5.0
|
15
|
-
|
16
|
-
* Refactor `Hobbit::Base#halt`. It now sets the status, merges the headers and
|
17
|
-
writes the body (using `Hobbit::Response#write`) when given a fixnum, a hash or
|
18
|
-
a string.
|
19
|
-
* `Hobbit::Response` headers and body are not accessors anymore. This is
|
20
|
-
because when you set the body directly, the `Content-Length` is not calculated
|
21
|
-
(it's calculated on `#write`).
|
22
|
-
|
23
|
-
# 0.4.4
|
24
|
-
|
25
|
-
* Refactor `Hobbit::Response`.
|
26
|
-
|
27
|
-
# 0.4.3
|
28
|
-
|
29
|
-
* Calculate the `Content-Length` of a `Hobbit::Response` using `#bytesize`
|
30
|
-
instead of `#size`.
|
31
|
-
|
32
|
-
# 0.4.2
|
33
|
-
|
34
|
-
* Add `Hobbit::Response#redirect`, that was missing since `Hobbit::Response`
|
35
|
-
isn't a `Rack::Response` subclass.
|
36
|
-
|
37
|
-
# 0.4.1
|
38
|
-
|
39
|
-
* `Hobbit::Response` now returns the `Content-Length` header as a string.
|
40
|
-
|
41
|
-
# 0.4.0
|
42
|
-
|
43
|
-
* Add halt method.
|
44
|
-
|
45
|
-
# 0.3.1
|
46
|
-
|
47
|
-
* Remove unused `attr_accessor` (`:length`) from `Hobbit::Response`.
|
48
|
-
|
49
|
-
# 0.3.0
|
50
|
-
|
51
|
-
* `Hobbit::Response` is no longer a subclass of `Rack::Response`.
|
52
|
-
* Forward `#map` and `#use` methods to `Rack::Builder` instead of define these
|
53
|
-
methods.
|
data/Rakefile
DELETED