deas 0.14.1 → 0.15.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/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