deas 0.14.1 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/deas/template.rb CHANGED
@@ -63,6 +63,10 @@ module Deas
63
63
  end
64
64
  alias :u :escape_url
65
65
 
66
+ def logger
67
+ @sinatra_call.logger
68
+ end
69
+
66
70
  def ==(other_scope)
67
71
  self.sinatra_call == other_scope.sinatra_call
68
72
  self.class.included_modules == other_scope.class.included_modules
@@ -29,7 +29,17 @@ module Deas
29
29
  # Helpers
30
30
 
31
31
  def halt(*args)
32
- throw(:halt, args)
32
+ throw(:halt, HaltArgs.new(args))
33
+ end
34
+
35
+ class HaltArgs < Struct.new(:body, :headers, :status)
36
+ def initialize(args)
37
+ super(*[
38
+ !args.last.kind_of?(::Hash) && !args.last.kind_of?(::Integer) ? args.pop : nil,
39
+ args.last.kind_of?(::Hash) ? args.pop : nil,
40
+ args.first.kind_of?(::Integer) ? args.first : nil
41
+ ])
42
+ end
33
43
  end
34
44
 
35
45
  def redirect(path, *halt_args)
data/lib/deas/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Deas
2
- VERSION = "0.14.1"
2
+ VERSION = "0.15.0"
3
3
  end
@@ -6,13 +6,14 @@ class FakeSinatraCall
6
6
  # Mimic's the context that is accessible in a Sinatra' route. Should provide
7
7
  # any methods needed to replace using an actual Sinatra app.
8
8
 
9
- attr_accessor :request, :response, :params, :settings, :session
9
+ attr_accessor :request, :response, :params, :settings, :session, :logger
10
10
 
11
11
  def initialize(settings={})
12
12
  @request = FakeRequest.new('GET','/something', {}, OpenStruct.new)
13
13
  @params = @request.params
14
14
  @session = @request.session
15
15
  @response = FakeResponse.new
16
+ @logger = Deas::NullLogger.new
16
17
  @settings = OpenStruct.new(settings.merge({
17
18
  :deas_template_scope => Deas::Template::Scope,
18
19
  :deas_default_charset => 'utf-8'
@@ -82,7 +82,9 @@ class Deas::Template
82
82
  end
83
83
  subject{ @scope }
84
84
 
85
- should have_imeths :partial, :escape_html, :h, :escape_url, :u, :render
85
+ should have_reader :sinatra_call
86
+ should have_imeths :render, :partial, :escape_html, :h, :escape_url, :u
87
+ should have_imeths :logger
86
88
 
87
89
  should "call the sinatra_call's erb method with #partial" do
88
90
  return_value = subject.partial('part', :something => true)
@@ -127,6 +129,10 @@ class Deas::Template
127
129
  assert_equal "%2Fpath%2Fto%2Fsomewhere", return_value
128
130
  end
129
131
 
132
+ should "expose the sinatra call (and deas server) logger" do
133
+ assert_equal @fake_sinatra_call.logger, subject.logger
134
+ end
135
+
130
136
  end
131
137
 
132
138
  class PartialTests < BaseTests
@@ -166,9 +166,9 @@ module Deas::ViewHandler
166
166
  })
167
167
  runner.run
168
168
 
169
- assert_equal 200, runner.return_value[0]
170
- assert_equal({ 'Content-Type' => 'text/plain' }, runner.return_value[1])
171
- assert_equal 'test halting', runner.return_value[2]
169
+ assert_equal 200, runner.return_value.status
170
+ assert_equal({ 'Content-Type' => 'text/plain' }, runner.return_value.headers)
171
+ assert_equal 'test halting', runner.return_value.body
172
172
  end
173
173
 
174
174
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deas
3
3
  version: !ruby/object:Gem::Version
4
- hash: 37
4
+ hash: 35
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 14
9
- - 1
10
- version: 0.14.1
8
+ - 15
9
+ - 0
10
+ version: 0.15.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Kelly Redding
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-05-24 00:00:00 Z
19
+ date: 2013-05-29 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: ns-options