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 CHANGED
@@ -1,3 +1,3 @@
1
1
  module Deas
2
- VERSION = "0.4.1"
2
+ VERSION = "0.5.0"
3
3
  end
@@ -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 have_instance_methods :init, :init!, :run, :run!
18
- should have_class_methods :before, :before_callbacks
19
- should have_class_methods :after, :after_callbacks
20
- should have_class_methods :before_init, :before_init_callbacks
21
- should have_class_methods :after_init, :after_init_callbacks
22
- should have_class_methods :before_run, :before_run_callbacks
23
- should have_class_methods :after_run, :after_run_callbacks
24
- should have_class_methods :layout, :layouts
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 "store procs in #before_callbacks with #before" do
31
- before_proc = proc{ }
32
- TestViewHandler.before(&before_proc)
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
- assert_includes before_proc, TestViewHandler.before_callbacks
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
- should "store procs in #after_callbacks with #after" do
38
- after_proc = proc{ }
39
- TestViewHandler.after(&after_proc)
46
+ end
40
47
 
41
- assert_includes after_proc, TestViewHandler.after_callbacks
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 "store procs in #before_init_callbacks with #before_init" do
45
- before_init_proc = proc{ }
46
- TestViewHandler.before_init(&before_init_proc)
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
- assert_includes before_init_proc, TestViewHandler.before_init_callbacks
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 "store procs in #after_init_callbacks with #after_init" do
52
- after_init_proc = proc{ }
53
- TestViewHandler.after_init(&after_init_proc)
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
- assert_includes after_init_proc, TestViewHandler.after_init_callbacks
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 "store procs in #before_run_callbacks with #before_run" do
59
- before_run_proc = proc{ }
60
- TestViewHandler.before_run(&before_run_proc)
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
- assert_includes before_run_proc, TestViewHandler.before_run_callbacks
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 "store procs in #after_run_callbacks with #after_run" do
66
- after_run_proc = proc{ }
67
- TestViewHandler.after_run(&after_run_proc)
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
- assert_includes after_run_proc, TestViewHandler.after_run_callbacks
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 "allow specifying the layouts using #layout or #layouts" do
73
- handler_class = Class.new{ include Deas::ViewHandler }
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
- handler_class.layout 'layouts/app'
76
- assert_equal [ 'layouts/app' ], handler_class.layouts
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
- handler_class.layouts 'layouts/web', 'layouts/search'
79
- assert_equal [ 'layouts/web', 'layouts/search' ], handler_class.layouts
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 "be able to render templates" do
83
- return_value = test_runner(RenderViewHandler).run
84
- assert_equal "my_template", return_value[0]
85
- assert_equal({ :some => :option }, return_value[1])
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: 13
4
+ hash: 11
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 4
9
- - 1
10
- version: 0.4.1
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-09 00:00:00 Z
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
- version_requirements: &id001 !ruby/object:Gem::Requirement
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
- version_requirements: &id002 !ruby/object:Gem::Requirement
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
- version_requirements: &id003 !ruby/object:Gem::Requirement
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
- version_requirements: &id004 !ruby/object:Gem::Requirement
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
- version_requirements: &id005 !ruby/object:Gem::Requirement
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
- version_requirements: &id006 !ruby/object:Gem::Requirement
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.15
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