inherited_resources 1.2.2 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +7 -0
- data/Gemfile +1 -1
- data/Gemfile.lock +74 -56
- data/README.rdoc +10 -11
- data/{lib → app/controllers}/inherited_resources/base.rb +4 -6
- data/lib/inherited_resources.rb +4 -2
- data/lib/inherited_resources/base_helpers.rb +15 -3
- data/lib/inherited_resources/class_methods.rb +19 -3
- data/lib/inherited_resources/polymorphic_helpers.rb +7 -7
- data/lib/inherited_resources/shallow_helpers.rb +22 -66
- data/lib/inherited_resources/version.rb +1 -1
- data/test/aliases_test.rb +10 -1
- data/test/base_test.rb +34 -1
- data/test/customized_base_test.rb +1 -1
- data/test/multiple_nested_optional_belongs_to_test.rb +369 -0
- data/test/test_helper.rb +5 -1
- data/test/url_helpers_test.rb +49 -46
- data/test/views/projects/edit.html.erb +1 -0
- data/test/views/projects/new.html.erb +1 -0
- data/test/views/projects/show.html.erb +1 -0
- metadata +14 -6
data/test/test_helper.rb
CHANGED
@@ -12,7 +12,6 @@ RAILS_ROOT = "anywhere"
|
|
12
12
|
require "active_support"
|
13
13
|
require "active_model"
|
14
14
|
require "action_controller"
|
15
|
-
require "rails/railtie"
|
16
15
|
|
17
16
|
I18n.load_path << File.join(File.dirname(__FILE__), 'locales', 'en.yml')
|
18
17
|
I18n.reload!
|
@@ -30,10 +29,15 @@ InheritedResources::Routes.draw do
|
|
30
29
|
match ':controller(/:action(/:id))'
|
31
30
|
match ':controller(/:action)'
|
32
31
|
resources 'posts'
|
32
|
+
root :to => 'posts#index'
|
33
33
|
end
|
34
34
|
|
35
35
|
ActionController::Base.send :include, InheritedResources::Routes.url_helpers
|
36
36
|
|
37
|
+
# Add app base to load path
|
38
|
+
$:.unshift File.expand_path(File.dirname(__FILE__) + '/../app/controllers')
|
39
|
+
require 'inherited_resources/base'
|
40
|
+
|
37
41
|
class ActiveSupport::TestCase
|
38
42
|
setup do
|
39
43
|
@routes = InheritedResources::Routes
|
data/test/url_helpers_test.rb
CHANGED
@@ -125,6 +125,10 @@ end
|
|
125
125
|
|
126
126
|
# Create a TestHelper module with some helpers
|
127
127
|
class UrlHelpersTest < ActiveSupport::TestCase
|
128
|
+
def mock_polymorphic(controller, route)
|
129
|
+
controller.expects(:url_for).with(:no=>"no")
|
130
|
+
controller._routes.url_helpers.expects("hash_for_#{route}").returns({:no=>"no"})
|
131
|
+
end
|
128
132
|
|
129
133
|
def test_url_helpers_on_simple_inherited_resource
|
130
134
|
controller = HousesController.new
|
@@ -408,30 +412,30 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
408
412
|
controller.instance_variable_set('@bed', bed)
|
409
413
|
|
410
414
|
[:url, :path].each do |path_or_url|
|
411
|
-
controller
|
415
|
+
mock_polymorphic(controller, "house_beds_#{path_or_url}").with(house).once
|
412
416
|
controller.send("collection_#{path_or_url}")
|
413
417
|
|
414
|
-
controller
|
418
|
+
mock_polymorphic(controller, "house_bed_#{path_or_url}").with(house, bed).once
|
415
419
|
controller.send("resource_#{path_or_url}")
|
416
420
|
|
417
|
-
controller
|
421
|
+
mock_polymorphic(controller, "new_house_bed_#{path_or_url}").with(house).once
|
418
422
|
controller.send("new_resource_#{path_or_url}")
|
419
423
|
|
420
|
-
controller
|
424
|
+
mock_polymorphic(controller, "edit_house_bed_#{path_or_url}").with(house, bed).once
|
421
425
|
controller.send("edit_resource_#{path_or_url}")
|
422
426
|
|
423
|
-
controller
|
427
|
+
mock_polymorphic(controller, "house_#{path_or_url}").with(house).once
|
424
428
|
controller.send("parent_#{path_or_url}")
|
425
429
|
|
426
|
-
controller
|
430
|
+
mock_polymorphic(controller, "edit_house_#{path_or_url}").with(house).once
|
427
431
|
controller.send("edit_parent_#{path_or_url}")
|
428
432
|
end
|
429
433
|
|
430
434
|
# With options
|
431
|
-
controller
|
435
|
+
mock_polymorphic(controller, "house_bed_url").with(house, bed, :page => 1).once
|
432
436
|
controller.send("resource_url", :page => 1)
|
433
437
|
|
434
|
-
controller
|
438
|
+
mock_polymorphic(controller, "house_url").with(house, :page => 1).once
|
435
439
|
controller.send("parent_url", :page => 1)
|
436
440
|
|
437
441
|
# With args
|
@@ -462,30 +466,30 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
462
466
|
controller.instance_variable_set('@sheep', sheep)
|
463
467
|
|
464
468
|
[:url, :path].each do |path_or_url|
|
465
|
-
controller
|
469
|
+
mock_polymorphic(controller, "news_sheep_index_#{path_or_url}").with(news).once
|
466
470
|
controller.send("collection_#{path_or_url}")
|
467
471
|
|
468
|
-
controller
|
472
|
+
mock_polymorphic(controller, "news_sheep_#{path_or_url}").with(news, sheep).once
|
469
473
|
controller.send("resource_#{path_or_url}")
|
470
474
|
|
471
|
-
controller
|
475
|
+
mock_polymorphic(controller, "new_news_sheep_#{path_or_url}").with(news).once
|
472
476
|
controller.send("new_resource_#{path_or_url}")
|
473
477
|
|
474
|
-
controller
|
478
|
+
mock_polymorphic(controller, "edit_news_sheep_#{path_or_url}").with(news, sheep).once
|
475
479
|
controller.send("edit_resource_#{path_or_url}")
|
476
480
|
|
477
|
-
controller
|
481
|
+
mock_polymorphic(controller, "news_#{path_or_url}").with(news).once
|
478
482
|
controller.send("parent_#{path_or_url}")
|
479
483
|
|
480
|
-
controller
|
484
|
+
mock_polymorphic(controller, "edit_news_#{path_or_url}").with(news).once
|
481
485
|
controller.send("edit_parent_#{path_or_url}")
|
482
486
|
end
|
483
487
|
|
484
488
|
# With options
|
485
|
-
controller
|
489
|
+
mock_polymorphic(controller, "news_sheep_url").with(news, sheep, :page => 1).once
|
486
490
|
controller.send("resource_url", :page => 1)
|
487
491
|
|
488
|
-
controller
|
492
|
+
mock_polymorphic(controller, "news_url").with(news, :page => 1).once
|
489
493
|
controller.send("parent_url", :page => 1)
|
490
494
|
|
491
495
|
# With args
|
@@ -516,30 +520,30 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
516
520
|
controller.instance_variable_set('@desk', desk)
|
517
521
|
|
518
522
|
[:url, :path].each do |path_or_url|
|
519
|
-
controller
|
523
|
+
mock_polymorphic(controller, "admin_house_desks_#{path_or_url}").with(house).once
|
520
524
|
controller.send("collection_#{path_or_url}")
|
521
525
|
|
522
|
-
controller
|
526
|
+
mock_polymorphic(controller, "admin_house_desk_#{path_or_url}").with(house, desk).once
|
523
527
|
controller.send("resource_#{path_or_url}")
|
524
528
|
|
525
|
-
controller
|
529
|
+
mock_polymorphic(controller, "new_admin_house_desk_#{path_or_url}").with(house).once
|
526
530
|
controller.send("new_resource_#{path_or_url}")
|
527
531
|
|
528
|
-
controller
|
532
|
+
mock_polymorphic(controller, "edit_admin_house_desk_#{path_or_url}").with(house, desk).once
|
529
533
|
controller.send("edit_resource_#{path_or_url}")
|
530
534
|
|
531
|
-
controller
|
535
|
+
mock_polymorphic(controller, "admin_house_#{path_or_url}").with(house).once
|
532
536
|
controller.send("parent_#{path_or_url}")
|
533
537
|
|
534
|
-
controller
|
538
|
+
mock_polymorphic(controller, "edit_admin_house_#{path_or_url}").with(house).once
|
535
539
|
controller.send("edit_parent_#{path_or_url}")
|
536
540
|
end
|
537
541
|
|
538
542
|
# With options
|
539
|
-
controller
|
543
|
+
mock_polymorphic(controller, "admin_house_desk_url").with(house, desk, :page => 1).once
|
540
544
|
controller.send("resource_url", :page => 1)
|
541
545
|
|
542
|
-
controller
|
546
|
+
mock_polymorphic(controller, "admin_house_url").with(house, :page => 1).once
|
543
547
|
controller.send("parent_url", :page => 1)
|
544
548
|
|
545
549
|
# With args
|
@@ -572,30 +576,30 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
572
576
|
controller.instance_variable_set('@dish', dish)
|
573
577
|
|
574
578
|
[:url, :path].each do |path_or_url|
|
575
|
-
controller
|
579
|
+
mock_polymorphic(controller, "house_table_dishes_#{path_or_url}").with(house, table).once
|
576
580
|
controller.send("collection_#{path_or_url}")
|
577
581
|
|
578
|
-
controller
|
582
|
+
mock_polymorphic(controller, "house_table_dish_#{path_or_url}").with(house, table, dish).once
|
579
583
|
controller.send("resource_#{path_or_url}")
|
580
584
|
|
581
|
-
controller
|
585
|
+
mock_polymorphic(controller, "new_house_table_dish_#{path_or_url}").with(house, table).once
|
582
586
|
controller.send("new_resource_#{path_or_url}")
|
583
587
|
|
584
|
-
controller
|
588
|
+
mock_polymorphic(controller, "edit_house_table_dish_#{path_or_url}").with(house, table, dish).once
|
585
589
|
controller.send("edit_resource_#{path_or_url}")
|
586
590
|
|
587
|
-
controller
|
591
|
+
mock_polymorphic(controller, "house_table_#{path_or_url}").with(house, table).once
|
588
592
|
controller.send("parent_#{path_or_url}")
|
589
593
|
|
590
|
-
controller
|
594
|
+
mock_polymorphic(controller, "edit_house_table_#{path_or_url}").with(house, table).once
|
591
595
|
controller.send("edit_parent_#{path_or_url}")
|
592
596
|
end
|
593
597
|
|
594
598
|
# With options
|
595
|
-
controller
|
599
|
+
mock_polymorphic(controller, "house_table_dish_url").with(house, table, dish, :page => 1).once
|
596
600
|
controller.send("resource_url", :page => 1)
|
597
601
|
|
598
|
-
controller
|
602
|
+
mock_polymorphic(controller, "house_table_url").with(house, table, :page => 1).once
|
599
603
|
controller.send("parent_url", :page => 1)
|
600
604
|
|
601
605
|
# With args
|
@@ -624,30 +628,30 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
624
628
|
# controller.instance_variable_set('@center', :center)
|
625
629
|
|
626
630
|
[:url, :path].each do |path_or_url|
|
627
|
-
controller
|
631
|
+
mock_polymorphic(controller, "house_table_#{path_or_url}").with(house, table).once
|
628
632
|
controller.send("collection_#{path_or_url}")
|
629
633
|
|
630
|
-
controller
|
634
|
+
mock_polymorphic(controller, "house_table_center_#{path_or_url}").with(house, table).once
|
631
635
|
controller.send("resource_#{path_or_url}")
|
632
636
|
|
633
|
-
controller
|
637
|
+
mock_polymorphic(controller, "new_house_table_center_#{path_or_url}").with(house, table).once
|
634
638
|
controller.send("new_resource_#{path_or_url}")
|
635
639
|
|
636
|
-
controller
|
640
|
+
mock_polymorphic(controller, "edit_house_table_center_#{path_or_url}").with(house, table).once
|
637
641
|
controller.send("edit_resource_#{path_or_url}")
|
638
642
|
|
639
|
-
controller
|
643
|
+
mock_polymorphic(controller, "house_table_#{path_or_url}").with(house, table).once
|
640
644
|
controller.send("parent_#{path_or_url}")
|
641
645
|
|
642
|
-
controller
|
646
|
+
mock_polymorphic(controller, "edit_house_table_#{path_or_url}").with(house, table).once
|
643
647
|
controller.send("edit_parent_#{path_or_url}")
|
644
648
|
end
|
645
649
|
|
646
650
|
# With options
|
647
|
-
controller
|
651
|
+
mock_polymorphic(controller, "house_table_center_url").with(house, table, :page => 1)
|
648
652
|
controller.send("resource_url", :page => 1)
|
649
653
|
|
650
|
-
controller
|
654
|
+
mock_polymorphic(controller, "house_table_url").with(house, table, :page => 1)
|
651
655
|
controller.send("parent_url", :page => 1)
|
652
656
|
|
653
657
|
# With args
|
@@ -669,21 +673,21 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
669
673
|
controller.instance_variable_set('@bed', bed)
|
670
674
|
|
671
675
|
[:url, :path].each do |path_or_url|
|
672
|
-
controller
|
676
|
+
mock_polymorphic(controller, "beds_#{path_or_url}").with().once
|
673
677
|
controller.send("collection_#{path_or_url}")
|
674
678
|
|
675
|
-
controller
|
679
|
+
mock_polymorphic(controller, "bed_#{path_or_url}").with(bed).once
|
676
680
|
controller.send("resource_#{path_or_url}")
|
677
681
|
|
678
|
-
controller
|
682
|
+
mock_polymorphic(controller, "new_bed_#{path_or_url}").with().once
|
679
683
|
controller.send("new_resource_#{path_or_url}")
|
680
684
|
|
681
|
-
controller
|
685
|
+
mock_polymorphic(controller, "edit_bed_#{path_or_url}").with(bed).once
|
682
686
|
controller.send("edit_resource_#{path_or_url}")
|
683
687
|
end
|
684
688
|
|
685
689
|
# With options
|
686
|
-
controller
|
690
|
+
mock_polymorphic(controller, "bed_url").with(bed, :page => 1).once
|
687
691
|
controller.send("resource_url", :page => 1)
|
688
692
|
|
689
693
|
# With args
|
@@ -701,7 +705,6 @@ class UrlHelpersTest < ActiveSupport::TestCase
|
|
701
705
|
controller.instance_variable_set('@mirror', :mirror)
|
702
706
|
|
703
707
|
[:url, :path].each do |path_or_url|
|
704
|
-
|
705
708
|
controller.expects("house_mirrors_#{path_or_url}").with(:house, {}).once
|
706
709
|
controller.send("collection_#{path_or_url}")
|
707
710
|
|
@@ -0,0 +1 @@
|
|
1
|
+
Edit HTML
|
@@ -0,0 +1 @@
|
|
1
|
+
New HTML
|
@@ -0,0 +1 @@
|
|
1
|
+
Show HTML
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 1.
|
8
|
+
- 3
|
9
|
+
- 0
|
10
|
+
version: 1.3.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- "Jos\xC3\xA9 Valim"
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-09-01 00:00:00 +02:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -66,13 +66,13 @@ files:
|
|
66
66
|
- MIT-LICENSE
|
67
67
|
- README.rdoc
|
68
68
|
- Rakefile
|
69
|
+
- app/controllers/inherited_resources/base.rb
|
69
70
|
- inherited_resources.gemspec
|
70
71
|
- lib/generators/rails/USAGE
|
71
72
|
- lib/generators/rails/inherited_resources_controller_generator.rb
|
72
73
|
- lib/generators/rails/templates/controller.rb
|
73
74
|
- lib/inherited_resources.rb
|
74
75
|
- lib/inherited_resources/actions.rb
|
75
|
-
- lib/inherited_resources/base.rb
|
76
76
|
- lib/inherited_resources/base_helpers.rb
|
77
77
|
- lib/inherited_resources/belongs_to_helpers.rb
|
78
78
|
- lib/inherited_resources/blank_slate.rb
|
@@ -95,6 +95,7 @@ files:
|
|
95
95
|
- test/customized_redirect_to_test.rb
|
96
96
|
- test/defaults_test.rb
|
97
97
|
- test/locales/en.yml
|
98
|
+
- test/multiple_nested_optional_belongs_to_test.rb
|
98
99
|
- test/nested_belongs_to_test.rb
|
99
100
|
- test/nested_belongs_to_with_shallow_test.rb
|
100
101
|
- test/nested_model_with_shallow_test.rb
|
@@ -145,10 +146,13 @@ files:
|
|
145
146
|
- test/views/professors/index.html.erb
|
146
147
|
- test/views/professors/new.html.erb
|
147
148
|
- test/views/professors/show.html.erb
|
149
|
+
- test/views/projects/edit.html.erb
|
148
150
|
- test/views/projects/index.html.erb
|
149
151
|
- test/views/projects/index.json.erb
|
152
|
+
- test/views/projects/new.html.erb
|
150
153
|
- test/views/projects/respond_to_skip_default_template.html.erb
|
151
154
|
- test/views/projects/respond_with_resource.html.erb
|
155
|
+
- test/views/projects/show.html.erb
|
152
156
|
- test/views/students/edit.html.erb
|
153
157
|
- test/views/students/new.html.erb
|
154
158
|
- test/views/tags/edit.html.erb
|
@@ -200,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
200
204
|
requirements: []
|
201
205
|
|
202
206
|
rubyforge_project: inherited_resources
|
203
|
-
rubygems_version: 1.
|
207
|
+
rubygems_version: 1.6.2
|
204
208
|
signing_key:
|
205
209
|
specification_version: 3
|
206
210
|
summary: Inherited Resources speeds up development by making your controllers inherit all restful actions so you just have to focus on what is important.
|
@@ -216,6 +220,7 @@ test_files:
|
|
216
220
|
- test/customized_redirect_to_test.rb
|
217
221
|
- test/defaults_test.rb
|
218
222
|
- test/locales/en.yml
|
223
|
+
- test/multiple_nested_optional_belongs_to_test.rb
|
219
224
|
- test/nested_belongs_to_test.rb
|
220
225
|
- test/nested_belongs_to_with_shallow_test.rb
|
221
226
|
- test/nested_model_with_shallow_test.rb
|
@@ -266,10 +271,13 @@ test_files:
|
|
266
271
|
- test/views/professors/index.html.erb
|
267
272
|
- test/views/professors/new.html.erb
|
268
273
|
- test/views/professors/show.html.erb
|
274
|
+
- test/views/projects/edit.html.erb
|
269
275
|
- test/views/projects/index.html.erb
|
270
276
|
- test/views/projects/index.json.erb
|
277
|
+
- test/views/projects/new.html.erb
|
271
278
|
- test/views/projects/respond_to_skip_default_template.html.erb
|
272
279
|
- test/views/projects/respond_with_resource.html.erb
|
280
|
+
- test/views/projects/show.html.erb
|
273
281
|
- test/views/students/edit.html.erb
|
274
282
|
- test/views/students/new.html.erb
|
275
283
|
- test/views/tags/edit.html.erb
|