deas 0.16.0 → 0.17.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/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