roy 0.4.0 → 0.5.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.
- data/Gemfile.lock +1 -1
- data/lib/roy/base.rb +8 -6
- data/lib/roy/halt.rb +13 -0
- data/lib/roy/render.rb +2 -2
- data/lib/roy/version.rb +1 -1
- data/test/defaults_test.rb +9 -2
- metadata +11 -10
data/Gemfile.lock
CHANGED
data/lib/roy/base.rb
CHANGED
@@ -9,7 +9,7 @@ require 'ostruct'
|
|
9
9
|
require 'roy/version'
|
10
10
|
|
11
11
|
module Roy
|
12
|
-
Defaults =
|
12
|
+
Defaults = {allow: [:get], prefix: :'', use: [:halt]}
|
13
13
|
|
14
14
|
def self.included(base)
|
15
15
|
base.send(:extend, ClassMethods)
|
@@ -19,9 +19,8 @@ module Roy
|
|
19
19
|
@roy ||= OpenStruct.new.tap {|r|
|
20
20
|
r.app = self
|
21
21
|
r.conf = self.class.conf
|
22
|
-
|
23
|
-
|
24
|
-
throw :halt, [code, message || Rack::Utils::HTTP_STATUS_CODES[code]]
|
22
|
+
self.class.ancestors.reverse.each do |mod|
|
23
|
+
mod.setup(r) if mod.respond_to?(:setup)
|
25
24
|
end
|
26
25
|
}
|
27
26
|
end
|
@@ -57,14 +56,17 @@ module Roy
|
|
57
56
|
attr_reader :conf
|
58
57
|
|
59
58
|
def self.extended(base)
|
60
|
-
base.instance_eval
|
59
|
+
base.instance_eval do
|
60
|
+
@conf ||= OpenStruct.new
|
61
|
+
roy Defaults
|
62
|
+
end
|
61
63
|
end
|
62
64
|
|
63
65
|
def roy(options={})
|
64
66
|
options.each do |key,value|
|
65
67
|
case key
|
66
68
|
when :allow
|
67
|
-
conf.allow.merge(value)
|
69
|
+
(conf.allow ||= Set.new).merge(value)
|
68
70
|
conf.allow.add(:head) if value.member?(:get)
|
69
71
|
when :use
|
70
72
|
value.each do |name|
|
data/lib/roy/halt.rb
ADDED
data/lib/roy/render.rb
CHANGED
@@ -3,8 +3,7 @@ require 'tilt'
|
|
3
3
|
module Roy
|
4
4
|
module Render
|
5
5
|
|
6
|
-
def
|
7
|
-
super
|
6
|
+
def self.setup(roy)
|
8
7
|
class << roy
|
9
8
|
def render(engine, view_or_string, params={}, &block)
|
10
9
|
options = conf.render || {}
|
@@ -21,5 +20,6 @@ module Roy
|
|
21
20
|
end
|
22
21
|
end
|
23
22
|
end
|
23
|
+
|
24
24
|
end
|
25
25
|
end
|
data/lib/roy/version.rb
CHANGED
data/test/defaults_test.rb
CHANGED
@@ -1,11 +1,17 @@
|
|
1
1
|
require_relative 'helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
3
|
+
Roy::Defaults.tap do |conf|
|
4
|
+
conf[:prefix] = :http_
|
5
|
+
conf[:use] = [:halt, :after]
|
6
|
+
end
|
5
7
|
|
6
8
|
class DefaultsTestObject
|
7
9
|
include Roy
|
8
10
|
|
11
|
+
roy after: lambda { |response|
|
12
|
+
response.status = 404
|
13
|
+
}
|
14
|
+
|
9
15
|
def http_get(path)
|
10
16
|
'success'
|
11
17
|
end
|
@@ -20,6 +26,7 @@ class DefaultsTest < MiniTest::Unit::TestCase
|
|
20
26
|
|
21
27
|
def test_default_settings
|
22
28
|
get '/'
|
29
|
+
assert_equal 404, last_response.status
|
23
30
|
assert_equal 'success', last_response.body
|
24
31
|
end
|
25
32
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rack
|
16
|
-
requirement: &
|
16
|
+
requirement: &14552840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *14552840
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: minitest
|
27
|
-
requirement: &
|
27
|
+
requirement: &14552240 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *14552240
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rack-test
|
38
|
-
requirement: &
|
38
|
+
requirement: &14551720 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *14551720
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: tilt
|
49
|
-
requirement: &
|
49
|
+
requirement: &14551200 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *14551200
|
58
58
|
description: ! 'roy is a small library which allows every Ruby object to be used
|
59
59
|
|
60
60
|
as a Rack application.'
|
@@ -74,6 +74,7 @@ files:
|
|
74
74
|
- lib/roy/base.rb
|
75
75
|
- lib/roy/basic_auth.rb
|
76
76
|
- lib/roy/before.rb
|
77
|
+
- lib/roy/halt.rb
|
77
78
|
- lib/roy/render.rb
|
78
79
|
- lib/roy/version.rb
|
79
80
|
- roy.gemspec
|