deas 0.16.0 → 0.17.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/deas/runner.rb CHANGED
@@ -16,6 +16,7 @@ module Deas
16
16
  def status(*args); raise NotImplementedError; end
17
17
  def headers(*args); raise NotImplementedError; end
18
18
  def render(*args); raise NotImplementedError; end
19
+ def send_file(*args); raise NotImplementedError; end
19
20
 
20
21
  end
21
22
 
@@ -67,6 +67,10 @@ module Deas
67
67
  Deas::Template.new(@sinatra_call, template_name, options).render(&block)
68
68
  end
69
69
 
70
+ def send_file(*args, &block)
71
+ @sinatra_call.send_file(*args, &block)
72
+ end
73
+
70
74
  private
71
75
 
72
76
  def run_callbacks(callbacks)
@@ -74,6 +74,12 @@ module Deas
74
74
 
75
75
  RenderArgs = Struct.new(:template_name, :options, :block)
76
76
 
77
+ def send_file(file_path, options = nil, &block)
78
+ SendFileArgs.new(file_path, options, block)
79
+ end
80
+
81
+ SendFileArgs = Struct.new(:file_path, :options, :block)
82
+
77
83
  end
78
84
 
79
85
  end
data/lib/deas/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Deas
2
- VERSION = "0.16.0"
2
+ VERSION = "0.17.0"
3
3
  end
@@ -53,9 +53,8 @@ module Deas
53
53
  def status(*args); @deas_runner.status(*args); end
54
54
  def headers(*args); @deas_runner.headers(*args); end
55
55
 
56
- def render(*args, &block)
57
- @deas_runner.render(*args, &block)
58
- end
56
+ def render(*args, &block); @deas_runner.render(*args, &block); end
57
+ def send_file(*args, &block); @deas_runner.send_file(*args, &block); end
59
58
 
60
59
  def app_settings; @deas_runner.app_settings; end
61
60
  def logger; @deas_runner.logger; end
@@ -13,15 +13,23 @@ class RenderViewHandler
13
13
  end
14
14
  end
15
15
 
16
+ class SendFileViewHandler
17
+ include Deas::ViewHandler
18
+
19
+ def run!
20
+ send_file "my_file.txt", :some => :option
21
+ end
22
+ end
23
+
16
24
  class FlagViewHandler
17
25
  include Deas::ViewHandler
18
26
  before{ @before_hook_called = true }
19
27
  after{ @after_hook_called = true }
20
28
  layout 'web'
21
29
 
22
- attr_reader :before_init_called, :init_bang_called, :after_init_called,
23
- :before_run_called, :run_bang_called, :after_run_called,
24
- :before_hook_called, :after_hook_called, :second_before_init_called
30
+ attr_reader :before_init_called, :init_bang_called, :after_init_called
31
+ attr_reader :before_run_called, :run_bang_called, :after_run_called
32
+ attr_reader :before_hook_called, :after_hook_called, :second_before_init_called
25
33
 
26
34
  before_init do
27
35
  @before_init_called = true
@@ -11,9 +11,14 @@ class Deas::Runner
11
11
  end
12
12
  subject{ @runner }
13
13
 
14
- should have_reader :app_settings
14
+ should have_reader :app_settings
15
15
  should have_readers :request, :response, :params, :logger, :session
16
- should have_imeths :halt, :redirect, :content_type, :status, :render
16
+ should have_imeths :halt, :redirect, :content_type, :status
17
+ should have_imeths :render, :send_file
18
+
19
+ should "raise NotImplementedError with #send_file" do
20
+ assert_raises(NotImplementedError){ subject.send_file }
21
+ end
17
22
 
18
23
  should "raise NotImplementedError with #halt" do
19
24
  assert_raises(NotImplementedError){ subject.halt }
@@ -33,6 +33,12 @@ module Deas::ViewHandler
33
33
  assert_equal({ :some => :option }, render_args.options)
34
34
  end
35
35
 
36
+ should "be able to send files" do
37
+ send_file_args = test_runner(SendFileViewHandler).run
38
+ assert_equal "my_file.txt", send_file_args.file_path
39
+ assert_equal({ :some => :option }, send_file_args.options)
40
+ end
41
+
36
42
  should "allow specifying the layouts using #layout or #layouts" do
37
43
  handler_class = Class.new{ include Deas::ViewHandler }
38
44
 
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: 95
4
+ hash: 91
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 16
8
+ - 17
9
9
  - 0
10
- version: 0.16.0
10
+ version: 0.17.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-06-01 00:00:00 Z
19
+ date: 2013-06-12 00:00:00 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: ns-options