rory 0.3.14 → 0.3.15

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,11 +11,11 @@ module Rory
11
11
 
12
12
  class << self
13
13
  def before_actions
14
- @before_actions ||= []
14
+ @before_actions ||= ancestor_actions(:before)
15
15
  end
16
16
 
17
17
  def after_actions
18
- @after_actions ||= []
18
+ @after_actions ||= ancestor_actions(:after)
19
19
  end
20
20
 
21
21
  # Register a method to run before the action method.
@@ -27,6 +27,13 @@ module Rory
27
27
  def after_action(method_name)
28
28
  after_actions << method_name
29
29
  end
30
+
31
+ def ancestor_actions(action_type)
32
+ (ancestors - [self]).reverse.map { |c|
33
+ query_method = :"#{action_type}_actions"
34
+ c.send(query_method) if c.respond_to?(query_method)
35
+ }.flatten.compact
36
+ end
30
37
  end
31
38
 
32
39
  def initialize(request, routing, app = nil)
@@ -107,11 +114,11 @@ module Rory
107
114
  private
108
115
 
109
116
  def call_filter_set(which_set, opts = {})
110
- opts[:break_if_response] ||= true
117
+ opts = { :break_if_response => true }.merge(opts)
111
118
  filters = self.class.send(which_set)
112
119
  filters.each do |filter|
113
- self.send(filter)
114
120
  break if @response && opts[:break_if_response]
121
+ self.send(filter)
115
122
  end
116
123
  end
117
124
 
data/lib/rory/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rory
2
- VERSION = '0.3.14'
2
+ VERSION = '0.3.15'
3
3
  end
@@ -0,0 +1,4 @@
1
+ class BaseFilteredController < Rory::Controller
2
+ before_action :pickle_something
3
+ after_action :rub_tummy
4
+ end
@@ -1,5 +1,6 @@
1
- class FilteredController < Rory::Controller
2
- before_action :pickle_something
1
+ require_relative 'base_filtered_controller'
2
+
3
+ class FilteredController < BaseFilteredController
3
4
  before_action :make_it_tasty
4
- after_action :rub_tummy
5
+ after_action :sleep
5
6
  end
@@ -93,6 +93,7 @@ describe Rory::Controller do
93
93
  expect(controller).to receive(:make_it_tasty).ordered
94
94
  expect(controller).to receive(:letsgo).ordered
95
95
  expect(controller).to receive(:rub_tummy).ordered
96
+ expect(controller).to receive(:sleep).ordered
96
97
  expect(controller).to receive(:render).ordered
97
98
  controller.present
98
99
  end
@@ -105,6 +106,7 @@ describe Rory::Controller do
105
106
  expect(controller).to receive(:make_it_tasty).never
106
107
  expect(controller).to receive(:letsgo).never
107
108
  expect(controller).to receive(:rub_tummy).never
109
+ expect(controller).to receive(:sleep).never
108
110
  expect(controller).to receive(:render).never
109
111
  controller.present
110
112
  end
@@ -118,6 +120,7 @@ describe Rory::Controller do
118
120
  expect(controller).to receive(:make_it_tasty).ordered
119
121
  expect(controller).to receive(:letsgo).ordered.and_call_original
120
122
  expect(controller).to receive(:rub_tummy).ordered
123
+ expect(controller).to receive(:sleep).ordered
121
124
  expect(controller).to receive(:render).never
122
125
  controller.present
123
126
  end
@@ -129,6 +132,7 @@ describe Rory::Controller do
129
132
  expect(controller).to receive(:make_it_tasty).ordered
130
133
  expect(controller).to receive(:letsgo).never
131
134
  expect(controller).to receive(:rub_tummy).ordered
135
+ expect(controller).to receive(:sleep).ordered
132
136
  expect(controller).to receive(:render).ordered
133
137
  controller.present
134
138
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rory
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.14
4
+ version: 0.3.15
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -205,6 +205,7 @@ files:
205
205
  - lib/tasks/rory.rake
206
206
  - spec/fixture_app/config/application.rb
207
207
  - spec/fixture_app/config/routes.rb
208
+ - spec/fixture_app/controllers/base_filtered_controller.rb
208
209
  - spec/fixture_app/controllers/filtered_controller.rb
209
210
  - spec/fixture_app/controllers/for_reals_controller.rb
210
211
  - spec/fixture_app/controllers/goose/lumpies_controller.rb