moonrope 1.2.5 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/moonrope/action.rb +29 -29
- data/lib/moonrope/action_result.rb +9 -9
- data/lib/moonrope/base.rb +27 -27
- data/lib/moonrope/before_action.rb +5 -5
- data/lib/moonrope/controller.rb +6 -6
- data/lib/moonrope/dsl/action_dsl.rb +18 -13
- data/lib/moonrope/dsl/base_dsl.rb +7 -7
- data/lib/moonrope/dsl/controller_dsl.rb +8 -8
- data/lib/moonrope/dsl/structure_dsl.rb +23 -14
- data/lib/moonrope/errors.rb +12 -12
- data/lib/moonrope/eval_environment.rb +22 -22
- data/lib/moonrope/eval_helpers.rb +3 -3
- data/lib/moonrope/helper.rb +4 -4
- data/lib/moonrope/param_set.rb +6 -6
- data/lib/moonrope/rack_middleware.rb +16 -16
- data/lib/moonrope/railtie.rb +10 -10
- data/lib/moonrope/request.rb +20 -20
- data/lib/moonrope/structure.rb +28 -28
- data/lib/moonrope/structure_attribute.rb +5 -6
- data/lib/moonrope/version.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1be661422027acf61678bd7b6a73932376b53ec3
|
4
|
+
data.tar.gz: 3ea06c9d8c46916c81b833d6c0bd7328e7886580
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adf31e337346e9f3013a1d89b6583ef1dc87a0fd771c21aaf4c871460e31abdc6f95c839922df56cc8eaaac91dec05b60fe15f3ad99ab0eff86cde9b171155a7
|
7
|
+
data.tar.gz: 3256a19d2938b43720bdf9ea95ffac7f5f86704c9acffce1977c7f16591ea0eacfbc1de49b96fa3b5a0782fba49955e52a6407c75da60efbbb71781fdb219791
|
data/lib/moonrope/action.rb
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
module Moonrope
|
2
2
|
class Action
|
3
|
-
|
3
|
+
|
4
4
|
# @return [Moonrope::Controller] the associated controller
|
5
5
|
attr_reader :controller
|
6
|
-
|
6
|
+
|
7
7
|
# @return [Symbol] the name of the action
|
8
8
|
attr_reader :name
|
9
|
-
|
9
|
+
|
10
10
|
# @return [Moonrope::DSL::Action] the action's DSL
|
11
11
|
attr_reader :dsl
|
12
|
-
|
12
|
+
|
13
13
|
# @return [Hash] the params available for the action
|
14
14
|
attr_reader :params
|
15
|
-
|
15
|
+
|
16
16
|
# @return [String] the description of the action
|
17
17
|
attr_accessor :description
|
18
|
-
|
18
|
+
|
19
19
|
# @return [Proc] the access check condition for the action
|
20
20
|
attr_accessor :access
|
21
|
-
|
21
|
+
|
22
22
|
# @return [Proc] the action for the action
|
23
23
|
attr_accessor :action
|
24
|
-
|
24
|
+
|
25
25
|
#
|
26
26
|
# Initialize a new action
|
27
27
|
#
|
@@ -36,9 +36,9 @@ module Moonrope
|
|
36
36
|
@dsl = Moonrope::DSL::ActionDSL.new(self)
|
37
37
|
@dsl.instance_eval(&block) if block_given?
|
38
38
|
end
|
39
|
-
|
39
|
+
|
40
40
|
#
|
41
|
-
# Return a hash of all params for this action which are
|
41
|
+
# Return a hash of all params for this action which are
|
42
42
|
#
|
43
43
|
# @return [Hash] hash with field names as keys with default values
|
44
44
|
#
|
@@ -48,7 +48,7 @@ module Moonrope
|
|
48
48
|
h
|
49
49
|
end
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
#
|
53
53
|
# Execute a block of code and catch approprite Moonrope errors and return
|
54
54
|
# a result.
|
@@ -74,12 +74,12 @@ module Moonrope
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
#
|
79
79
|
# Executes the action and returns a ActionResult object with the result
|
80
80
|
# of the action.
|
81
81
|
#
|
82
|
-
# @param request [Moonrope::Request or Moonrope::EvalEnvironment]
|
82
|
+
# @param request [Moonrope::Request or Moonrope::EvalEnvironment]
|
83
83
|
# @return [Moonrope::ActionResult]
|
84
84
|
#
|
85
85
|
def execute(request = nil)
|
@@ -88,38 +88,38 @@ module Moonrope
|
|
88
88
|
else
|
89
89
|
eval_environment = EvalEnvironment.new(@controller.base, request)
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
#
|
93
93
|
# Set this actions default parameters in the eval environment so that
|
94
94
|
# it has access to them.
|
95
95
|
#
|
96
96
|
eval_environment.default_params = self.default_params
|
97
|
-
|
97
|
+
|
98
98
|
#
|
99
99
|
# Set the current action to the eval environment so it knows what action
|
100
100
|
# invoked this.
|
101
101
|
#
|
102
102
|
eval_environment.action = self
|
103
|
-
|
103
|
+
|
104
104
|
convert_errors_to_action_result do
|
105
105
|
#
|
106
106
|
# Validate the parameters
|
107
107
|
#
|
108
108
|
self.validate_parameters(eval_environment.params)
|
109
|
-
|
109
|
+
|
110
110
|
start_time = Time.now
|
111
|
-
|
111
|
+
|
112
112
|
# Run before filters
|
113
113
|
controller.before_actions_for(name).each do |action|
|
114
114
|
eval_environment.instance_eval(&action.block)
|
115
115
|
end
|
116
|
-
|
116
|
+
|
117
117
|
# Run the actual action
|
118
118
|
response = eval_environment.instance_eval(&action)
|
119
|
-
|
119
|
+
|
120
120
|
# Calculate the length of time this request takes
|
121
121
|
time_to_run = Time.now - start_time
|
122
|
-
|
122
|
+
|
123
123
|
# Prepare a action result
|
124
124
|
result = ActionResult.new(self)
|
125
125
|
result.data = response
|
@@ -127,12 +127,12 @@ module Moonrope
|
|
127
127
|
result.time = time_to_run.round(2)
|
128
128
|
result.flags = eval_environment.flags
|
129
129
|
result.headers = eval_environment.headers
|
130
|
-
|
130
|
+
|
131
131
|
# Return the result object
|
132
132
|
result
|
133
133
|
end
|
134
134
|
end
|
135
|
-
|
135
|
+
|
136
136
|
#
|
137
137
|
# Check whether the authenticated user has access to this request.
|
138
138
|
# Accepts a Request or an EvalEnvironment.
|
@@ -146,9 +146,9 @@ module Moonrope
|
|
146
146
|
else
|
147
147
|
eval_environment = EvalEnvironment.new(@controller.base, request)
|
148
148
|
end
|
149
|
-
|
149
|
+
|
150
150
|
access_condition = self.access || @controller.access || @controller.base.default_access
|
151
|
-
|
151
|
+
|
152
152
|
if eval_environment.auth
|
153
153
|
# If there's no authentication object, access is permitted otherwise
|
154
154
|
# we'll do the normal testing.
|
@@ -174,7 +174,7 @@ module Moonrope
|
|
174
174
|
!access_condition
|
175
175
|
end
|
176
176
|
end
|
177
|
-
|
177
|
+
|
178
178
|
#
|
179
179
|
# Return whether or not the passed ParamSet is valid for this action
|
180
180
|
#
|
@@ -186,17 +186,17 @@ module Moonrope
|
|
186
186
|
if value[:required] && param_set[name].nil?
|
187
187
|
raise Moonrope::Errors::ParameterError, "`#{name}` parameter is required but is missing"
|
188
188
|
end
|
189
|
-
|
189
|
+
|
190
190
|
if value[:regex] && param_set[name] && !(param_set[name].to_s =~ value[:regex])
|
191
191
|
raise Moonrope::Errors::ParameterError, "`#{name}` parameter is invalid"
|
192
192
|
end
|
193
|
-
|
193
|
+
|
194
194
|
if value[:type] && param_set[name] && !param_set[name].is_a?(value[:type])
|
195
195
|
raise Moonrope::Errors::ParameterError, "`#{name}` should be a `#{value[:type]}` but is a `#{param_set[name].class}`"
|
196
196
|
end
|
197
197
|
end
|
198
198
|
true
|
199
199
|
end
|
200
|
-
|
200
|
+
|
201
201
|
end
|
202
202
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Moonrope
|
2
2
|
class ActionResult
|
3
|
-
|
3
|
+
|
4
4
|
#
|
5
5
|
# Initialize a new result from a Moonrope::Action.
|
6
6
|
#
|
@@ -12,22 +12,22 @@ module Moonrope
|
|
12
12
|
@time = nil
|
13
13
|
@flags = {}
|
14
14
|
end
|
15
|
-
|
15
|
+
|
16
16
|
# @return [Object] the return value from the action
|
17
17
|
attr_accessor :data
|
18
|
-
|
18
|
+
|
19
19
|
# @return [String] the status of the request
|
20
20
|
attr_accessor :status
|
21
|
-
|
21
|
+
|
22
22
|
# @return [Hash] headers which have been set in the action
|
23
23
|
attr_accessor :headers
|
24
|
-
|
24
|
+
|
25
25
|
# @return [Float] the length of time to process the action
|
26
26
|
attr_accessor :time
|
27
|
-
|
27
|
+
|
28
28
|
# @return [Hash] flags which have been set in the action
|
29
29
|
attr_accessor :flags
|
30
|
-
|
30
|
+
|
31
31
|
#
|
32
32
|
# Return a Hash representation of this ActionResult without the
|
33
33
|
# headers.
|
@@ -49,7 +49,7 @@ module Moonrope
|
|
49
49
|
:data => self.data
|
50
50
|
}
|
51
51
|
end
|
52
|
-
|
52
|
+
|
53
53
|
#
|
54
54
|
# Return the ActionResult's hash with a JSON.
|
55
55
|
#
|
@@ -58,6 +58,6 @@ module Moonrope
|
|
58
58
|
def to_json
|
59
59
|
to_hash.to_json
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
end
|
63
63
|
end
|
data/lib/moonrope/base.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module Moonrope
|
2
2
|
class Base
|
3
|
-
|
3
|
+
|
4
4
|
#
|
5
|
-
# Load a set of Moonrope configuration files from a given
|
5
|
+
# Load a set of Moonrope configuration files from a given
|
6
6
|
# directory.
|
7
7
|
#
|
8
8
|
# @param path [String] the path to a directory containing Moonrope files
|
@@ -13,34 +13,34 @@ module Moonrope
|
|
13
13
|
api.load(path)
|
14
14
|
api
|
15
15
|
end
|
16
|
-
|
16
|
+
|
17
17
|
# @return [Array] the array of defined structures
|
18
18
|
attr_reader :structures
|
19
|
-
|
19
|
+
|
20
20
|
# @return [Array] the array of defined controllers
|
21
21
|
attr_accessor :controllers
|
22
|
-
|
22
|
+
|
23
23
|
# @return [Array] the array of defined helpers
|
24
24
|
attr_accessor :helpers
|
25
|
-
|
25
|
+
|
26
26
|
# @return [Moonrope::DSL::BaseDSL] the base DSL
|
27
27
|
attr_accessor :dsl
|
28
|
-
|
28
|
+
|
29
29
|
# @return [Proc] the authentictor
|
30
30
|
attr_accessor :authenticator
|
31
|
-
|
31
|
+
|
32
32
|
# @return [Proc] the default access condition
|
33
33
|
attr_accessor :default_access
|
34
|
-
|
34
|
+
|
35
35
|
# @return [Array] the array of directories to load from (if relevant)
|
36
36
|
attr_accessor :load_directories
|
37
|
-
|
37
|
+
|
38
38
|
# @return [String] the moonrope environment
|
39
39
|
attr_accessor :environment
|
40
|
-
|
40
|
+
|
41
41
|
# @return [Proc] a proc to execute before every request
|
42
42
|
attr_accessor :on_request
|
43
|
-
|
43
|
+
|
44
44
|
#
|
45
45
|
# Initialize a new instance of the Moonrope::Base
|
46
46
|
#
|
@@ -53,7 +53,7 @@ module Moonrope
|
|
53
53
|
@dsl = Moonrope::DSL::BaseDSL.new(self)
|
54
54
|
@dsl.instance_eval(&block) if block_given?
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
#
|
58
58
|
# Reset the whole base to contain no data.
|
59
59
|
#
|
@@ -64,7 +64,7 @@ module Moonrope
|
|
64
64
|
@authenticator = nil
|
65
65
|
@default_access = nil
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
#
|
69
69
|
# Reload this whole base API from the path
|
70
70
|
#
|
@@ -84,9 +84,9 @@ module Moonrope
|
|
84
84
|
raise Moonrope::Errors::Error, "Can't reload Moonrope::Base as it wasn't required from a directory"
|
85
85
|
end
|
86
86
|
end
|
87
|
-
|
87
|
+
|
88
88
|
alias_method :reload, :load
|
89
|
-
|
89
|
+
|
90
90
|
#
|
91
91
|
# Load from a given directory
|
92
92
|
#
|
@@ -100,7 +100,7 @@ module Moonrope
|
|
100
100
|
false
|
101
101
|
end
|
102
102
|
end
|
103
|
-
|
103
|
+
|
104
104
|
#
|
105
105
|
# Add a dirctory to the directories to load
|
106
106
|
#
|
@@ -112,7 +112,7 @@ module Moonrope
|
|
112
112
|
false
|
113
113
|
end
|
114
114
|
end
|
115
|
-
|
115
|
+
|
116
116
|
#
|
117
117
|
# Return a structure of the given name
|
118
118
|
#
|
@@ -122,9 +122,9 @@ module Moonrope
|
|
122
122
|
def structure(name)
|
123
123
|
structures.select { |s| s.name == name }.first
|
124
124
|
end
|
125
|
-
|
125
|
+
|
126
126
|
alias_method :[], :structure
|
127
|
-
|
127
|
+
|
128
128
|
#
|
129
129
|
# Return a controller of the given name
|
130
130
|
#
|
@@ -134,9 +134,9 @@ module Moonrope
|
|
134
134
|
def controller(name)
|
135
135
|
controllers.select { |a| a.name == name }.first
|
136
136
|
end
|
137
|
-
|
137
|
+
|
138
138
|
alias_method :/, :controller
|
139
|
-
|
139
|
+
|
140
140
|
#
|
141
141
|
# Create a new rack request for this API.
|
142
142
|
#
|
@@ -145,7 +145,7 @@ module Moonrope
|
|
145
145
|
def request(*args)
|
146
146
|
Moonrope::Request.new(self, *args)
|
147
147
|
end
|
148
|
-
|
148
|
+
|
149
149
|
#
|
150
150
|
# Return a helper for the given name and, potentially controller
|
151
151
|
#
|
@@ -162,7 +162,7 @@ module Moonrope
|
|
162
162
|
end
|
163
163
|
matched_helpers.first
|
164
164
|
end
|
165
|
-
|
165
|
+
|
166
166
|
#
|
167
167
|
# Return all the external errors which are registered for this base
|
168
168
|
#
|
@@ -171,15 +171,15 @@ module Moonrope
|
|
171
171
|
def external_errors
|
172
172
|
@external_errors ||= {}
|
173
173
|
end
|
174
|
-
|
174
|
+
|
175
175
|
#
|
176
176
|
# Register a new external error
|
177
177
|
#
|
178
|
-
# @param error_class [Class] a class which should be caught
|
178
|
+
# @param error_class [Class] a class which should be caught
|
179
179
|
#
|
180
180
|
def register_external_error(error_class, &block)
|
181
181
|
self.external_errors[error_class] = block
|
182
182
|
end
|
183
|
-
|
183
|
+
|
184
184
|
end
|
185
185
|
end
|
@@ -1,15 +1,15 @@
|
|
1
1
|
module Moonrope
|
2
2
|
class BeforeAction
|
3
|
-
|
3
|
+
|
4
4
|
# @return [Array] the names of actions to execute this request on
|
5
5
|
attr_accessor :actions
|
6
|
-
|
6
|
+
|
7
7
|
# @return [Proc] the block to execute in this action
|
8
8
|
attr_accessor :block
|
9
|
-
|
9
|
+
|
10
10
|
# @return [Moonrope::Controller] the associated controller
|
11
11
|
attr_reader :controller
|
12
|
-
|
12
|
+
|
13
13
|
#
|
14
14
|
# Initilize a new BeforeAction
|
15
15
|
#
|
@@ -19,6 +19,6 @@ module Moonrope
|
|
19
19
|
@controller = controller
|
20
20
|
@actions = []
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
23
|
end
|
24
24
|
end
|
data/lib/moonrope/controller.rb
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
module Moonrope
|
2
2
|
class Controller
|
3
|
-
|
3
|
+
|
4
4
|
attr_accessor :name, :actions, :access, :befores
|
5
5
|
attr_reader :base, :dsl
|
6
|
-
|
6
|
+
|
7
7
|
#
|
8
8
|
# Initalize a new Moonrope::Controller
|
9
9
|
#
|
@@ -20,7 +20,7 @@ module Moonrope
|
|
20
20
|
@dsl = Moonrope::DSL::ControllerDSL.new(self)
|
21
21
|
@dsl.instance_eval(&block) if block_given?
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
#
|
25
25
|
# Return an array of before actions which must be executed for
|
26
26
|
# the given action.
|
@@ -33,7 +33,7 @@ module Moonrope
|
|
33
33
|
b.actions.empty? || b.actions.include?(action)
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
#
|
38
38
|
# Lookup and return an action in this controller by name.
|
39
39
|
#
|
@@ -43,8 +43,8 @@ module Moonrope
|
|
43
43
|
def action(action)
|
44
44
|
actions[action.to_sym]
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
alias_method :/, :action
|
48
|
-
|
48
|
+
|
49
49
|
end
|
50
50
|
end
|
@@ -1,8 +1,8 @@
|
|
1
1
|
module Moonrope
|
2
2
|
module DSL
|
3
3
|
class ActionDSL
|
4
|
-
|
5
|
-
#
|
4
|
+
|
5
|
+
#
|
6
6
|
# Initialize a new ActionDSL
|
7
7
|
#
|
8
8
|
# @param action [Moonrope::Action]
|
@@ -10,8 +10,8 @@ module Moonrope
|
|
10
10
|
def initialize(action)
|
11
11
|
@action = action
|
12
12
|
end
|
13
|
-
|
14
|
-
#
|
13
|
+
|
14
|
+
#
|
15
15
|
# Set the description for the action
|
16
16
|
#
|
17
17
|
# description "Returns all users which are configured"
|
@@ -22,21 +22,26 @@ module Moonrope
|
|
22
22
|
def description(value)
|
23
23
|
@action.description = value
|
24
24
|
end
|
25
|
-
|
25
|
+
|
26
26
|
#
|
27
27
|
# Add a new param to the action's param set.
|
28
28
|
#
|
29
29
|
# param :page, "The page number", :default => 2
|
30
30
|
#
|
31
31
|
# @param name [Symbol] the name of the param
|
32
|
-
# @param
|
33
|
-
# @param
|
32
|
+
# @param description_or_options [String/Hash] a description of the action or options
|
33
|
+
# @param options_if_description [Hash] a hash of additional options if a description was provided
|
34
34
|
# @return [void]
|
35
35
|
#
|
36
|
-
def param(name,
|
37
|
-
|
36
|
+
def param(name, description_or_options = {}, options_if_description = {})
|
37
|
+
if description_or_options.is_a?(String)
|
38
|
+
options = options_if_description.merge(:description => description_or_options)
|
39
|
+
else
|
40
|
+
options = description_or_options
|
41
|
+
end
|
42
|
+
@action.params[name] = options
|
38
43
|
end
|
39
|
-
|
44
|
+
|
40
45
|
#
|
41
46
|
# Set the access condition for the action.
|
42
47
|
#
|
@@ -50,7 +55,7 @@ module Moonrope
|
|
50
55
|
def access(value = nil, &block)
|
51
56
|
@action.access = block_given? ? block : value
|
52
57
|
end
|
53
|
-
|
58
|
+
|
54
59
|
#
|
55
60
|
# Set the action to execute when this action is invoked.
|
56
61
|
#
|
@@ -60,11 +65,11 @@ module Moonrope
|
|
60
65
|
#
|
61
66
|
# @yield the contents of the yield will be saved as the action
|
62
67
|
# @return [void]
|
63
|
-
#
|
68
|
+
#
|
64
69
|
def action(&block)
|
65
70
|
@action.action = block
|
66
71
|
end
|
67
|
-
|
72
|
+
|
68
73
|
end
|
69
74
|
end
|
70
75
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Moonrope
|
2
2
|
module DSL
|
3
3
|
class BaseDSL
|
4
|
-
|
4
|
+
|
5
5
|
#
|
6
6
|
# Initiaize a new BaseDSL
|
7
7
|
#
|
@@ -10,7 +10,7 @@ module Moonrope
|
|
10
10
|
def initialize(base)
|
11
11
|
@base = base
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
#
|
15
15
|
# Define a new structure
|
16
16
|
#
|
@@ -27,7 +27,7 @@ module Moonrope
|
|
27
27
|
structure.dsl.instance_eval(&block) if block_given?
|
28
28
|
structure
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
#
|
32
32
|
# Define a new controller or append values to an existing
|
33
33
|
# controller if it has already been defined.
|
@@ -46,7 +46,7 @@ module Moonrope
|
|
46
46
|
controller.dsl.instance_eval(&block) if block_given?
|
47
47
|
controller
|
48
48
|
end
|
49
|
-
|
49
|
+
|
50
50
|
#
|
51
51
|
# Set the authenticator for the API.
|
52
52
|
#
|
@@ -55,7 +55,7 @@ module Moonrope
|
|
55
55
|
def authenticator(&block)
|
56
56
|
@base.authenticator = block
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
#
|
60
60
|
# Set the default access check block.
|
61
61
|
#
|
@@ -64,7 +64,7 @@ module Moonrope
|
|
64
64
|
def default_access(value = nil, &block)
|
65
65
|
@base.default_access = block_given? ? block : value
|
66
66
|
end
|
67
|
-
|
67
|
+
|
68
68
|
#
|
69
69
|
# Define a new helper in the global namespace
|
70
70
|
#
|
@@ -80,7 +80,7 @@ module Moonrope
|
|
80
80
|
@base.helpers << helper_instance
|
81
81
|
helper_instance
|
82
82
|
end
|
83
|
-
|
83
|
+
|
84
84
|
end
|
85
85
|
end
|
86
86
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
module Moonrope
|
2
2
|
module DSL
|
3
3
|
class ControllerDSL
|
4
|
-
|
4
|
+
|
5
5
|
#
|
6
6
|
# Initialize a new ControllerDSL
|
7
7
|
#
|
@@ -10,10 +10,10 @@ module Moonrope
|
|
10
10
|
def initialize(controller)
|
11
11
|
@controller = controller
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
# @return [Moonrope::Controller] the associated controller
|
15
15
|
attr_reader :controller
|
16
|
-
|
16
|
+
|
17
17
|
#
|
18
18
|
# Defines a new action within the controller.
|
19
19
|
#
|
@@ -27,12 +27,12 @@ module Moonrope
|
|
27
27
|
@controller.actions[name] = action
|
28
28
|
action
|
29
29
|
end
|
30
|
-
|
30
|
+
|
31
31
|
#
|
32
32
|
# Defines a new before action within the controller.
|
33
33
|
#
|
34
34
|
# @param actions [Symbol] the names of the actions to apply to (none for all)
|
35
|
-
# @yield stores the block as the block to be executed
|
35
|
+
# @yield stores the block as the block to be executed
|
36
36
|
# @return [Moonrope::BeforeAction]
|
37
37
|
#
|
38
38
|
def before(*actions, &block)
|
@@ -42,7 +42,7 @@ module Moonrope
|
|
42
42
|
@controller.befores << before_action
|
43
43
|
before_action
|
44
44
|
end
|
45
|
-
|
45
|
+
|
46
46
|
#
|
47
47
|
# Defines the access required for controller methods which do not
|
48
48
|
# define their own access.
|
@@ -50,7 +50,7 @@ module Moonrope
|
|
50
50
|
def access(value = nil, &block)
|
51
51
|
@controller.access = block_given? ? block : value
|
52
52
|
end
|
53
|
-
|
53
|
+
|
54
54
|
#
|
55
55
|
# Defines a new helper for this controller.
|
56
56
|
#
|
@@ -61,7 +61,7 @@ module Moonrope
|
|
61
61
|
if @controller.base.helper(name, @controller)
|
62
62
|
raise Moonrope::Errors::HelperAlreadyDefined, "Helper has already been defined with name `#{name}`"
|
63
63
|
end
|
64
|
-
|
64
|
+
|
65
65
|
@controller.base.helpers << Moonrope::Helper.new(name, @controller, options, &block)
|
66
66
|
end
|
67
67
|
end
|