deas 0.4.1 → 0.5.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/version.rb +1 -1
- data/lib/deas/view_handler.rb +20 -48
- data/test/unit/view_handler_tests.rb +82 -42
- metadata +24 -24
data/lib/deas/version.rb
CHANGED
data/lib/deas/view_handler.rb
CHANGED
@@ -65,60 +65,32 @@ module Deas
|
|
65
65
|
|
66
66
|
module ClassMethods
|
67
67
|
|
68
|
-
def before(&block)
|
69
|
-
self.before_callbacks << block
|
70
|
-
end
|
71
|
-
|
72
|
-
def before_callbacks
|
73
|
-
@before_callbacks ||= []
|
74
|
-
end
|
75
|
-
|
76
|
-
def after(&block)
|
77
|
-
self.after_callbacks << block
|
78
|
-
end
|
79
|
-
|
80
|
-
def after_callbacks
|
81
|
-
@after_callbacks ||= []
|
82
|
-
end
|
83
|
-
|
84
|
-
def before_init(&block)
|
85
|
-
self.before_init_callbacks << block
|
86
|
-
end
|
87
|
-
|
88
|
-
def before_init_callbacks
|
89
|
-
@before_init_callbacks ||= []
|
90
|
-
end
|
91
|
-
|
92
|
-
def after_init(&block)
|
93
|
-
self.after_init_callbacks << block
|
94
|
-
end
|
95
|
-
|
96
|
-
def after_init_callbacks
|
97
|
-
@after_init_callbacks ||= []
|
98
|
-
end
|
99
|
-
|
100
|
-
def before_run(&block)
|
101
|
-
self.before_run_callbacks << block
|
102
|
-
end
|
103
|
-
|
104
|
-
def before_run_callbacks
|
105
|
-
@before_run_callbacks ||= []
|
106
|
-
end
|
107
|
-
|
108
|
-
def after_run(&block)
|
109
|
-
self.after_run_callbacks << block
|
110
|
-
end
|
111
|
-
|
112
|
-
def after_run_callbacks
|
113
|
-
@after_run_callbacks ||= []
|
114
|
-
end
|
115
|
-
|
116
68
|
def layout(*args)
|
117
69
|
@layouts = args unless args.empty?
|
118
70
|
@layouts
|
119
71
|
end
|
120
72
|
alias :layouts :layout
|
121
73
|
|
74
|
+
def before_callbacks; @before_callbacks ||= []; end
|
75
|
+
def after_callbacks; @after_callbacks ||= []; end
|
76
|
+
def before_init_callbacks; @before_init_callbacks ||= []; end
|
77
|
+
def after_init_callbacks; @after_init_callbacks ||= []; end
|
78
|
+
def before_run_callbacks; @before_run_callbacks ||= []; end
|
79
|
+
def after_run_callbacks; @after_run_callbacks ||= []; end
|
80
|
+
|
81
|
+
def before(&block); self.before_callbacks << block; end
|
82
|
+
def after(&block); self.after_callbacks << block; end
|
83
|
+
def before_init(&block); self.before_init_callbacks << block; end
|
84
|
+
def after_init(&block); self.after_init_callbacks << block; end
|
85
|
+
def before_run(&block); self.before_run_callbacks << block; end
|
86
|
+
def after_run(&block); self.after_run_callbacks << block; end
|
87
|
+
def prepend_before(&block); self.before_callbacks.unshift(block); end
|
88
|
+
def prepend_after(&block); self.after_callbacks.unshift(block); end
|
89
|
+
def prepend_before_init(&block); self.before_init_callbacks.unshift(block); end
|
90
|
+
def prepend_after_init(&block); self.after_init_callbacks.unshift(block); end
|
91
|
+
def prepend_before_run(&block); self.before_run_callbacks.unshift(block); end
|
92
|
+
def prepend_after_run(&block); self.after_run_callbacks.unshift(block); end
|
93
|
+
|
122
94
|
end
|
123
95
|
|
124
96
|
end
|
@@ -14,75 +14,115 @@ module Deas::ViewHandler
|
|
14
14
|
end
|
15
15
|
subject{ @handler }
|
16
16
|
|
17
|
-
should
|
18
|
-
should
|
19
|
-
should
|
20
|
-
should
|
21
|
-
should
|
22
|
-
should
|
23
|
-
should
|
24
|
-
should
|
17
|
+
should have_imeths :init, :init!, :run, :run!
|
18
|
+
should have_cmeths :layout, :layouts
|
19
|
+
should have_cmeths :before, :prepend_before, :before_callbacks
|
20
|
+
should have_cmeths :after, :prepend_after, :after_callbacks
|
21
|
+
should have_cmeths :before_init, :prepend_before_init, :before_init_callbacks
|
22
|
+
should have_cmeths :after_init, :prepend_after_init, :after_init_callbacks
|
23
|
+
should have_cmeths :before_run, :prepend_before_run, :before_run_callbacks
|
24
|
+
should have_cmeths :after_run, :prepend_after_run, :after_run_callbacks
|
25
25
|
|
26
26
|
should "raise a NotImplementedError if run! is not overwritten" do
|
27
27
|
assert_raises(NotImplementedError){ subject.run! }
|
28
28
|
end
|
29
29
|
|
30
|
-
should "
|
31
|
-
|
32
|
-
|
30
|
+
should "be able to render templates" do
|
31
|
+
return_value = test_runner(RenderViewHandler).run
|
32
|
+
assert_equal "my_template", return_value[0]
|
33
|
+
assert_equal({ :some => :option }, return_value[1])
|
34
|
+
end
|
35
|
+
|
36
|
+
should "allow specifying the layouts using #layout or #layouts" do
|
37
|
+
handler_class = Class.new{ include Deas::ViewHandler }
|
33
38
|
|
34
|
-
|
39
|
+
handler_class.layout 'layouts/app'
|
40
|
+
assert_equal [ 'layouts/app' ], handler_class.layouts
|
41
|
+
|
42
|
+
handler_class.layouts 'layouts/web', 'layouts/search'
|
43
|
+
assert_equal [ 'layouts/web', 'layouts/search' ], handler_class.layouts
|
35
44
|
end
|
36
45
|
|
37
|
-
|
38
|
-
after_proc = proc{ }
|
39
|
-
TestViewHandler.after(&after_proc)
|
46
|
+
end
|
40
47
|
|
41
|
-
|
48
|
+
class CallbackTests < BaseTests
|
49
|
+
desc "callbacks"
|
50
|
+
setup do
|
51
|
+
@proc1 = proc{ '1' }
|
52
|
+
@proc2 = proc{ '2' }
|
53
|
+
@handler = Class.new{ include Deas::ViewHandler }
|
42
54
|
end
|
43
55
|
|
44
|
-
should "
|
45
|
-
|
46
|
-
|
56
|
+
should "append procs in #before_callbacks with #before" do
|
57
|
+
@handler.before(&@proc1); @handler.before(&@proc2)
|
58
|
+
assert_equal @proc1, @handler.before_callbacks.first
|
59
|
+
assert_equal @proc2, @handler.before_callbacks.last
|
60
|
+
end
|
47
61
|
|
48
|
-
|
62
|
+
should "prepend procs in #before_callbacks with #before" do
|
63
|
+
@handler.prepend_before(&@proc1); @handler.prepend_before(&@proc2)
|
64
|
+
assert_equal @proc2, @handler.before_callbacks.first
|
65
|
+
assert_equal @proc1, @handler.before_callbacks.last
|
49
66
|
end
|
50
67
|
|
51
|
-
should "
|
52
|
-
|
53
|
-
|
68
|
+
should "append procs in #after_callbacks with #after" do
|
69
|
+
@handler.after(&@proc1); @handler.after(&@proc2)
|
70
|
+
assert_equal @proc1, @handler.after_callbacks.first
|
71
|
+
assert_equal @proc2, @handler.after_callbacks.last
|
72
|
+
end
|
54
73
|
|
55
|
-
|
74
|
+
should "prepend procs in #after_callbacks with #before" do
|
75
|
+
@handler.prepend_after(&@proc1); @handler.prepend_after(&@proc2)
|
76
|
+
assert_equal @proc2, @handler.after_callbacks.first
|
77
|
+
assert_equal @proc1, @handler.after_callbacks.last
|
56
78
|
end
|
57
79
|
|
58
|
-
should "
|
59
|
-
|
60
|
-
|
80
|
+
should "append procs in #before_init_callbacks with #before_init" do
|
81
|
+
@handler.before_init(&@proc1); @handler.before_init(&@proc2)
|
82
|
+
assert_equal @proc1, @handler.before_init_callbacks.first
|
83
|
+
assert_equal @proc2, @handler.before_init_callbacks.last
|
84
|
+
end
|
61
85
|
|
62
|
-
|
86
|
+
should "prepend procs in #before_init_callbacks with #before" do
|
87
|
+
@handler.prepend_before_init(&@proc1); @handler.prepend_before_init(&@proc2)
|
88
|
+
assert_equal @proc2, @handler.before_init_callbacks.first
|
89
|
+
assert_equal @proc1, @handler.before_init_callbacks.last
|
63
90
|
end
|
64
91
|
|
65
|
-
should "
|
66
|
-
|
67
|
-
|
92
|
+
should "append procs in #after_init_callbacks with #after_init" do
|
93
|
+
@handler.after_init(&@proc1); @handler.after_init(&@proc2)
|
94
|
+
assert_equal @proc1, @handler.after_init_callbacks.first
|
95
|
+
assert_equal @proc2, @handler.after_init_callbacks.last
|
96
|
+
end
|
68
97
|
|
69
|
-
|
98
|
+
should "prepend procs in #after_init_callbacks with #before" do
|
99
|
+
@handler.prepend_after_init(&@proc1); @handler.prepend_after_init(&@proc2)
|
100
|
+
assert_equal @proc2, @handler.after_init_callbacks.first
|
101
|
+
assert_equal @proc1, @handler.after_init_callbacks.last
|
70
102
|
end
|
71
103
|
|
72
|
-
should "
|
73
|
-
|
104
|
+
should "append procs in #before_run_callbacks with #before_run" do
|
105
|
+
@handler.before_run(&@proc1); @handler.before_run(&@proc2)
|
106
|
+
assert_equal @proc1, @handler.before_run_callbacks.first
|
107
|
+
assert_equal @proc2, @handler.before_run_callbacks.last
|
108
|
+
end
|
74
109
|
|
75
|
-
|
76
|
-
|
110
|
+
should "prepend procs in #before_run_callbacks with #before" do
|
111
|
+
@handler.prepend_before_run(&@proc1); @handler.prepend_before_run(&@proc2)
|
112
|
+
assert_equal @proc2, @handler.before_run_callbacks.first
|
113
|
+
assert_equal @proc1, @handler.before_run_callbacks.last
|
114
|
+
end
|
77
115
|
|
78
|
-
|
79
|
-
|
116
|
+
should "append procs in #after_run_callbacks with #after_run" do
|
117
|
+
@handler.after_run(&@proc1); @handler.after_run(&@proc2)
|
118
|
+
assert_equal @proc1, @handler.after_run_callbacks.first
|
119
|
+
assert_equal @proc2, @handler.after_run_callbacks.last
|
80
120
|
end
|
81
121
|
|
82
|
-
should "
|
83
|
-
|
84
|
-
assert_equal
|
85
|
-
assert_equal
|
122
|
+
should "prepend procs in #after_run_callbacks with #before" do
|
123
|
+
@handler.prepend_after_run(&@proc1); @handler.prepend_after_run(&@proc2)
|
124
|
+
assert_equal @proc2, @handler.after_run_callbacks.first
|
125
|
+
assert_equal @proc1, @handler.after_run_callbacks.last
|
86
126
|
end
|
87
127
|
|
88
128
|
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:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
8
|
+
- 5
|
9
|
+
- 0
|
10
|
+
version: 0.5.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Kelly Redding
|
@@ -16,11 +16,12 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2013-05-
|
19
|
+
date: 2013-05-10 00:00:00 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
+
name: ns-options
|
22
23
|
prerelease: false
|
23
|
-
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
25
|
none: false
|
25
26
|
requirements:
|
26
27
|
- - ~>
|
@@ -38,12 +39,12 @@ dependencies:
|
|
38
39
|
- 1
|
39
40
|
- 4
|
40
41
|
version: 1.1.4
|
41
|
-
requirement: *id001
|
42
|
-
name: ns-options
|
43
42
|
type: :runtime
|
43
|
+
version_requirements: *id001
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
|
+
name: rack
|
45
46
|
prerelease: false
|
46
|
-
|
47
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
47
48
|
none: false
|
48
49
|
requirements:
|
49
50
|
- - ~>
|
@@ -53,12 +54,12 @@ dependencies:
|
|
53
54
|
- 1
|
54
55
|
- 5
|
55
56
|
version: "1.5"
|
56
|
-
requirement: *id002
|
57
|
-
name: rack
|
58
57
|
type: :runtime
|
58
|
+
version_requirements: *id002
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
|
+
name: sinatra
|
60
61
|
prerelease: false
|
61
|
-
|
62
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
62
63
|
none: false
|
63
64
|
requirements:
|
64
65
|
- - ~>
|
@@ -68,12 +69,12 @@ dependencies:
|
|
68
69
|
- 1
|
69
70
|
- 4
|
70
71
|
version: "1.4"
|
71
|
-
requirement: *id003
|
72
|
-
name: sinatra
|
73
72
|
type: :runtime
|
73
|
+
version_requirements: *id003
|
74
74
|
- !ruby/object:Gem::Dependency
|
75
|
+
name: assert
|
75
76
|
prerelease: false
|
76
|
-
|
77
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
77
78
|
none: false
|
78
79
|
requirements:
|
79
80
|
- - ~>
|
@@ -83,12 +84,12 @@ dependencies:
|
|
83
84
|
- 2
|
84
85
|
- 0
|
85
86
|
version: "2.0"
|
86
|
-
requirement: *id004
|
87
|
-
name: assert
|
88
87
|
type: :development
|
88
|
+
version_requirements: *id004
|
89
89
|
- !ruby/object:Gem::Dependency
|
90
|
+
name: assert-mocha
|
90
91
|
prerelease: false
|
91
|
-
|
92
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
92
93
|
none: false
|
93
94
|
requirements:
|
94
95
|
- - ~>
|
@@ -98,12 +99,12 @@ dependencies:
|
|
98
99
|
- 1
|
99
100
|
- 0
|
100
101
|
version: "1.0"
|
101
|
-
requirement: *id005
|
102
|
-
name: assert-mocha
|
103
102
|
type: :development
|
103
|
+
version_requirements: *id005
|
104
104
|
- !ruby/object:Gem::Dependency
|
105
|
+
name: rack-test
|
105
106
|
prerelease: false
|
106
|
-
|
107
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
107
108
|
none: false
|
108
109
|
requirements:
|
109
110
|
- - ~>
|
@@ -113,9 +114,8 @@ dependencies:
|
|
113
114
|
- 0
|
114
115
|
- 6
|
115
116
|
version: "0.6"
|
116
|
-
requirement: *id006
|
117
|
-
name: rack-test
|
118
117
|
type: :development
|
118
|
+
version_requirements: *id006
|
119
119
|
description: Handler-based web framework powered by Sinatra
|
120
120
|
email:
|
121
121
|
- kelly@kellyredding.com
|
@@ -199,7 +199,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
199
199
|
requirements: []
|
200
200
|
|
201
201
|
rubyforge_project:
|
202
|
-
rubygems_version: 1.8.
|
202
|
+
rubygems_version: 1.8.24
|
203
203
|
signing_key:
|
204
204
|
specification_version: 3
|
205
205
|
summary: Handler-based web framework powered by Sinatra
|