lucie-lib 0.0.14 → 0.0.15
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.
- checksums.yaml +4 -4
- data/lib/lucie/app.rb +8 -18
- data/lib/lucie/controller/base.rb +52 -5
- data/lib/lucie/version.rb +1 -1
- data/test/helpers/before_filter_controller.rb +35 -0
- data/test/test_helper.rb +1 -1
- data/test/unit/controller/base_test.rb +25 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 22fd96396292ce33f05a97f2f226a6c89ca3425a
|
4
|
+
data.tar.gz: 92bdeb9d7ec61ed9b381f2b67602427cac7945dc
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e126cfc3b93fcd8ac4ac875b5ad936475aaec2900d69dd93f14206988f705ac8de7f139cf3b9db9e87aaa30ad523d5511300480aa24fda552ad98a234852a11a
|
7
|
+
data.tar.gz: 4788f1a3742bae56bf44450606a3d0274aa285f81c856480d9b90cc34a021b994b4e4aa48fb894000dfffcc1e87b57b05e3aafb1d3377923f203d35b097c36a6
|
data/lib/lucie/app.rb
CHANGED
@@ -109,26 +109,16 @@ private
|
|
109
109
|
end
|
110
110
|
|
111
111
|
def call_action_on_controller
|
112
|
-
|
113
|
-
|
114
|
-
# pop the args[0] element because this is the method
|
115
|
-
@command.shift
|
116
|
-
elsif controller_has_action? :no_method
|
117
|
-
method = :no_method
|
118
|
-
else
|
119
|
-
self.exit_value = 255
|
120
|
-
raise ActionNotFound.new(action, task)
|
121
|
-
end
|
122
|
-
self.exit_value = controller.send(method)
|
123
|
-
rescue Controller::ExitRequest => exit_request
|
124
|
-
self.exit_value = exit_request.code
|
125
|
-
end
|
112
|
+
begin
|
113
|
+
self.exit_value = controller.send(:apply_action, action)
|
126
114
|
|
127
|
-
|
128
|
-
|
129
|
-
|
115
|
+
# pop the args[0] element because this is the method
|
116
|
+
command.shift
|
117
|
+
rescue ActionNotFound
|
118
|
+
self.exit_value = controller.send(:apply_action, :no_method)
|
130
119
|
end
|
131
|
-
|
120
|
+
rescue ActionNotFound
|
121
|
+
raise ActionNotFound.new(action, task)
|
132
122
|
end
|
133
123
|
|
134
124
|
def apply_validators
|
@@ -10,6 +10,13 @@ module Lucie
|
|
10
10
|
class << self
|
11
11
|
@validators = []
|
12
12
|
@params = CommandLineParser.new("")
|
13
|
+
protected
|
14
|
+
@before_filter_args = []
|
15
|
+
attr_accessor :before_filter_args
|
16
|
+
end
|
17
|
+
|
18
|
+
def help
|
19
|
+
"Help"
|
13
20
|
end
|
14
21
|
|
15
22
|
def initialize(command_line_parser, app)
|
@@ -17,14 +24,17 @@ module Lucie
|
|
17
24
|
@app = app
|
18
25
|
end
|
19
26
|
|
20
|
-
|
21
|
-
@params = params
|
22
|
-
end
|
27
|
+
protected
|
23
28
|
|
24
29
|
def params
|
25
30
|
self.class.params
|
26
31
|
end
|
27
32
|
|
33
|
+
def self.params=(params)
|
34
|
+
@params = params
|
35
|
+
end
|
36
|
+
|
37
|
+
|
28
38
|
def self.params
|
29
39
|
@params
|
30
40
|
end
|
@@ -49,14 +59,51 @@ module Lucie
|
|
49
59
|
validators.each {|validator| validator.apply(params) } if validators
|
50
60
|
end
|
51
61
|
|
62
|
+
def self.before_filter(*args)
|
63
|
+
self.before_filter_args ||= []
|
64
|
+
args.each do |value|
|
65
|
+
self.before_filter_args << value
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
52
69
|
def exit(value)
|
53
70
|
raise ExitRequest, value
|
54
71
|
end
|
55
72
|
|
56
|
-
def
|
57
|
-
|
73
|
+
def apply_action(action)
|
74
|
+
if has_action? action
|
75
|
+
|
76
|
+
self.apply_before_filters
|
77
|
+
|
78
|
+
begin
|
79
|
+
return self.send(action)
|
80
|
+
rescue NameError
|
81
|
+
raise ActionNotFound.new(action, nil)
|
82
|
+
end
|
83
|
+
else
|
84
|
+
raise ActionNotFound.new(action, nil)
|
85
|
+
end
|
86
|
+
rescue Controller::ExitRequest => exit_request
|
87
|
+
return exit_request.code
|
58
88
|
end
|
59
89
|
|
90
|
+
def apply_before_filters
|
91
|
+
klass = self.class
|
92
|
+
while klass.respond_to?(:before_filter)
|
93
|
+
args = Array(klass.send(:before_filter_args))
|
94
|
+
args.each do |method|
|
95
|
+
self.send(method.to_sym)
|
96
|
+
end
|
97
|
+
klass = klass.superclass
|
98
|
+
end
|
99
|
+
end
|
100
|
+
|
101
|
+
def has_action?(action)
|
102
|
+
@public_actions ||= begin
|
103
|
+
self.class.public_instance_methods - Object.public_instance_methods
|
104
|
+
end
|
105
|
+
@public_actions.include?(action.to_sym)
|
106
|
+
end
|
60
107
|
end
|
61
108
|
end
|
62
109
|
end
|
data/lib/lucie/version.rb
CHANGED
@@ -0,0 +1,35 @@
|
|
1
|
+
class BeforeFilterController < Controller::Base
|
2
|
+
before_filter :set_touched
|
3
|
+
attr_reader :touched
|
4
|
+
|
5
|
+
def set_touched
|
6
|
+
@touched = true
|
7
|
+
end
|
8
|
+
|
9
|
+
def method1
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
class BeforeFilterRecursionController < BeforeFilterController
|
14
|
+
def method2
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class MultipleBeforeFilters < Controller::Base
|
19
|
+
before_filter :set_one, :set_two
|
20
|
+
|
21
|
+
def method3
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_reader :one, :two
|
25
|
+
|
26
|
+
protected
|
27
|
+
|
28
|
+
def set_one
|
29
|
+
@one = true
|
30
|
+
end
|
31
|
+
|
32
|
+
def set_two
|
33
|
+
@two = true
|
34
|
+
end
|
35
|
+
end
|
data/test/test_helper.rb
CHANGED
@@ -10,4 +10,29 @@ class ControllerBaseTest < MiniTest::Unit::TestCase
|
|
10
10
|
assert_equal app, controller.app
|
11
11
|
end
|
12
12
|
|
13
|
+
def test_before_filter
|
14
|
+
require "before_filter_controller"
|
15
|
+
|
16
|
+
controller = BeforeFilterController.new(nil, Object.new)
|
17
|
+
controller.send(:apply_action, :method1)
|
18
|
+
assert_equal true, controller.touched
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_before_filter_recursion
|
22
|
+
require "before_filter_controller"
|
23
|
+
|
24
|
+
controller = BeforeFilterRecursionController.new(nil, Object.new)
|
25
|
+
controller.send(:apply_action, :method2)
|
26
|
+
assert_equal true, controller.touched
|
27
|
+
end
|
28
|
+
|
29
|
+
def test_multiple_before_filters
|
30
|
+
require "before_filter_controller"
|
31
|
+
|
32
|
+
controller = MultipleBeforeFilters.new(nil, Object.new)
|
33
|
+
controller.send(:apply_action, :method3)
|
34
|
+
assert_equal true, controller.one
|
35
|
+
assert_equal true, controller.two
|
36
|
+
end
|
37
|
+
|
13
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lucie-lib
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nucc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -92,6 +92,7 @@ files:
|
|
92
92
|
- test/fixtures/template_snippet_fixtures.rb
|
93
93
|
- test/functional/app_test.rb
|
94
94
|
- test/functional/template_snippet_test.rb
|
95
|
+
- test/helpers/before_filter_controller.rb
|
95
96
|
- test/helpers/test_app.rb
|
96
97
|
- test/test_app/app/controllers/application_controller.rb
|
97
98
|
- test/test_helper.rb
|
@@ -127,6 +128,7 @@ test_files:
|
|
127
128
|
- test/fixtures/template_snippet_fixtures.rb
|
128
129
|
- test/functional/app_test.rb
|
129
130
|
- test/functional/template_snippet_test.rb
|
131
|
+
- test/helpers/before_filter_controller.rb
|
130
132
|
- test/helpers/test_app.rb
|
131
133
|
- test/test_app/app/controllers/application_controller.rb
|
132
134
|
- test/test_helper.rb
|