roy 0.2.2 → 0.3.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.
- data/Gemfile.lock +1 -1
- data/README.md +4 -4
- data/lib/roy/version.rb +1 -1
- data/lib/roy.rb +3 -4
- data/test/after_test.rb +1 -1
- data/test/base_test.rb +10 -9
- data/test/before_test.rb +1 -1
- data/test/defaults_test.rb +1 -1
- data/test/plugins_test.rb +1 -1
- data/test/prefix_test.rb +1 -1
- data/test/render_test.rb +8 -8
- metadata +55 -62
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -25,17 +25,17 @@ class MessageQueue
|
|
25
25
|
@stack = []
|
26
26
|
end
|
27
27
|
|
28
|
-
def get
|
28
|
+
def get(_)
|
29
29
|
@stack.inspect
|
30
30
|
end
|
31
31
|
|
32
|
-
def post
|
32
|
+
def post(_)
|
33
33
|
halt 403 unless roy.params[:item]
|
34
34
|
@stack << roy.params[:item].strip
|
35
35
|
get
|
36
36
|
end
|
37
37
|
|
38
|
-
def delete
|
38
|
+
def delete(_)
|
39
39
|
@stack.shift.inspect
|
40
40
|
end
|
41
41
|
end
|
@@ -54,7 +54,7 @@ class Example
|
|
54
54
|
include Roy
|
55
55
|
roy allow: [:get], prefix: :http_, foo: "bar"
|
56
56
|
|
57
|
-
def http_get(
|
57
|
+
def http_get(path)
|
58
58
|
"foo is #{roy.conf.foo}"
|
59
59
|
end
|
60
60
|
end
|
data/lib/roy/version.rb
CHANGED
data/lib/roy.rb
CHANGED
@@ -30,16 +30,15 @@ module Roy
|
|
30
30
|
}
|
31
31
|
|
32
32
|
method = roy.env['REQUEST_METHOD'].downcase.to_sym
|
33
|
-
|
34
|
-
|
35
|
-
}
|
33
|
+
path = roy.env['PATH_INFO']
|
34
|
+
path = "/#{path}" unless path[0] == '/'
|
36
35
|
|
37
36
|
method, was_head = :get, true if method == :head
|
38
37
|
|
39
38
|
roy.response.status, body = catch(:halt) do
|
40
39
|
halt(405) unless roy.conf.allow.include?(method)
|
41
40
|
prefixed_method = :"#{roy.conf.prefix}#{method}"
|
42
|
-
[roy.response.status, send(prefixed_method,
|
41
|
+
[roy.response.status, send(prefixed_method, path)]
|
43
42
|
end
|
44
43
|
|
45
44
|
roy.response.write(body) unless was_head
|
data/test/after_test.rb
CHANGED
data/test/base_test.rb
CHANGED
@@ -11,19 +11,19 @@ class BaseTestObject
|
|
11
11
|
|
12
12
|
roy allow: [:get, :put, :custom]
|
13
13
|
|
14
|
-
def get(
|
14
|
+
def get(path)
|
15
15
|
history.inspect
|
16
16
|
end
|
17
17
|
|
18
|
-
def put(
|
18
|
+
def put(path)
|
19
19
|
Roy.halt 400 unless roy.params[:body]
|
20
20
|
history << roy.params[:body]
|
21
21
|
history << roy.params[:foo] if roy.params[:foo]
|
22
|
-
get
|
22
|
+
get(path)
|
23
23
|
end
|
24
24
|
|
25
|
-
def custom(
|
26
|
-
|
25
|
+
def custom(path)
|
26
|
+
path
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
@@ -51,7 +51,7 @@ class BaseTest < MiniTest::Unit::TestCase
|
|
51
51
|
def test_forward_allowed_methods
|
52
52
|
get '/'
|
53
53
|
ok!
|
54
|
-
assert_equal app.get, last_response.body
|
54
|
+
assert_equal app.get('/'), last_response.body
|
55
55
|
end
|
56
56
|
|
57
57
|
def test_block_forbidden_methods
|
@@ -64,6 +64,7 @@ class BaseTest < MiniTest::Unit::TestCase
|
|
64
64
|
def test_set_allowed_methods
|
65
65
|
assert_includes app.class.conf.allow, :get
|
66
66
|
assert_includes app.class.conf.allow, :put
|
67
|
+
assert_includes app.class.conf.allow, :custom
|
67
68
|
refute_includes app.class.conf.allow, :post
|
68
69
|
end
|
69
70
|
|
@@ -89,9 +90,9 @@ class BaseTest < MiniTest::Unit::TestCase
|
|
89
90
|
assert_equal %w(hello bar).inspect, last_response.body
|
90
91
|
end
|
91
92
|
|
92
|
-
def
|
93
|
-
request '/
|
93
|
+
def test_custom_methods
|
94
|
+
request '/', :method => 'CUSTOM'
|
94
95
|
ok!
|
95
|
-
assert_equal '
|
96
|
+
assert_equal '/', last_response.body
|
96
97
|
end
|
97
98
|
end
|
data/test/before_test.rb
CHANGED
data/test/defaults_test.rb
CHANGED
data/test/plugins_test.rb
CHANGED
data/test/prefix_test.rb
CHANGED
data/test/render_test.rb
CHANGED
@@ -15,21 +15,21 @@ class RenderTestObject
|
|
15
15
|
roy allow: [:get],
|
16
16
|
views: 'test/views'
|
17
17
|
|
18
|
-
def get(
|
19
|
-
case
|
20
|
-
when 'template'
|
18
|
+
def get(path)
|
19
|
+
case path
|
20
|
+
when '/template'
|
21
21
|
render :erb, :test
|
22
|
-
when 'template_layout'
|
22
|
+
when '/template_layout'
|
23
23
|
render :erb, :layout do
|
24
24
|
render :erb, :test
|
25
25
|
end
|
26
|
-
when 'inline'
|
26
|
+
when '/inline'
|
27
27
|
render :erb, Templates[:simple]
|
28
|
-
when 'locals'
|
28
|
+
when '/locals'
|
29
29
|
render :erb, Templates[:locals], person: 'Bob'
|
30
|
-
when 'scope'
|
30
|
+
when '/scope'
|
31
31
|
render :erb, Templates[:scope]
|
32
|
-
when 'yield'
|
32
|
+
when '/yield'
|
33
33
|
render :erb, Templates[:yield] do
|
34
34
|
render :erb, Templates[:simple]
|
35
35
|
end
|
metadata
CHANGED
@@ -1,73 +1,69 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: roy
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.2.2
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- madx
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-16 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: rack
|
17
|
-
|
18
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &6811460 !ruby/object:Gem::Requirement
|
19
17
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
24
22
|
type: :runtime
|
25
|
-
version_requirements: *id001
|
26
|
-
- !ruby/object:Gem::Dependency
|
27
|
-
name: minitest
|
28
23
|
prerelease: false
|
29
|
-
|
24
|
+
version_requirements: *6811460
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: minitest
|
27
|
+
requirement: &6810920 !ruby/object:Gem::Requirement
|
30
28
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
35
33
|
type: :development
|
36
|
-
version_requirements: *id002
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: rack-test
|
39
34
|
prerelease: false
|
40
|
-
|
35
|
+
version_requirements: *6810920
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rack-test
|
38
|
+
requirement: &6810380 !ruby/object:Gem::Requirement
|
41
39
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
46
44
|
type: :development
|
47
|
-
version_requirements: *id003
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: tilt
|
50
45
|
prerelease: false
|
51
|
-
|
46
|
+
version_requirements: *6810380
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: tilt
|
49
|
+
requirement: &6809880 !ruby/object:Gem::Requirement
|
52
50
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
51
|
+
requirements:
|
52
|
+
- - ! '>='
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
57
55
|
type: :development
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *6809880
|
58
|
+
description: ! 'roy is a small library which allows every Ruby object to be used
|
59
|
+
|
60
|
+
as a Rack application.'
|
61
|
+
email:
|
63
62
|
- madx@yapok.org
|
64
63
|
executables: []
|
65
|
-
|
66
64
|
extensions: []
|
67
|
-
|
68
65
|
extra_rdoc_files: []
|
69
|
-
|
70
|
-
files:
|
66
|
+
files:
|
71
67
|
- Gemfile
|
72
68
|
- Gemfile.lock
|
73
69
|
- LICENSE
|
@@ -93,32 +89,29 @@ files:
|
|
93
89
|
- test/views/test.erb
|
94
90
|
homepage: https://github.com/madx/roy
|
95
91
|
licenses: []
|
96
|
-
|
97
92
|
post_install_message:
|
98
93
|
rdoc_options: []
|
99
|
-
|
100
|
-
require_paths:
|
94
|
+
require_paths:
|
101
95
|
- lib
|
102
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
103
97
|
none: false
|
104
|
-
requirements:
|
105
|
-
- -
|
106
|
-
- !ruby/object:Gem::Version
|
107
|
-
version:
|
108
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
109
103
|
none: false
|
110
|
-
requirements:
|
111
|
-
- -
|
112
|
-
- !ruby/object:Gem::Version
|
113
|
-
version:
|
104
|
+
requirements:
|
105
|
+
- - ! '>='
|
106
|
+
- !ruby/object:Gem::Version
|
107
|
+
version: '0'
|
114
108
|
requirements: []
|
115
|
-
|
116
109
|
rubyforge_project: roy
|
117
110
|
rubygems_version: 1.8.5
|
118
111
|
signing_key:
|
119
112
|
specification_version: 3
|
120
113
|
summary: make your objects REST-friendly
|
121
|
-
test_files:
|
114
|
+
test_files:
|
122
115
|
- test/after_test.rb
|
123
116
|
- test/base_test.rb
|
124
117
|
- test/before_test.rb
|