restful_controller 0.2.0 → 0.3.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.
- checksums.yaml +5 -5
- data/Rakefile +13 -28
- data/lib/restful.rb +3 -3
- data/lib/restful/actions.rb +8 -8
- data/lib/restful/base.rb +32 -30
- data/lib/restful/dummy_responder.rb +7 -1
- data/lib/restful/version.rb +1 -1
- data/test/actions_definition_test.rb +90 -102
- data/test/alternates_controller_test.rb +3 -3
- data/test/base_controller_test.rb +3 -3
- data/test/blocks_controller_test.rb +21 -19
- data/test/custom_notices_controller_test.rb +15 -15
- data/test/dummy/Rakefile +1 -1
- data/test/dummy/app/controllers/admin/prefix_controller.rb +1 -2
- data/test/dummy/app/controllers/alternates_controller.rb +1 -0
- data/test/dummy/app/controllers/blocks_controller.rb +1 -0
- data/test/dummy/app/controllers/custom_notices_controller.rb +3 -2
- data/test/dummy/app/controllers/documents_controller.rb +1 -0
- data/test/dummy/app/controllers/home_controller.rb +1 -1
- data/test/dummy/bin/bundle +2 -2
- data/test/dummy/bin/rails +3 -3
- data/test/dummy/bin/rake +2 -2
- data/test/dummy/bin/setup +9 -9
- data/test/dummy/bin/update +9 -9
- data/test/dummy/config.ru +1 -1
- data/test/dummy/config/application.rb +2 -2
- data/test/dummy/config/boot.rb +2 -2
- data/test/dummy/config/environment.rb +1 -1
- data/test/dummy/config/environments/development.rb +2 -2
- data/test/dummy/config/environments/production.rb +2 -2
- data/test/dummy/config/environments/test.rb +1 -1
- data/test/dummy/config/initializers/assets.rb +1 -1
- data/test/dummy/config/initializers/new_framework_defaults.rb +0 -3
- data/test/dummy/config/initializers/secret_token.rb +1 -1
- data/test/dummy/config/initializers/session_store.rb +1 -1
- data/test/dummy/config/routes.rb +7 -7
- data/test/dummy/config/spring.rb +2 -2
- data/test/dummy/db/schema.rb +0 -3
- data/test/dummy/db/test.sqlite3 +0 -0
- data/test/dummy/log/test.log +8594 -10176
- data/test/dummy/test/fixtures/documents.yml +0 -1
- data/test/dummy/test/models/document_test.rb +1 -1
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/6J/6JkRVOkWfpJgVdKJvc1Pw_0hopmCAb8LywBOAgbTxPY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/7C/7CBb8IrKtRa1tAFouXDuh69wf5M06FA1kGvLkb2rHhY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/8c/8cL_BBqA8ZjvsO8Qr4y_QwPuT4zY3k9Q9fMic6AyjN4.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/AA/AA4BDcLoeiNWhgY32FTQ__Sr3wut5WWRnqftFgs6HqA.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Fb/fBhPDroIt06Go-FnHxcjidNjJDKR034ZPsNs7oBfVLQ.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/K3/K3gWPcnFXATaCRmXOiumXOa1X07zA5D6dmFexyOpZEg.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Mx/MxcniQVVd54UqFgKOAgwMU27DUDTLRNqbGUi3VXisf0.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/PS/PS_LEWVle-SdbOI5lVVO7nThhXYrlos5PIdBhuOpLhc.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sp/SpEnq27QAQ0Li1vhxbAKlA33LXAQAnMiJJWPd83x8Ak.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/cn/cnx0JDK2DwkXAXAchod20Tv0QD0mugtgHIm2tQjgElE.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/dF/dFunnXYtuyxPw2A4Z33UaEfLNGNvYfZDVJHW2OJtiK4.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/gT/gT4D8n7iBAqnfdzwUO999860TnF3meQhBBQ6JC7vfdQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/hj/hj8Ir9wcVSy1KYrnWu9bpD24vDhCG3tvt-nKbNxb1Wg.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/oC/oCsZTGZyV4kH8Y4OeSDUdrwfkJFPzTODZjuBKZB8oGQ.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/op/opx04YlnioOc0nGwDSqFh0tpSqmnUr0EmTdwAiRhO6Y.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/q6/q6BYa32YJF11eGVapO4ouNl6gayPIsARgMavlzZmoi0.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/sT/sTqWjekGJXt3YciElxAQDbFO3BP9xe1PvjaHnQZPUnc.cache +1 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/u2/u2rh3TQBtssLxkixwJPY8KX4qWgNmCCawH5FVfY73gY.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7KkTV3ibfIEysLB_ug5bfmnn2VLV_BldukPR3EoPBk.cache +0 -0
- data/test/dummy/tmp/cache/assets/sprockets/v3.0/yU/yUT_twoB3H2TPF6vxGkWJTz0YEE8DxpwPOQNnIT_8Cc.cache +0 -0
- data/test/prefix_controller_test.rb +29 -31
- data/test/resourceful_test.rb +4 -5
- data/test/support/base_actions.rb +90 -88
- data/test/test_helper.rb +9 -16
- metadata +100 -113
- data/test/dummy/log/development.log +0 -0
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 49c7211f87084860d5ae09b39ece25ac705bd892b99adcb82cdcc1f13cbc356d
|
|
4
|
+
data.tar.gz: ef8650d7bf3331e8faf2d2b883478dd315a688bde0e726b0cec9ec06cf6fde20
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4548866520a2951e1c9188e33cb32de8a1170d992bc70432c207738609ad1704363090166a0cffcc02885980603decb1e5db30e14523b3d2cb84ff9d432c832f
|
|
7
|
+
data.tar.gz: 43e781b84bef704ad6db88aeddd5815d0437f463b69f5cf8096bb1bbad5a8d947ec395583028704c6952f1e43756b44c6fa49e9c8cad04ffefdde8defb23fd9b
|
data/Rakefile
CHANGED
|
@@ -1,44 +1,29 @@
|
|
|
1
1
|
begin
|
|
2
|
-
require
|
|
2
|
+
require "bundler/setup"
|
|
3
3
|
rescue LoadError
|
|
4
|
-
puts
|
|
4
|
+
puts "You must `gem install bundler` and `bundle install` to run rake tasks"
|
|
5
5
|
end
|
|
6
6
|
|
|
7
|
-
require
|
|
7
|
+
require "rdoc/task"
|
|
8
8
|
|
|
9
9
|
RDoc::Task.new(:rdoc) do |rdoc|
|
|
10
|
-
rdoc.rdoc_dir =
|
|
11
|
-
rdoc.title =
|
|
12
|
-
rdoc.options <<
|
|
13
|
-
rdoc.rdoc_files.include(
|
|
14
|
-
rdoc.rdoc_files.include(
|
|
10
|
+
rdoc.rdoc_dir = "rdoc"
|
|
11
|
+
rdoc.title = "Restful"
|
|
12
|
+
rdoc.options << "--line-numbers"
|
|
13
|
+
rdoc.rdoc_files.include("README.rdoc")
|
|
14
|
+
rdoc.rdoc_files.include("lib/**/*.rb")
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
Bundler::GemHelper.install_tasks
|
|
18
18
|
|
|
19
|
-
require
|
|
20
|
-
|
|
21
|
-
desc 'Run rubocop checks'
|
|
22
|
-
task :rubocop do
|
|
23
|
-
sh 'rubocop lib test'
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
desc 'Run flay checks'
|
|
27
|
-
task :flay do
|
|
28
|
-
sh 'find lib -name \*.rb | xargs flog'
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
desc 'Run flog checks'
|
|
32
|
-
task :flog do
|
|
33
|
-
sh 'flay lib/*.rb'
|
|
34
|
-
end
|
|
19
|
+
require "rake/testtask"
|
|
20
|
+
require "standard/rake"
|
|
35
21
|
|
|
36
22
|
Rake::TestTask.new(:test) do |t|
|
|
37
|
-
t.libs <<
|
|
38
|
-
t.libs <<
|
|
39
|
-
t.pattern =
|
|
23
|
+
t.libs << "lib"
|
|
24
|
+
t.libs << "test"
|
|
25
|
+
t.pattern = "test/**/*_test.rb"
|
|
40
26
|
t.verbose = false
|
|
41
27
|
end
|
|
42
28
|
|
|
43
|
-
|
|
44
29
|
task default: :test
|
data/lib/restful.rb
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
##
|
|
2
2
|
# Module that require all the libraries need it by Restful library.
|
|
3
3
|
module Restful
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
4
|
+
require "restful/dummy_responder"
|
|
5
|
+
require "restful/actions"
|
|
6
|
+
require "restful/base"
|
|
7
7
|
end
|
data/lib/restful/actions.rb
CHANGED
|
@@ -70,9 +70,9 @@ module Restful
|
|
|
70
70
|
# The instance variable name is a pluralization of the model name defined
|
|
71
71
|
# in the restful macro.
|
|
72
72
|
def index(options = {}, &block)
|
|
73
|
-
respond_with(collection, options,
|
|
73
|
+
respond_with(collection, options, &block) if stale?(collection, last_modified: collection.maximum(:updated_at))
|
|
74
74
|
end
|
|
75
|
-
|
|
75
|
+
alias index! index
|
|
76
76
|
|
|
77
77
|
##
|
|
78
78
|
# new action, creates a new object and sets an instance variable which can
|
|
@@ -81,7 +81,7 @@ module Restful
|
|
|
81
81
|
def new(options = {}, &block)
|
|
82
82
|
respond_with(build_resource, options, &block)
|
|
83
83
|
end
|
|
84
|
-
|
|
84
|
+
alias new! new
|
|
85
85
|
|
|
86
86
|
##
|
|
87
87
|
# create action, creates a new object off the received params and sets an
|
|
@@ -99,7 +99,7 @@ module Restful
|
|
|
99
99
|
|
|
100
100
|
respond_with_dual(object, options, &block)
|
|
101
101
|
end
|
|
102
|
-
|
|
102
|
+
alias create! create
|
|
103
103
|
|
|
104
104
|
##
|
|
105
105
|
# edit action, finds an object based on the passed id, if no object is
|
|
@@ -115,7 +115,7 @@ module Restful
|
|
|
115
115
|
|
|
116
116
|
respond_with(object, options, &block)
|
|
117
117
|
end
|
|
118
|
-
|
|
118
|
+
alias edit! edit
|
|
119
119
|
|
|
120
120
|
##
|
|
121
121
|
# update action, finds an object based on the passed id, if no object is
|
|
@@ -135,7 +135,7 @@ module Restful
|
|
|
135
135
|
|
|
136
136
|
respond_with_dual(object, options, &block)
|
|
137
137
|
end
|
|
138
|
-
|
|
138
|
+
alias update! update
|
|
139
139
|
|
|
140
140
|
##
|
|
141
141
|
# show action, finds an object based on the passed id, if no object is
|
|
@@ -147,7 +147,7 @@ module Restful
|
|
|
147
147
|
|
|
148
148
|
respond_with(object, options, &block) if stale?(object)
|
|
149
149
|
end
|
|
150
|
-
|
|
150
|
+
alias show! show
|
|
151
151
|
|
|
152
152
|
##
|
|
153
153
|
# destroy action, finds an object based on the passed id, if no object is
|
|
@@ -161,7 +161,7 @@ module Restful
|
|
|
161
161
|
|
|
162
162
|
respond_with(object, options, &block)
|
|
163
163
|
end
|
|
164
|
-
|
|
164
|
+
alias destroy! destroy
|
|
165
165
|
|
|
166
166
|
protected :index!, :new!, :create!, :edit!, :update!, :show!, :destroy!
|
|
167
167
|
end
|
data/lib/restful/base.rb
CHANGED
|
@@ -31,7 +31,7 @@ module Restful
|
|
|
31
31
|
# restful macro.
|
|
32
32
|
def collection
|
|
33
33
|
get_collection_ivar || begin
|
|
34
|
-
|
|
34
|
+
set_collection_ivar class_name.all
|
|
35
35
|
end
|
|
36
36
|
end
|
|
37
37
|
|
|
@@ -44,42 +44,43 @@ module Restful
|
|
|
44
44
|
##
|
|
45
45
|
# Generic route path helper method to edit a model.
|
|
46
46
|
def edit_resource_path(object)
|
|
47
|
-
|
|
47
|
+
send route_prefix_to_method_name("edit_#{class_name.model_name.singular_route_key}_path"),
|
|
48
48
|
object
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
##
|
|
52
52
|
# Generic route url helper method to edit a model.
|
|
53
53
|
def edit_resource_url(object)
|
|
54
|
-
|
|
54
|
+
send route_prefix_to_method_name("edit_#{class_name.model_name.singular_route_key}_url"),
|
|
55
55
|
object
|
|
56
56
|
end
|
|
57
57
|
|
|
58
58
|
##
|
|
59
59
|
# Generic route path helper method for new model.
|
|
60
60
|
def new_resource_path
|
|
61
|
-
|
|
61
|
+
send route_prefix_to_method_name("new_#{class_name.model_name.singular_route_key}_path")
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
##
|
|
65
65
|
# Generic route url helper method for new model.
|
|
66
66
|
def new_resource_url
|
|
67
|
-
|
|
67
|
+
send route_prefix_to_method_name("new_#{class_name.model_name.singular_route_key}_url")
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
##
|
|
71
71
|
# This is a helper method to get the object collection path.
|
|
72
72
|
def collection_path
|
|
73
|
-
|
|
73
|
+
send route_prefix_to_method_name("#{class_name.model_name.route_key}_path")
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
##
|
|
77
77
|
# This is a helper method to get the object collection url.
|
|
78
78
|
def collection_url
|
|
79
|
-
|
|
79
|
+
send route_prefix_to_method_name("#{class_name.model_name.route_key}_url")
|
|
80
80
|
end
|
|
81
81
|
|
|
82
82
|
protected
|
|
83
|
+
|
|
83
84
|
##
|
|
84
85
|
# Return a url helper method name with additional route prefix if set.
|
|
85
86
|
# If route_prefix param is set to `admin` then the method name will be:
|
|
@@ -87,8 +88,9 @@ module Restful
|
|
|
87
88
|
# edit_resource_path => admin_edit_resource_path
|
|
88
89
|
#
|
|
89
90
|
def route_prefix_to_method_name(method)
|
|
90
|
-
"#{route_prefix +
|
|
91
|
+
"#{route_prefix + "_" if route_prefix}#{method}"
|
|
91
92
|
end
|
|
93
|
+
|
|
92
94
|
##
|
|
93
95
|
# Return the instance variable name for a single object based on the model
|
|
94
96
|
# name defined in the restful macro, example:
|
|
@@ -109,7 +111,7 @@ module Restful
|
|
|
109
111
|
|
|
110
112
|
##
|
|
111
113
|
# Get the object from a single object instance variable.
|
|
112
|
-
def get_resource_ivar
|
|
114
|
+
def get_resource_ivar # rubocop:disable Naming/AccessorMethodName
|
|
113
115
|
instance_variable_get resource_ivar
|
|
114
116
|
end
|
|
115
117
|
|
|
@@ -118,13 +120,13 @@ module Restful
|
|
|
118
120
|
#
|
|
119
121
|
# ==== Params
|
|
120
122
|
# * object: The object to be stored in the instance variable.
|
|
121
|
-
def set_resource_ivar(object)
|
|
123
|
+
def set_resource_ivar(object) # rubocop:disable Naming/AccessorMethodName
|
|
122
124
|
instance_variable_set resource_ivar, object
|
|
123
125
|
end
|
|
124
126
|
|
|
125
127
|
##
|
|
126
128
|
# Get the collection of objects from an instance variable.
|
|
127
|
-
def get_collection_ivar
|
|
129
|
+
def get_collection_ivar # rubocop:disable Naming/AccessorMethodName
|
|
128
130
|
instance_variable_get collection_ivar
|
|
129
131
|
end
|
|
130
132
|
|
|
@@ -134,7 +136,7 @@ module Restful
|
|
|
134
136
|
# ==== Params
|
|
135
137
|
# * objects: The objects collections to be stored in the instance
|
|
136
138
|
# variable.
|
|
137
|
-
def set_collection_ivar(objects)
|
|
139
|
+
def set_collection_ivar(objects) # rubocop:disable Naming/AccessorMethodName
|
|
138
140
|
instance_variable_set collection_ivar, objects
|
|
139
141
|
end
|
|
140
142
|
|
|
@@ -143,7 +145,7 @@ module Restful
|
|
|
143
145
|
# a new object.
|
|
144
146
|
def build_resource
|
|
145
147
|
get_resource_ivar || begin
|
|
146
|
-
|
|
148
|
+
set_resource_ivar class_name.new
|
|
147
149
|
end
|
|
148
150
|
end
|
|
149
151
|
|
|
@@ -167,16 +169,16 @@ module Restful
|
|
|
167
169
|
#
|
|
168
170
|
# If no template method is implemented in the controller then
|
|
169
171
|
# a NotImplementedError exception is raised.
|
|
170
|
-
def get_secure_params
|
|
172
|
+
def get_secure_params # rubocop:disable Naming/AccessorMethodName
|
|
171
173
|
params_method = "#{action_name}_secure_params".to_sym
|
|
172
174
|
|
|
173
175
|
filterd_params =
|
|
174
|
-
(send(params_method) if
|
|
175
|
-
(send(:secure_params)if
|
|
176
|
+
(send(params_method) if respond_to?(params_method, true)) ||
|
|
177
|
+
(send(:secure_params) if respond_to?(:secure_params, true))
|
|
176
178
|
|
|
177
179
|
unless filterd_params
|
|
178
180
|
raise NotImplementedError,
|
|
179
|
-
|
|
181
|
+
"You need to define template methods for strong params"
|
|
180
182
|
end
|
|
181
183
|
|
|
182
184
|
filterd_params
|
|
@@ -201,10 +203,10 @@ module Restful
|
|
|
201
203
|
end
|
|
202
204
|
end
|
|
203
205
|
when 1
|
|
204
|
-
respond_with
|
|
206
|
+
respond_with(*args, &block)
|
|
205
207
|
else
|
|
206
208
|
options[:location] = block.call if block
|
|
207
|
-
respond_with
|
|
209
|
+
respond_with(*args)
|
|
208
210
|
end
|
|
209
211
|
end
|
|
210
212
|
|
|
@@ -212,10 +214,10 @@ module Restful
|
|
|
212
214
|
# This method set the flash messages if they are passed within the action
|
|
213
215
|
# ==== Params
|
|
214
216
|
# * options: a hash with :notice or :alert messages
|
|
215
|
-
def set_flash(options = {})
|
|
216
|
-
if options.
|
|
217
|
+
def set_flash(options = {}) # rubocop:disable Naming/AccessorMethodName
|
|
218
|
+
if options.key?(:notice)
|
|
217
219
|
flash[:notice] = options[:notice]
|
|
218
|
-
elsif options.
|
|
220
|
+
elsif options.key?(:alert)
|
|
219
221
|
flash[:alert] = options[:alert]
|
|
220
222
|
end
|
|
221
223
|
end
|
|
@@ -233,11 +235,10 @@ module Restful
|
|
|
233
235
|
def find_and_update_resource
|
|
234
236
|
model = class_name.find(params[:id])
|
|
235
237
|
model.tap do |m|
|
|
236
|
-
m.
|
|
238
|
+
m.update get_secure_params
|
|
237
239
|
set_resource_ivar m
|
|
238
240
|
end
|
|
239
241
|
end
|
|
240
|
-
|
|
241
242
|
end
|
|
242
243
|
|
|
243
244
|
##
|
|
@@ -331,7 +332,7 @@ module Restful
|
|
|
331
332
|
# controller to respond.
|
|
332
333
|
#
|
|
333
334
|
def restful(model: nil, route_prefix: nil, actions: :all)
|
|
334
|
-
|
|
335
|
+
class_attribute :model_name, :class_name, :route_prefix,
|
|
335
336
|
instance_writer: false
|
|
336
337
|
|
|
337
338
|
self.model_name = model
|
|
@@ -352,6 +353,7 @@ module Restful
|
|
|
352
353
|
end
|
|
353
354
|
|
|
354
355
|
protected
|
|
356
|
+
|
|
355
357
|
##
|
|
356
358
|
# Method that calculates the actions to which our controller should
|
|
357
359
|
# respond to.
|
|
@@ -364,7 +366,7 @@ module Restful
|
|
|
364
366
|
|
|
365
367
|
options = actions.extract_options!
|
|
366
368
|
except_actions = options[:except] || []
|
|
367
|
-
keep_actions
|
|
369
|
+
keep_actions -= except_actions
|
|
368
370
|
|
|
369
371
|
(ACTIONS - keep_actions).uniq.each do |action|
|
|
370
372
|
undef_method action.to_sym, "#{action.to_sym}!"
|
|
@@ -374,12 +376,12 @@ module Restful
|
|
|
374
376
|
##
|
|
375
377
|
# Method that gets the model class name from the passed symbol.
|
|
376
378
|
def class_from_name
|
|
377
|
-
if model_name.to_s.include?
|
|
378
|
-
ns, *klass = model_name.to_s.split(
|
|
379
|
+
if model_name.to_s.include? "_"
|
|
380
|
+
ns, *klass = model_name.to_s.split("_").collect(&:camelize)
|
|
379
381
|
begin
|
|
380
|
-
"#{ns}::#{klass.join(
|
|
382
|
+
"#{ns}::#{klass.join("")}".constantize
|
|
381
383
|
rescue NameError
|
|
382
|
-
"#{ns}#{klass.join(
|
|
384
|
+
"#{ns}#{klass.join("")}".constantize
|
|
383
385
|
end
|
|
384
386
|
else
|
|
385
387
|
model_name.to_s.camelize.constantize
|
|
@@ -4,8 +4,14 @@ module Restful
|
|
|
4
4
|
# Since there is no action need it from it, it just implements
|
|
5
5
|
# a method_missing for responder that needs to be ignored.
|
|
6
6
|
class DummyResponder
|
|
7
|
-
|
|
7
|
+
# rubocop:disable Style/MethodMissingSuper
|
|
8
|
+
def method_missing(args) # :nodoc:
|
|
8
9
|
nil
|
|
9
10
|
end
|
|
11
|
+
# rubocop:enable Style/MethodMissingSuper
|
|
12
|
+
|
|
13
|
+
def respond_to_missing?(name, include_private) # :nodoc:
|
|
14
|
+
true
|
|
15
|
+
end
|
|
10
16
|
end
|
|
11
17
|
end
|
data/lib/restful/version.rb
CHANGED
|
@@ -1,124 +1,112 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "test_helper"
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
respond_to :html
|
|
9
|
-
restful model: :document
|
|
10
|
-
end
|
|
3
|
+
class ActionsDefindefionTest < ActiveSupport::TestCase
|
|
4
|
+
class AllDefaultActionsController < BaseController
|
|
5
|
+
respond_to :html
|
|
6
|
+
restful model: :document
|
|
7
|
+
end
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
class AllExplicdefActionsController < BaseController
|
|
10
|
+
respond_to :html
|
|
11
|
+
restful model: :document, actions: :all
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
class ExceptActionsController < BaseController
|
|
15
|
+
respond_to :html
|
|
16
|
+
restful model: :document,
|
|
17
|
+
actions: [:all,
|
|
18
|
+
except: [:eddef, :update, :destroy],]
|
|
19
|
+
end
|
|
13
20
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
subject.must_respond_to :create
|
|
20
|
-
subject.must_respond_to :destroy
|
|
21
|
+
class HandPickWdefhExceptionActionsController < BaseController
|
|
22
|
+
respond_to :html
|
|
23
|
+
restful model: :document,
|
|
24
|
+
actions: [:index, :show, :destroy,
|
|
25
|
+
except: [:eddef, :update, :destroy],]
|
|
21
26
|
end
|
|
22
27
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
respond_to :html
|
|
28
|
-
restful model: :document, actions: :all
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
subject = AllExplicitActionsController.new
|
|
32
|
-
|
|
33
|
-
subject.must_respond_to :index
|
|
34
|
-
subject.must_respond_to :show
|
|
35
|
-
subject.must_respond_to :edit
|
|
36
|
-
subject.must_respond_to :update
|
|
37
|
-
subject.must_respond_to :new
|
|
38
|
-
subject.must_respond_to :create
|
|
39
|
-
subject.must_respond_to :destroy
|
|
28
|
+
class HandPickActionsController < BaseController
|
|
29
|
+
respond_to :html
|
|
30
|
+
restful model: :document,
|
|
31
|
+
actions: [:index, :show, :destroy]
|
|
40
32
|
end
|
|
41
33
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
actions: [:all,
|
|
49
|
-
except: [:edit, :update, :destroy]]
|
|
50
|
-
end
|
|
34
|
+
class InvalidActionsController < BaseController
|
|
35
|
+
respond_to :html
|
|
36
|
+
restful model: :document,
|
|
37
|
+
actions: [:indice, :show, :eliminar,
|
|
38
|
+
except: [:eddef, :actualizar, :destroy],]
|
|
39
|
+
end
|
|
51
40
|
|
|
52
|
-
|
|
41
|
+
def test_have_all_rest_actions_when_no_action_is_defined
|
|
42
|
+
subject = AllDefaultActionsController.new
|
|
53
43
|
|
|
54
|
-
subject
|
|
55
|
-
subject
|
|
56
|
-
subject
|
|
57
|
-
subject
|
|
58
|
-
subject
|
|
59
|
-
subject
|
|
60
|
-
subject
|
|
44
|
+
assert_respond_to subject, :index
|
|
45
|
+
assert_respond_to subject, :show
|
|
46
|
+
refute_respond_to subject, :eddef
|
|
47
|
+
assert_respond_to subject, :update
|
|
48
|
+
assert_respond_to subject, :new
|
|
49
|
+
assert_respond_to subject, :create
|
|
50
|
+
assert_respond_to subject, :destroy
|
|
61
51
|
end
|
|
62
52
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
subject = HandPickWithExceptionActionsController.new
|
|
74
|
-
|
|
75
|
-
subject.must_respond_to :index
|
|
76
|
-
subject.must_respond_to :show
|
|
77
|
-
subject.wont_respond_to :edit
|
|
78
|
-
subject.wont_respond_to :update
|
|
79
|
-
subject.wont_respond_to :new
|
|
80
|
-
subject.wont_respond_to :create
|
|
81
|
-
subject.wont_respond_to :destroy
|
|
53
|
+
def test_have_all_rest_actions_when_all_actions_are_defined
|
|
54
|
+
subject = AllExplicdefActionsController.new
|
|
55
|
+
|
|
56
|
+
assert_respond_to subject, :index
|
|
57
|
+
assert_respond_to subject, :show
|
|
58
|
+
refute_respond_to subject, :eddef
|
|
59
|
+
assert_respond_to subject, :update
|
|
60
|
+
assert_respond_to subject, :new
|
|
61
|
+
assert_respond_to subject, :create
|
|
62
|
+
assert_respond_to subject, :destroy
|
|
82
63
|
end
|
|
83
64
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
# Controller class for tests
|
|
87
|
-
class HandPickActionsController < BaseController
|
|
88
|
-
respond_to :html
|
|
89
|
-
restful model: :document,
|
|
90
|
-
actions: [:index, :show, :destroy]
|
|
91
|
-
end
|
|
65
|
+
def test_have_all_but_except_actions
|
|
66
|
+
subject = ExceptActionsController.new
|
|
92
67
|
|
|
93
|
-
subject
|
|
68
|
+
assert_respond_to subject, :index
|
|
69
|
+
assert_respond_to subject, :show
|
|
70
|
+
refute_respond_to subject, :eddef
|
|
71
|
+
refute_respond_to subject, :update
|
|
72
|
+
assert_respond_to subject, :new
|
|
73
|
+
assert_respond_to subject, :create
|
|
74
|
+
refute_respond_to subject, :destroy
|
|
75
|
+
end
|
|
94
76
|
|
|
95
|
-
|
|
96
|
-
subject.
|
|
97
|
-
|
|
98
|
-
subject
|
|
99
|
-
subject
|
|
100
|
-
subject
|
|
101
|
-
subject
|
|
77
|
+
def test_have_listed_actions_but_except_actions
|
|
78
|
+
subject = HandPickWdefhExceptionActionsController.new
|
|
79
|
+
|
|
80
|
+
assert_respond_to subject, :index
|
|
81
|
+
assert_respond_to subject, :show
|
|
82
|
+
refute_respond_to subject, :eddef
|
|
83
|
+
refute_respond_to subject, :update
|
|
84
|
+
refute_respond_to subject, :new
|
|
85
|
+
refute_respond_to subject, :create
|
|
86
|
+
refute_respond_to subject, :destroy
|
|
102
87
|
end
|
|
103
88
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
89
|
+
def test_have_listed_actions
|
|
90
|
+
subject = HandPickActionsController.new
|
|
91
|
+
|
|
92
|
+
assert_respond_to subject, :index
|
|
93
|
+
assert_respond_to subject, :show
|
|
94
|
+
assert_respond_to subject, :destroy
|
|
95
|
+
refute_respond_to subject, :eddef
|
|
96
|
+
refute_respond_to subject, :update
|
|
97
|
+
refute_respond_to subject, :new
|
|
98
|
+
refute_respond_to subject, :create
|
|
99
|
+
end
|
|
113
100
|
|
|
101
|
+
def test_have_invalid_actions_listed
|
|
114
102
|
subject = InvalidActionsController.new
|
|
115
103
|
|
|
116
|
-
subject
|
|
117
|
-
subject
|
|
118
|
-
subject
|
|
119
|
-
subject
|
|
120
|
-
subject
|
|
121
|
-
subject
|
|
122
|
-
subject
|
|
104
|
+
refute_respond_to subject, :index
|
|
105
|
+
assert_respond_to subject, :show
|
|
106
|
+
refute_respond_to subject, :eddef
|
|
107
|
+
refute_respond_to subject, :update
|
|
108
|
+
refute_respond_to subject, :new
|
|
109
|
+
refute_respond_to subject, :create
|
|
110
|
+
refute_respond_to subject, :destroy
|
|
123
111
|
end
|
|
124
112
|
end
|