inherited_resources 1.4.1 → 1.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.
- checksums.yaml +4 -4
- data/CHANGELOG +5 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +8 -3
- data/README.md +33 -12
- data/inherited_resources.gemspec +2 -3
- data/lib/inherited_resources/base_helpers.rb +37 -2
- data/lib/inherited_resources/class_methods.rb +30 -9
- data/lib/inherited_resources/version.rb +1 -1
- data/test/class_methods_test.rb +22 -1
- data/test/strong_parameters_test.rb +84 -1
- metadata +14 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e6392aaded1e0d085dc72577ecbc0793327b6a00
|
|
4
|
+
data.tar.gz: d4891c303bae5e1255a5a74b580a1cfb0162f5d9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 034f81e33b0c640c9f4ca86499b7a9869fced0a34d278ce89b73e146c96ed2a0dece341bbe398de25b68c54add3142395f71224c15ecc01dd039cf435726669d
|
|
7
|
+
data.tar.gz: 606ca852e3a8b8a548e1edb65500dd7491dd692498298aaf12b555b036778334f442d98cbf04b030641abc7f033fe7d2f99105e3822c92c55b83aacb1b1b2a50
|
data/CHANGELOG
CHANGED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
inherited_resources (1.
|
|
4
|
+
inherited_resources (1.5.0)
|
|
5
5
|
has_scope (~> 0.6.0.rc)
|
|
6
|
-
responders (~> 1.0
|
|
6
|
+
responders (~> 1.0)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: https://rubygems.org/
|
|
@@ -69,7 +69,7 @@ GEM
|
|
|
69
69
|
rake (>= 0.8.7)
|
|
70
70
|
thor (>= 0.18.1, < 2.0)
|
|
71
71
|
rake (10.1.0)
|
|
72
|
-
responders (1.
|
|
72
|
+
responders (1.1.0)
|
|
73
73
|
railties (>= 3.2, < 5)
|
|
74
74
|
sprockets (2.10.0)
|
|
75
75
|
hike (~> 1.2)
|
|
@@ -80,6 +80,10 @@ GEM
|
|
|
80
80
|
actionpack (>= 3.0)
|
|
81
81
|
activesupport (>= 3.0)
|
|
82
82
|
sprockets (~> 2.8)
|
|
83
|
+
strong_parameters (0.1.4)
|
|
84
|
+
actionpack (>= 3.2.0)
|
|
85
|
+
activemodel (>= 3.2.0)
|
|
86
|
+
railties (>= 3.2.0)
|
|
83
87
|
thor (0.18.1)
|
|
84
88
|
thread_safe (0.1.2)
|
|
85
89
|
atomic
|
|
@@ -98,4 +102,5 @@ DEPENDENCIES
|
|
|
98
102
|
inherited_resources!
|
|
99
103
|
mocha
|
|
100
104
|
rails (>= 3.2, < 5)
|
|
105
|
+
strong_parameters
|
|
101
106
|
turn
|
data/README.md
CHANGED
|
@@ -52,9 +52,7 @@ http://github.com/josevalim/inherited_resources/tree/v1.0
|
|
|
52
52
|
Since Inherited Resources 1.0, has_scope is not part of its core anymore but
|
|
53
53
|
a gem dependency. Be sure to check the documentation to see how you can use it:
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
http://github.com/plataformatec/has_scope
|
|
57
|
-
```
|
|
55
|
+
- <http://github.com/plataformatec/has_scope>
|
|
58
56
|
|
|
59
57
|
And it can be installed as:
|
|
60
58
|
|
|
@@ -69,9 +67,7 @@ but is set as Inherited Resources dependency and it's used by default by
|
|
|
69
67
|
InheritedResources controllers. Be sure to check the documentation to see
|
|
70
68
|
how it will change your application:
|
|
71
69
|
|
|
72
|
-
|
|
73
|
-
http://github.com/plataformatec/responders
|
|
74
|
-
```
|
|
70
|
+
- <http://github.com/plataformatec/responders>
|
|
75
71
|
|
|
76
72
|
And it can be installed with:
|
|
77
73
|
|
|
@@ -166,7 +162,7 @@ One reason to use the `inherit_resources` macro would be to ensure that your con
|
|
|
166
162
|
never responds with the html mime-type. `InheritedResources::Base` already
|
|
167
163
|
responds to `:html`, and the `respond_to` macro is strictly additive.
|
|
168
164
|
Therefore, if you want to create a controller that, for example, responds ONLY via `:js`,
|
|
169
|
-
you will have write it this way:
|
|
165
|
+
you will have to write it this way:
|
|
170
166
|
|
|
171
167
|
```ruby
|
|
172
168
|
class AccountsController < ApplicationController
|
|
@@ -266,7 +262,7 @@ end
|
|
|
266
262
|
```
|
|
267
263
|
|
|
268
264
|
Since most of the time when you change a create, update or destroy
|
|
269
|
-
action you do so because you want to
|
|
265
|
+
action you do so because you want to change its redirect url, a shortcut is
|
|
270
266
|
provided. So you can do:
|
|
271
267
|
|
|
272
268
|
```ruby
|
|
@@ -315,6 +311,18 @@ end
|
|
|
315
311
|
Yes, it's that simple! The nice part is since you already set the instance variable
|
|
316
312
|
`@project`, it will not build a project again.
|
|
317
313
|
|
|
314
|
+
Same goes for updating the project:
|
|
315
|
+
|
|
316
|
+
```ruby
|
|
317
|
+
class ProjectsController < InheritedResources::Base
|
|
318
|
+
def update
|
|
319
|
+
@project = Project.find(params[:id])
|
|
320
|
+
@project.something_special!
|
|
321
|
+
update!
|
|
322
|
+
end
|
|
323
|
+
end
|
|
324
|
+
```
|
|
325
|
+
|
|
318
326
|
Before we finish this topic, we should talk about one more thing: "success/failure
|
|
319
327
|
blocks". Let's suppose that when we update our project, in case of failure, we
|
|
320
328
|
want to redirect to the project url instead of re-rendering the edit template.
|
|
@@ -638,9 +646,8 @@ index actions accordingly). Also, it will produce `delete_resource_{path,url}` a
|
|
|
638
646
|
Sometimes just DRYing up the controllers is not enough. If you need to DRY up your views,
|
|
639
647
|
check this Wiki page:
|
|
640
648
|
|
|
641
|
-
```
|
|
642
649
|
https://github.com/josevalim/inherited_resources/wiki/Views-Inheritance
|
|
643
|
-
|
|
650
|
+
|
|
644
651
|
|
|
645
652
|
Notice that Rails 3.1 ships with view inheritance built-in.
|
|
646
653
|
|
|
@@ -678,6 +685,8 @@ def permitted_params
|
|
|
678
685
|
end
|
|
679
686
|
```
|
|
680
687
|
|
|
688
|
+
Remember that if your field is sent by client to server as an array, you have to write `:permitted_field => []`, not just `:permitted_field`.
|
|
689
|
+
|
|
681
690
|
Note that this doesn't work if you use strong_parameters' require method
|
|
682
691
|
instead of permit, because whereas permit returns the entire sanitized
|
|
683
692
|
parameter hash, require returns only the sanitized params below the parameter
|
|
@@ -687,7 +696,7 @@ If you need `params.require` you can do it like this:
|
|
|
687
696
|
|
|
688
697
|
```ruby
|
|
689
698
|
def permitted_params
|
|
690
|
-
{:widget => params.
|
|
699
|
+
{:widget => params.fetch(:widget, {}).permit(:permitted_field, :other_permitted_field)}
|
|
691
700
|
end
|
|
692
701
|
```
|
|
693
702
|
|
|
@@ -695,10 +704,22 @@ Or better yet just override `#build_resource_params` directly:
|
|
|
695
704
|
|
|
696
705
|
```ruby
|
|
697
706
|
def build_resource_params
|
|
698
|
-
[params.
|
|
707
|
+
[params.fetch(:widget, {}).permit(:permitted_field, :other_permitted_field)]
|
|
708
|
+
end
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
|
|
712
|
+
Instead you can stick to a standard Rails 4 notation (as rails scaffold generates) and write:
|
|
713
|
+
|
|
714
|
+
```ruby
|
|
715
|
+
def widget_params
|
|
716
|
+
params.require(:widget).permit(:permitted_field, :other_permitted_field)
|
|
699
717
|
end
|
|
700
718
|
```
|
|
701
719
|
|
|
720
|
+
In such case you should remove #permitted_params method because it has greater priority.
|
|
721
|
+
|
|
722
|
+
|
|
702
723
|
## Bugs and Feedback
|
|
703
724
|
|
|
704
725
|
If you discover any bugs, please describe it in the issues tracker, including Rails and InheritedResources versions.
|
data/inherited_resources.gemspec
CHANGED
|
@@ -7,10 +7,9 @@ Gem::Specification.new do |s|
|
|
|
7
7
|
s.version = InheritedResources::VERSION.dup
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
|
9
9
|
s.summary = "Inherited Resources speeds up development by making your controllers inherit all restful actions so you just have to focus on what is important."
|
|
10
|
-
s.email = "developers@plataformatec.com.br"
|
|
11
10
|
s.homepage = "http://github.com/josevalim/inherited_resources"
|
|
12
11
|
s.description = "Inherited Resources speeds up development by making your controllers inherit all restful actions so you just have to focus on what is important."
|
|
13
|
-
s.authors = ['José Valim']
|
|
12
|
+
s.authors = ['José Valim', 'Joel Moss']
|
|
14
13
|
s.license = "MIT"
|
|
15
14
|
|
|
16
15
|
s.rubyforge_project = "inherited_resources"
|
|
@@ -19,6 +18,6 @@ Gem::Specification.new do |s|
|
|
|
19
18
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
|
20
19
|
s.require_paths = ["lib"]
|
|
21
20
|
|
|
22
|
-
s.add_dependency("responders", "~> 1.0
|
|
21
|
+
s.add_dependency("responders", "~> 1.0")
|
|
23
22
|
s.add_dependency("has_scope", "~> 0.6.0.rc")
|
|
24
23
|
end
|
|
@@ -51,7 +51,7 @@ module InheritedResources
|
|
|
51
51
|
get_resource_ivar || set_resource_ivar(end_of_association_chain.send(method_for_find, params[:id]))
|
|
52
52
|
end
|
|
53
53
|
|
|
54
|
-
# This method is
|
|
54
|
+
# This method is responsible for building the object on :new and :create
|
|
55
55
|
# methods. If you overwrite it, don't forget to cache the result in an
|
|
56
56
|
# instance variable.
|
|
57
57
|
#
|
|
@@ -316,9 +316,44 @@ module InheritedResources
|
|
|
316
316
|
@resource_params ||= build_resource_params
|
|
317
317
|
end
|
|
318
318
|
|
|
319
|
+
def resource_params_method_name
|
|
320
|
+
"#{resource_instance_name}_params"
|
|
321
|
+
end
|
|
322
|
+
|
|
323
|
+
# Returns hash of sanitized params in a form like
|
|
324
|
+
# `{:project => {:project_attribute => 'value'}}`
|
|
325
|
+
#
|
|
326
|
+
# This method makes use of `project_params` (or `smth_else_params`) which
|
|
327
|
+
# is a default Rails controller method for strong parameters definition.
|
|
328
|
+
#
|
|
329
|
+
# `permitted_params` is usually fired by method :new, :create, :update
|
|
330
|
+
# actions. Action :new usually has no parameters so strong parameters
|
|
331
|
+
# `require` directive raises a +ActionController::ParameterMissing+
|
|
332
|
+
# exception. `#permitted_params` rescues such exceptions in :new and
|
|
333
|
+
# returns an empty hash of parameters (which is reasonable default).
|
|
334
|
+
# If for any reasons you need something more specific, you can redefine
|
|
335
|
+
# this method in a way previous `inherited_resources` versions did:
|
|
336
|
+
#
|
|
337
|
+
# # Unnecessary redefinition
|
|
338
|
+
# def permitted_params
|
|
339
|
+
# params.permit(:project => [:project_attribute])
|
|
340
|
+
# end
|
|
341
|
+
#
|
|
342
|
+
def permitted_params
|
|
343
|
+
return nil unless respond_to?(resource_params_method_name, true)
|
|
344
|
+
{resource_request_name => send(resource_params_method_name)}
|
|
345
|
+
rescue ActionController::ParameterMissing
|
|
346
|
+
# typically :new action
|
|
347
|
+
if params[:action].to_s == 'new'
|
|
348
|
+
{resource_request_name => {}}
|
|
349
|
+
else
|
|
350
|
+
raise
|
|
351
|
+
end
|
|
352
|
+
end
|
|
353
|
+
|
|
319
354
|
# extract attributes from params
|
|
320
355
|
def build_resource_params
|
|
321
|
-
parameters =
|
|
356
|
+
parameters = permitted_params || params
|
|
322
357
|
rparams = [parameters[resource_request_name] || parameters[resource_instance_name] || {}]
|
|
323
358
|
if without_protection_given?
|
|
324
359
|
rparams << without_protection
|
|
@@ -171,13 +171,34 @@ module InheritedResources
|
|
|
171
171
|
|
|
172
172
|
config = self.resources_configuration[symbol] = {}
|
|
173
173
|
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
174
|
+
class_name = ''
|
|
175
|
+
config[:parent_class] = options.delete(:parent_class) ||
|
|
176
|
+
begin
|
|
177
|
+
class_name = if options[:class_name]
|
|
178
|
+
options.delete(:class_name).to_s.pluralize.classify
|
|
179
|
+
else
|
|
180
|
+
namespace = self.name.deconstantize
|
|
181
|
+
model_name = symbol.to_s.pluralize.classify
|
|
182
|
+
|
|
183
|
+
klass = model_name
|
|
184
|
+
while namespace != ''
|
|
185
|
+
klass = "#{namespace}::#{model_name}"
|
|
186
|
+
if klass.safe_constantize
|
|
187
|
+
break
|
|
188
|
+
else
|
|
189
|
+
namespace = namespace.deconstantize
|
|
190
|
+
end
|
|
191
|
+
end
|
|
192
|
+
|
|
193
|
+
klass = model_name if klass.start_with?('::')
|
|
194
|
+
|
|
195
|
+
klass
|
|
196
|
+
end
|
|
197
|
+
class_name.constantize
|
|
198
|
+
rescue NameError => e
|
|
199
|
+
raise unless e.message.include?(class_name)
|
|
200
|
+
nil
|
|
201
|
+
end
|
|
181
202
|
|
|
182
203
|
config[:singleton] = options.delete(:singleton) || false
|
|
183
204
|
config[:collection_name] = options.delete(:collection_name) || symbol.to_s.pluralize.to_sym
|
|
@@ -229,13 +250,13 @@ module InheritedResources
|
|
|
229
250
|
# * <tt>:resource</tt> - Allows you to specify resource actions.
|
|
230
251
|
# custom_actions :resource => :delete
|
|
231
252
|
# This macro creates 'delete' method in controller and defines
|
|
232
|
-
#
|
|
253
|
+
# delete_resource_{path,url} helpers. The body of generated 'delete'
|
|
233
254
|
# method is same as 'show' method. So you can override it if need
|
|
234
255
|
#
|
|
235
256
|
# * <tt>:collection</tt> - Allows you to specify collection actions.
|
|
236
257
|
# custom_actions :collection => :search
|
|
237
258
|
# This macro creates 'search' method in controller and defines
|
|
238
|
-
#
|
|
259
|
+
# search_resources_{path,url} helpers. The body of generated 'search'
|
|
239
260
|
# method is same as 'index' method. So you can override it if need
|
|
240
261
|
#
|
|
241
262
|
def custom_actions(options)
|
data/test/class_methods_test.rb
CHANGED
|
@@ -23,6 +23,17 @@ class DeansController < InheritedResources::Base
|
|
|
23
23
|
belongs_to :school
|
|
24
24
|
end
|
|
25
25
|
|
|
26
|
+
module Library
|
|
27
|
+
class Category
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
class Subcategory
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
class SubcategoriesController < InheritedResources::Base
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
26
37
|
class ActionsClassMethodTest < ActionController::TestCase
|
|
27
38
|
tests BooksController
|
|
28
39
|
|
|
@@ -108,7 +119,7 @@ class BelongsToErrorsTest < ActiveSupport::TestCase
|
|
|
108
119
|
|
|
109
120
|
def test_belongs_to_raises_an_error_when_multiple_associations_are_given_with_options
|
|
110
121
|
assert_raise ArgumentError do
|
|
111
|
-
DeansController.send(:belongs_to, :arguments, :with_options, :parent_class =>
|
|
122
|
+
DeansController.send(:belongs_to, :arguments, :with_options, :parent_class => Book)
|
|
112
123
|
end
|
|
113
124
|
end
|
|
114
125
|
|
|
@@ -131,4 +142,14 @@ class BelongsToErrorsTest < ActiveSupport::TestCase
|
|
|
131
142
|
ensure
|
|
132
143
|
DeansController.send(:parents_symbols=, [:school])
|
|
133
144
|
end
|
|
145
|
+
|
|
146
|
+
def test_belongs_to_for_namespaced_controller_and_namespaced_model_fetches_model_in_the_namespace_firstly
|
|
147
|
+
Library::SubcategoriesController.send(:belongs_to, :category)
|
|
148
|
+
assert_equal Library::Category, Library::SubcategoriesController.resources_configuration[:category][:parent_class]
|
|
149
|
+
end
|
|
150
|
+
|
|
151
|
+
def test_belongs_to_without_namespace_sets_parent_class_properly
|
|
152
|
+
FoldersController.send(:belongs_to, :book)
|
|
153
|
+
assert_equal Book, FoldersController.resources_configuration[:book][:parent_class]
|
|
154
|
+
end
|
|
134
155
|
end
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
require File.expand_path('test_helper', File.dirname(__FILE__))
|
|
2
2
|
|
|
3
|
+
if ActionPack::VERSION::MAJOR == 3
|
|
4
|
+
require 'strong_parameters'
|
|
5
|
+
end
|
|
6
|
+
|
|
3
7
|
class Widget
|
|
4
8
|
extend ActiveModel::Naming
|
|
5
9
|
end
|
|
@@ -7,6 +11,7 @@ end
|
|
|
7
11
|
class WidgetsController < InheritedResources::Base
|
|
8
12
|
end
|
|
9
13
|
|
|
14
|
+
# test usage of `permitted_params`
|
|
10
15
|
class StrongParametersTest < ActionController::TestCase
|
|
11
16
|
def setup
|
|
12
17
|
@controller = WidgetsController.new
|
|
@@ -34,4 +39,82 @@ class StrongParametersTest < ActionController::TestCase
|
|
|
34
39
|
Widget.expects(:find).with('42').returns(mock_widget)
|
|
35
40
|
put :update, :id => '42', :widget => {:permitted => 'param', :prohibited => 'param'}
|
|
36
41
|
end
|
|
37
|
-
|
|
42
|
+
|
|
43
|
+
# `permitted_params` has greater priority than `widget_params`
|
|
44
|
+
def test_with_permitted_and_resource_methods
|
|
45
|
+
@controller.stubs(:widget_params).returns(:permitted => 'another_param')
|
|
46
|
+
class << @controller
|
|
47
|
+
private :widget_params
|
|
48
|
+
end
|
|
49
|
+
Widget.expects(:new).with(:permitted => 'param')
|
|
50
|
+
get :new, :widget => { :permitted => 'param', :prohibited => 'param' }
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# test usage of `widget_params`
|
|
55
|
+
class StrongParametersWithoutPermittedParamsTest < ActionController::TestCase
|
|
56
|
+
def setup
|
|
57
|
+
@controller = WidgetsController.new
|
|
58
|
+
@controller.stubs(:widget_url).returns("/")
|
|
59
|
+
@controller.stubs(:widget_params).returns(:permitted => 'param')
|
|
60
|
+
class << @controller
|
|
61
|
+
private :widget_params
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def test_permitted_params_from_new
|
|
66
|
+
Widget.expects(:new).with(:permitted => 'param')
|
|
67
|
+
get :new, :widget => { :permitted => 'param', :prohibited => 'param' }
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def test_permitted_params_from_create
|
|
71
|
+
Widget.expects(:new).with(:permitted => 'param').returns(mock(:save => true))
|
|
72
|
+
post :create, :widget => { :permitted => 'param', :prohibited => 'param' }
|
|
73
|
+
end
|
|
74
|
+
|
|
75
|
+
def test_permitted_params_from_update
|
|
76
|
+
mock_widget = mock
|
|
77
|
+
mock_widget.stubs(:class).returns(Widget)
|
|
78
|
+
mock_widget.expects(:update_attributes).with(:permitted => 'param')
|
|
79
|
+
Widget.expects(:find).with('42').returns(mock_widget)
|
|
80
|
+
put :update, :id => '42', :widget => {:permitted => 'param', :prohibited => 'param'}
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# test usage of `widget_params` integrated with strong parameters (not using stubs)
|
|
85
|
+
class StrongParametersIntegrationTest < ActionController::TestCase
|
|
86
|
+
def setup
|
|
87
|
+
@controller = WidgetsController.new
|
|
88
|
+
@controller.stubs(:widget_url).returns("/")
|
|
89
|
+
|
|
90
|
+
class << @controller
|
|
91
|
+
define_method :widget_params do
|
|
92
|
+
params.require(:widget).permit(:permitted)
|
|
93
|
+
end
|
|
94
|
+
private :widget_params
|
|
95
|
+
end
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
def test_permitted_empty_params_from_new
|
|
99
|
+
Widget.expects(:new).with({})
|
|
100
|
+
get :new, {}
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
def test_permitted_params_from_new
|
|
104
|
+
Widget.expects(:new).with('permitted' => 'param')
|
|
105
|
+
get :new, :widget => { :permitted => 'param', :prohibited => 'param' }
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def test_permitted_params_from_create
|
|
109
|
+
Widget.expects(:new).with('permitted' => 'param').returns(mock(:save => true))
|
|
110
|
+
post :create, :widget => { :permitted => 'param', :prohibited => 'param' }
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
def test_permitted_params_from_update
|
|
114
|
+
mock_widget = mock
|
|
115
|
+
mock_widget.stubs(:class).returns(Widget)
|
|
116
|
+
mock_widget.expects(:update_attributes).with('permitted' => 'param')
|
|
117
|
+
Widget.expects(:find).with('42').returns(mock_widget)
|
|
118
|
+
put :update, :id => '42', :widget => {:permitted => 'param', :prohibited => 'param'}
|
|
119
|
+
end
|
|
120
|
+
end
|
metadata
CHANGED
|
@@ -1,51 +1,52 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: inherited_resources
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- José Valim
|
|
8
|
+
- Joel Moss
|
|
8
9
|
autorequire:
|
|
9
10
|
bindir: bin
|
|
10
11
|
cert_chain: []
|
|
11
|
-
date:
|
|
12
|
+
date: 2014-06-03 00:00:00.000000000 Z
|
|
12
13
|
dependencies:
|
|
13
14
|
- !ruby/object:Gem::Dependency
|
|
14
15
|
name: responders
|
|
15
16
|
requirement: !ruby/object:Gem::Requirement
|
|
16
17
|
requirements:
|
|
17
|
-
- - ~>
|
|
18
|
+
- - "~>"
|
|
18
19
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: 1.0
|
|
20
|
+
version: '1.0'
|
|
20
21
|
type: :runtime
|
|
21
22
|
prerelease: false
|
|
22
23
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
24
|
requirements:
|
|
24
|
-
- - ~>
|
|
25
|
+
- - "~>"
|
|
25
26
|
- !ruby/object:Gem::Version
|
|
26
|
-
version: 1.0
|
|
27
|
+
version: '1.0'
|
|
27
28
|
- !ruby/object:Gem::Dependency
|
|
28
29
|
name: has_scope
|
|
29
30
|
requirement: !ruby/object:Gem::Requirement
|
|
30
31
|
requirements:
|
|
31
|
-
- - ~>
|
|
32
|
+
- - "~>"
|
|
32
33
|
- !ruby/object:Gem::Version
|
|
33
34
|
version: 0.6.0.rc
|
|
34
35
|
type: :runtime
|
|
35
36
|
prerelease: false
|
|
36
37
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
38
|
requirements:
|
|
38
|
-
- - ~>
|
|
39
|
+
- - "~>"
|
|
39
40
|
- !ruby/object:Gem::Version
|
|
40
41
|
version: 0.6.0.rc
|
|
41
42
|
description: Inherited Resources speeds up development by making your controllers
|
|
42
43
|
inherit all restful actions so you just have to focus on what is important.
|
|
43
|
-
email:
|
|
44
|
+
email:
|
|
44
45
|
executables: []
|
|
45
46
|
extensions: []
|
|
46
47
|
extra_rdoc_files: []
|
|
47
48
|
files:
|
|
48
|
-
- .gitignore
|
|
49
|
+
- ".gitignore"
|
|
49
50
|
- CHANGELOG
|
|
50
51
|
- Gemfile
|
|
51
52
|
- Gemfile.lock
|
|
@@ -179,17 +180,17 @@ require_paths:
|
|
|
179
180
|
- lib
|
|
180
181
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
181
182
|
requirements:
|
|
182
|
-
- -
|
|
183
|
+
- - ">="
|
|
183
184
|
- !ruby/object:Gem::Version
|
|
184
185
|
version: '0'
|
|
185
186
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
186
187
|
requirements:
|
|
187
|
-
- -
|
|
188
|
+
- - ">="
|
|
188
189
|
- !ruby/object:Gem::Version
|
|
189
190
|
version: '0'
|
|
190
191
|
requirements: []
|
|
191
192
|
rubyforge_project: inherited_resources
|
|
192
|
-
rubygems_version: 2.
|
|
193
|
+
rubygems_version: 2.2.2
|
|
193
194
|
signing_key:
|
|
194
195
|
specification_version: 4
|
|
195
196
|
summary: Inherited Resources speeds up development by making your controllers inherit
|
|
@@ -294,4 +295,3 @@ test_files:
|
|
|
294
295
|
- test/views/users/update.js.erb
|
|
295
296
|
- test/views/venue/show.html.erb
|
|
296
297
|
- test/views/widgets/new.html.erb
|
|
297
|
-
has_rdoc:
|