deas 0.7.0 → 0.8.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 +2 -0
- data/lib/deas/runner.rb +2 -1
- data/lib/deas/sinatra_runner.rb +1 -1
- data/lib/deas/test_runner.rb +7 -5
- data/lib/deas/version.rb +1 -1
- data/lib/deas/view_handler.rb +6 -5
- data/test/support/routes.rb +31 -0
- data/test/system/rack_tests.rb +20 -0
- data/test/unit/runner_tests.rb +2 -1
- metadata +3 -3
data/Gemfile
CHANGED
data/lib/deas/runner.rb
CHANGED
data/lib/deas/sinatra_runner.rb
CHANGED
@@ -11,7 +11,7 @@ module Deas
|
|
11
11
|
|
12
12
|
def initialize(handler_class, sinatra_call)
|
13
13
|
@sinatra_call = sinatra_call
|
14
|
-
@
|
14
|
+
@app_settings = @sinatra_call.settings
|
15
15
|
@logger = @sinatra_call.settings.logger
|
16
16
|
@params = @sinatra_call.params
|
17
17
|
@request = @sinatra_call.request
|
data/lib/deas/test_runner.rb
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'ostruct'
|
1
2
|
require 'deas/runner'
|
2
3
|
|
3
4
|
module Deas
|
@@ -8,11 +9,12 @@ module Deas
|
|
8
9
|
|
9
10
|
def initialize(handler_class, args = nil)
|
10
11
|
args = (args || {}).dup
|
11
|
-
@
|
12
|
-
@
|
13
|
-
@
|
14
|
-
@
|
15
|
-
@
|
12
|
+
@app_settings = OpenStruct.new(args.delete(:app_settings))
|
13
|
+
@logger = args.delete(:logger) || Deas::NullLogger.new
|
14
|
+
@params = args.delete(:params) || {}
|
15
|
+
@request = args.delete(:request)
|
16
|
+
@response = args.delete(:response)
|
17
|
+
@session = args.delete(:session)
|
16
18
|
|
17
19
|
super(handler_class)
|
18
20
|
args.each{|key, value| @handler.send("#{key}=", value) }
|
data/lib/deas/version.rb
CHANGED
data/lib/deas/view_handler.rb
CHANGED
@@ -55,11 +55,12 @@ module Deas
|
|
55
55
|
@deas_runner.render(*args, &block)
|
56
56
|
end
|
57
57
|
|
58
|
-
def
|
59
|
-
def
|
60
|
-
def
|
61
|
-
def
|
62
|
-
def
|
58
|
+
def app_settings; @deas_runner.app_settings; end
|
59
|
+
def logger; @deas_runner.logger; end
|
60
|
+
def request; @deas_runner.request; end
|
61
|
+
def response; @deas_runner.response; end
|
62
|
+
def params; @deas_runner.params; end
|
63
|
+
def session; @deas_runner.session; end
|
63
64
|
|
64
65
|
def run_callback(callback)
|
65
66
|
(self.class.send("#{callback}_callbacks") || []).each do |callback|
|
data/test/support/routes.rb
CHANGED
@@ -8,6 +8,8 @@ class DeasTestServer
|
|
8
8
|
logger TEST_LOGGER
|
9
9
|
verbose_logging true
|
10
10
|
|
11
|
+
set :a_setting, 'something'
|
12
|
+
|
11
13
|
error do |exception|
|
12
14
|
case exception
|
13
15
|
when Sinatra::NotFound
|
@@ -27,6 +29,8 @@ class DeasTestServer
|
|
27
29
|
post '/session', 'SetSessionHandler'
|
28
30
|
get '/session', 'UseSessionHandler'
|
29
31
|
|
32
|
+
get '/handler/tests.json', 'HandlerTestsHandler'
|
33
|
+
|
30
34
|
end
|
31
35
|
|
32
36
|
class ShowHandler
|
@@ -123,3 +127,30 @@ class UseSessionHandler
|
|
123
127
|
end
|
124
128
|
|
125
129
|
end
|
130
|
+
|
131
|
+
class HandlerTestsHandler
|
132
|
+
include Deas::ViewHandler
|
133
|
+
|
134
|
+
def init!
|
135
|
+
@data = {}
|
136
|
+
set_data('app_settings_a_setting'){ self.app_settings.a_setting }
|
137
|
+
set_data('logger_class_name'){ self.logger.class.name }
|
138
|
+
set_data('request_method'){ self.request.request_method.to_s }
|
139
|
+
set_data('response_firstheaderval'){ self.response.headers.sort.first.to_s }
|
140
|
+
set_data('params_a_param'){ self.params['a-param'] }
|
141
|
+
set_data('session_inspect'){ self.session.inspect }
|
142
|
+
end
|
143
|
+
|
144
|
+
def set_data(a, &block)
|
145
|
+
begin
|
146
|
+
@data[a] = block.call
|
147
|
+
rescue Exception => e
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
def run!
|
152
|
+
require 'multi_json'
|
153
|
+
[200, {}, MultiJson.encode(@data)]
|
154
|
+
end
|
155
|
+
|
156
|
+
end
|
data/test/system/rack_tests.rb
CHANGED
@@ -94,4 +94,24 @@ module Deas
|
|
94
94
|
|
95
95
|
end
|
96
96
|
|
97
|
+
class HandlerTests < RackTests
|
98
|
+
desc "handler"
|
99
|
+
setup do
|
100
|
+
get 'handler/tests.json?a-param=something'
|
101
|
+
|
102
|
+
require 'multi_json'
|
103
|
+
@data = MultiJson.decode(last_response.body || "")
|
104
|
+
end
|
105
|
+
|
106
|
+
should "be able to access sinatra call data" do
|
107
|
+
assert_equal 'something', @data['app_settings_a_setting']
|
108
|
+
assert_equal 'Logger', @data['logger_class_name']
|
109
|
+
assert_equal 'GET', @data['request_method']
|
110
|
+
assert_equal 'Content-Type', @data['response_firstheaderval']
|
111
|
+
assert_equal 'something', @data['params_a_param']
|
112
|
+
assert_equal '{}', @data['session_inspect']
|
113
|
+
end
|
114
|
+
|
115
|
+
end
|
116
|
+
|
97
117
|
end
|
data/test/unit/runner_tests.rb
CHANGED
@@ -11,7 +11,8 @@ class Deas::Runner
|
|
11
11
|
end
|
12
12
|
subject{ @runner }
|
13
13
|
|
14
|
-
should
|
14
|
+
should have_reader :app_settings
|
15
|
+
should have_readers :request, :response, :params, :logger, :session
|
15
16
|
|
16
17
|
should "raise NotImplementedError with #halt" do
|
17
18
|
assert_raises(NotImplementedError){ subject.halt }
|
metadata
CHANGED