johnsbrn-has_many_polymorphs 2.13

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.
Files changed (174) hide show
  1. data/CHANGELOG +84 -0
  2. data/LICENSE +184 -0
  3. data/Manifest +174 -0
  4. data/README +205 -0
  5. data/TODO +2 -0
  6. data/examples/hmph.rb +69 -0
  7. data/generators/tagging/tagging_generator.rb +97 -0
  8. data/generators/tagging/templates/migration.rb +28 -0
  9. data/generators/tagging/templates/tag.rb +39 -0
  10. data/generators/tagging/templates/tag_test.rb +15 -0
  11. data/generators/tagging/templates/tagging.rb +16 -0
  12. data/generators/tagging/templates/tagging_extensions.rb +159 -0
  13. data/generators/tagging/templates/tagging_test.rb +85 -0
  14. data/generators/tagging/templates/taggings.yml +23 -0
  15. data/generators/tagging/templates/tags.yml +7 -0
  16. data/has_many_polymorphs.gemspec +100 -0
  17. data/init.rb +2 -0
  18. data/lib/has_many_polymorphs.rb +27 -0
  19. data/lib/has_many_polymorphs/association.rb +159 -0
  20. data/lib/has_many_polymorphs/autoload.rb +70 -0
  21. data/lib/has_many_polymorphs/base.rb +60 -0
  22. data/lib/has_many_polymorphs/class_methods.rb +600 -0
  23. data/lib/has_many_polymorphs/configuration.rb +19 -0
  24. data/lib/has_many_polymorphs/debugging_tools.rb +103 -0
  25. data/lib/has_many_polymorphs/rake_task_redefine_task.rb +35 -0
  26. data/lib/has_many_polymorphs/reflection.rb +58 -0
  27. data/lib/has_many_polymorphs/support_methods.rb +84 -0
  28. data/test/fixtures/bow_wows.yml +10 -0
  29. data/test/fixtures/cats.yml +18 -0
  30. data/test/fixtures/eaters_foodstuffs.yml +0 -0
  31. data/test/fixtures/fish.yml +12 -0
  32. data/test/fixtures/frogs.yml +5 -0
  33. data/test/fixtures/keep_your_enemies_close.yml +0 -0
  34. data/test/fixtures/little_whale_pupils.yml +0 -0
  35. data/test/fixtures/people.yml +7 -0
  36. data/test/fixtures/petfoods.yml +11 -0
  37. data/test/fixtures/whales.yml +5 -0
  38. data/test/fixtures/wild_boars.yml +10 -0
  39. data/test/generator/tagging_generator_test.rb +42 -0
  40. data/test/integration/app/README +182 -0
  41. data/test/integration/app/Rakefile +19 -0
  42. data/test/integration/app/app/controllers/application.rb +7 -0
  43. data/test/integration/app/app/controllers/bones_controller.rb +5 -0
  44. data/test/integration/app/app/helpers/addresses_helper.rb +2 -0
  45. data/test/integration/app/app/helpers/application_helper.rb +3 -0
  46. data/test/integration/app/app/helpers/bones_helper.rb +2 -0
  47. data/test/integration/app/app/helpers/sellers_helper.rb +28 -0
  48. data/test/integration/app/app/helpers/states_helper.rb +2 -0
  49. data/test/integration/app/app/helpers/users_helper.rb +2 -0
  50. data/test/integration/app/app/models/bone.rb +2 -0
  51. data/test/integration/app/app/models/double_sti_parent.rb +2 -0
  52. data/test/integration/app/app/models/double_sti_parent_relationship.rb +2 -0
  53. data/test/integration/app/app/models/organic_substance.rb +2 -0
  54. data/test/integration/app/app/models/single_sti_parent.rb +4 -0
  55. data/test/integration/app/app/models/single_sti_parent_relationship.rb +4 -0
  56. data/test/integration/app/app/models/stick.rb +2 -0
  57. data/test/integration/app/app/models/stone.rb +2 -0
  58. data/test/integration/app/app/views/addresses/edit.html.erb +12 -0
  59. data/test/integration/app/app/views/addresses/index.html.erb +18 -0
  60. data/test/integration/app/app/views/addresses/new.html.erb +11 -0
  61. data/test/integration/app/app/views/addresses/show.html.erb +3 -0
  62. data/test/integration/app/app/views/bones/index.rhtml +5 -0
  63. data/test/integration/app/app/views/layouts/addresses.html.erb +17 -0
  64. data/test/integration/app/app/views/layouts/sellers.html.erb +17 -0
  65. data/test/integration/app/app/views/layouts/states.html.erb +17 -0
  66. data/test/integration/app/app/views/layouts/users.html.erb +17 -0
  67. data/test/integration/app/app/views/sellers/edit.html.erb +12 -0
  68. data/test/integration/app/app/views/sellers/index.html.erb +20 -0
  69. data/test/integration/app/app/views/sellers/new.html.erb +11 -0
  70. data/test/integration/app/app/views/sellers/show.html.erb +3 -0
  71. data/test/integration/app/app/views/states/edit.html.erb +12 -0
  72. data/test/integration/app/app/views/states/index.html.erb +19 -0
  73. data/test/integration/app/app/views/states/new.html.erb +11 -0
  74. data/test/integration/app/app/views/states/show.html.erb +3 -0
  75. data/test/integration/app/app/views/users/edit.html.erb +12 -0
  76. data/test/integration/app/app/views/users/index.html.erb +22 -0
  77. data/test/integration/app/app/views/users/new.html.erb +11 -0
  78. data/test/integration/app/app/views/users/show.html.erb +3 -0
  79. data/test/integration/app/config/boot.rb +110 -0
  80. data/test/integration/app/config/database.yml +17 -0
  81. data/test/integration/app/config/environment.rb +19 -0
  82. data/test/integration/app/config/environment.rb.canonical +19 -0
  83. data/test/integration/app/config/environments/development.rb +8 -0
  84. data/test/integration/app/config/environments/production.rb +18 -0
  85. data/test/integration/app/config/environments/test.rb +19 -0
  86. data/test/integration/app/config/locomotive.yml +6 -0
  87. data/test/integration/app/config/routes.rb +33 -0
  88. data/test/integration/app/config/ultrasphinx/default.base +56 -0
  89. data/test/integration/app/config/ultrasphinx/development.conf.canonical +155 -0
  90. data/test/integration/app/db/migrate/001_create_sticks.rb +11 -0
  91. data/test/integration/app/db/migrate/002_create_stones.rb +11 -0
  92. data/test/integration/app/db/migrate/003_create_organic_substances.rb +11 -0
  93. data/test/integration/app/db/migrate/004_create_bones.rb +8 -0
  94. data/test/integration/app/db/migrate/005_create_single_sti_parents.rb +11 -0
  95. data/test/integration/app/db/migrate/006_create_double_sti_parents.rb +11 -0
  96. data/test/integration/app/db/migrate/007_create_single_sti_parent_relationships.rb +13 -0
  97. data/test/integration/app/db/migrate/008_create_double_sti_parent_relationships.rb +14 -0
  98. data/test/integration/app/db/migrate/009_create_library_model.rb +11 -0
  99. data/test/integration/app/doc/README_FOR_APP +2 -0
  100. data/test/integration/app/generators/commenting_generator_test.rb +83 -0
  101. data/test/integration/app/lib/library_model.rb +2 -0
  102. data/test/integration/app/public/404.html +30 -0
  103. data/test/integration/app/public/500.html +30 -0
  104. data/test/integration/app/public/dispatch.cgi +10 -0
  105. data/test/integration/app/public/dispatch.fcgi +24 -0
  106. data/test/integration/app/public/dispatch.rb +10 -0
  107. data/test/integration/app/public/favicon.ico +0 -0
  108. data/test/integration/app/public/images/rails.png +0 -0
  109. data/test/integration/app/public/index.html +277 -0
  110. data/test/integration/app/public/javascripts/application.js +2 -0
  111. data/test/integration/app/public/javascripts/controls.js +833 -0
  112. data/test/integration/app/public/javascripts/dragdrop.js +942 -0
  113. data/test/integration/app/public/javascripts/effects.js +1088 -0
  114. data/test/integration/app/public/javascripts/prototype.js +2515 -0
  115. data/test/integration/app/public/robots.txt +1 -0
  116. data/test/integration/app/public/stylesheets/scaffold.css +74 -0
  117. data/test/integration/app/script/about +3 -0
  118. data/test/integration/app/script/breakpointer +3 -0
  119. data/test/integration/app/script/console +3 -0
  120. data/test/integration/app/script/destroy +3 -0
  121. data/test/integration/app/script/generate +3 -0
  122. data/test/integration/app/script/performance/benchmarker +3 -0
  123. data/test/integration/app/script/performance/profiler +3 -0
  124. data/test/integration/app/script/plugin +3 -0
  125. data/test/integration/app/script/process/inspector +3 -0
  126. data/test/integration/app/script/process/reaper +3 -0
  127. data/test/integration/app/script/process/spawner +3 -0
  128. data/test/integration/app/script/runner +3 -0
  129. data/test/integration/app/script/server +3 -0
  130. data/test/integration/app/test/fixtures/double_sti_parent_relationships.yml +7 -0
  131. data/test/integration/app/test/fixtures/double_sti_parents.yml +7 -0
  132. data/test/integration/app/test/fixtures/organic_substances.yml +5 -0
  133. data/test/integration/app/test/fixtures/single_sti_parent_relationships.yml +7 -0
  134. data/test/integration/app/test/fixtures/single_sti_parents.yml +7 -0
  135. data/test/integration/app/test/fixtures/sticks.yml +7 -0
  136. data/test/integration/app/test/fixtures/stones.yml +7 -0
  137. data/test/integration/app/test/functional/addresses_controller_test.rb +57 -0
  138. data/test/integration/app/test/functional/bones_controller_test.rb +8 -0
  139. data/test/integration/app/test/functional/sellers_controller_test.rb +57 -0
  140. data/test/integration/app/test/functional/states_controller_test.rb +57 -0
  141. data/test/integration/app/test/functional/users_controller_test.rb +57 -0
  142. data/test/integration/app/test/test_helper.rb +8 -0
  143. data/test/integration/app/test/unit/bone_test.rb +8 -0
  144. data/test/integration/app/test/unit/double_sti_parent_relationship_test.rb +8 -0
  145. data/test/integration/app/test/unit/double_sti_parent_test.rb +8 -0
  146. data/test/integration/app/test/unit/organic_substance_test.rb +8 -0
  147. data/test/integration/app/test/unit/single_sti_parent_relationship_test.rb +8 -0
  148. data/test/integration/app/test/unit/single_sti_parent_test.rb +8 -0
  149. data/test/integration/app/test/unit/stick_test.rb +8 -0
  150. data/test/integration/app/test/unit/stone_test.rb +8 -0
  151. data/test/integration/server_test.rb +43 -0
  152. data/test/models/aquatic/fish.rb +5 -0
  153. data/test/models/aquatic/pupils_whale.rb +7 -0
  154. data/test/models/aquatic/whale.rb +15 -0
  155. data/test/models/beautiful_fight_relationship.rb +26 -0
  156. data/test/models/canine.rb +9 -0
  157. data/test/models/cat.rb +5 -0
  158. data/test/models/dog.rb +18 -0
  159. data/test/models/eaters_foodstuff.rb +10 -0
  160. data/test/models/frog.rb +4 -0
  161. data/test/models/kitten.rb +3 -0
  162. data/test/models/parentship.rb +4 -0
  163. data/test/models/person.rb +9 -0
  164. data/test/models/petfood.rb +39 -0
  165. data/test/models/tabby.rb +2 -0
  166. data/test/models/wild_boar.rb +3 -0
  167. data/test/modules/extension_module.rb +9 -0
  168. data/test/modules/other_extension_module.rb +9 -0
  169. data/test/patches/symlinked_plugins_1.2.6.diff +46 -0
  170. data/test/schema.rb +87 -0
  171. data/test/setup.rb +14 -0
  172. data/test/test_helper.rb +51 -0
  173. data/test/unit/has_many_polymorphs_test.rb +714 -0
  174. metadata +237 -0
@@ -0,0 +1,8 @@
1
+ ENV["RAILS_ENV"] = "development"
2
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
+ require 'test_help'
4
+
5
+ class Test::Unit::TestCase
6
+ self.use_transactional_fixtures = true
7
+ self.use_instantiated_fixtures = false
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class BoneTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class DoubleStiParentRelationshipTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class DoubleStiParentTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class OrganicSubstanceTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class SingleStiParentRelationshipTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class SingleStiParentTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class StickTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,8 @@
1
+ require File.dirname(__FILE__) + '/../test_helper'
2
+
3
+ class StoneTest < Test::Unit::TestCase
4
+ # Replace this with your real tests.
5
+ def test_truth
6
+ assert true
7
+ end
8
+ end
@@ -0,0 +1,43 @@
1
+
2
+ require "#{File.dirname(__FILE__)}/../test_helper"
3
+ require 'open-uri'
4
+
5
+ # Start the server
6
+
7
+ class ServerTest < Test::Unit::TestCase
8
+
9
+ PORT = 43040
10
+ URL = "http://localhost:#{PORT}/"
11
+
12
+ def setup
13
+ @pid = Process.fork do
14
+ Dir.chdir RAILS_ROOT do
15
+ # print "S"
16
+ exec("script/server -p #{PORT} &> #{LOG}")
17
+ end
18
+ end
19
+ sleep(5)
20
+ end
21
+
22
+ def teardown
23
+ # Process.kill(9, @pid) doesn't work because Mongrel has double-forked itself away
24
+ `ps awx | grep #{PORT} | grep -v grep | awk '{print $1}'`.split("\n").each do |pid|
25
+ system("kill -9 #{pid}")
26
+ # print "K"
27
+ end
28
+ sleep(2)
29
+ @pid = nil
30
+ end
31
+
32
+ def test_association_reloading
33
+ assert_match(/Bones: index/, open(URL + 'bones').read)
34
+ assert_match(/Bones: index/, open(URL + 'bones').read)
35
+ assert_match(/Bones: index/, open(URL + 'bones').read)
36
+ assert_match(/Bones: index/, open(URL + 'bones').read)
37
+ end
38
+
39
+ def test_verify_autoload_gets_invoked_in_console
40
+ # XXX Probably can use script/runner to test this
41
+ end
42
+
43
+ end
@@ -0,0 +1,5 @@
1
+ class Aquatic::Fish < ActiveRecord::Base
2
+ # set_table_name "fish"
3
+ # attr_accessor :after_find_test, :after_initialize_test
4
+ end
5
+
@@ -0,0 +1,7 @@
1
+
2
+ class Aquatic::PupilsWhale < ActiveRecord::Base
3
+ set_table_name "little_whale_pupils"
4
+ belongs_to :whale, :class_name => "Aquatic::Whale", :foreign_key => "whale_id"
5
+ belongs_to :aquatic_pupil, :polymorphic => true
6
+ end
7
+
@@ -0,0 +1,15 @@
1
+ # see http://dev.rubyonrails.org/ticket/5935
2
+ module Aquatic; end
3
+ require 'aquatic/fish'
4
+ require 'aquatic/pupils_whale'
5
+
6
+ class Aquatic::Whale < ActiveRecord::Base
7
+ # set_table_name "whales"
8
+
9
+ has_many_polymorphs(:aquatic_pupils, :from => [:dogs, :"aquatic/fish"],
10
+ :through => "aquatic/pupils_whales") do
11
+ def a_method
12
+ :correct_block_result
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,26 @@
1
+
2
+ require 'extension_module'
3
+
4
+ class BeautifulFightRelationship < ActiveRecord::Base
5
+ set_table_name 'keep_your_enemies_close'
6
+
7
+ belongs_to :enemy, :polymorphic => true
8
+ belongs_to :protector, :polymorphic => true
9
+ # polymorphic relationships with column names different from the relationship name
10
+ # are not supported by Rails
11
+
12
+ acts_as_double_polymorphic_join :enemies => [:dogs, :kittens, :frogs],
13
+ :protectors => [:wild_boars, :kittens, :"aquatic/fish", :dogs],
14
+ :enemies_extend => [ExtensionModule, proc {}],
15
+ :protectors_extend => proc {
16
+ def a_method
17
+ :correct_proc_result
18
+ end
19
+ },
20
+ :join_extend => proc {
21
+ def a_method
22
+ :correct_join_result
23
+ end
24
+ }
25
+ end
26
+
@@ -0,0 +1,9 @@
1
+ class Canine < ActiveRecord::Base
2
+ self.abstract_class = true
3
+
4
+ def an_abstract_method
5
+ :correct_abstract_method_response
6
+ end
7
+
8
+ end
9
+
@@ -0,0 +1,5 @@
1
+ class Cat < ActiveRecord::Base
2
+ # STI base class
3
+ self.inheritance_column = 'cat_type'
4
+ end
5
+
@@ -0,0 +1,18 @@
1
+
2
+ require 'canine'
3
+
4
+ class Dog < Canine
5
+ attr_accessor :after_find_test, :after_initialize_test
6
+ set_table_name "bow_wows"
7
+
8
+ def after_find
9
+ @after_find_test = true
10
+ # puts "After find called on #{name}."
11
+ end
12
+
13
+ def after_initialize
14
+ @after_initialize_test = true
15
+ end
16
+
17
+ end
18
+
@@ -0,0 +1,10 @@
1
+
2
+ class EatersFoodstuff < ActiveRecord::Base
3
+ belongs_to :foodstuff, :class_name => "Petfood", :foreign_key => "foodstuff_id"
4
+ belongs_to :eater, :polymorphic => true
5
+
6
+ def before_save
7
+ self.some_attribute = 3
8
+ end
9
+ end
10
+
@@ -0,0 +1,4 @@
1
+ class Frog < ActiveRecord::Base
2
+
3
+ end
4
+
@@ -0,0 +1,3 @@
1
+ class Kitten < Cat
2
+ # has_many :eaters_parents, :dependent => true, :as => 'eater'
3
+ end
@@ -0,0 +1,4 @@
1
+ class Parentship < ActiveRecord::Base
2
+ belongs_to :parent, :class_name => "Person", :foreign_key => "parent_id"
3
+ belongs_to :kid, :polymorphic => true, :foreign_type => "child_type"
4
+ end
@@ -0,0 +1,9 @@
1
+ require 'parentship'
2
+ class Person < ActiveRecord::Base
3
+ has_many_polymorphs :kids,
4
+ :through => :parentships,
5
+ :from => [:people],
6
+ :as => :parent,
7
+ :polymorphic_type_key => "child_type",
8
+ :conditions => "people.age < 10"
9
+ end
@@ -0,0 +1,39 @@
1
+ # see http://dev.rubyonrails.org/ticket/5935
2
+ require 'eaters_foodstuff'
3
+ require 'petfood'
4
+ require 'cat'
5
+ module Aquatic; end
6
+ require 'aquatic/fish'
7
+ require 'dog'
8
+ require 'wild_boar'
9
+ require 'kitten'
10
+ require 'tabby'
11
+ require 'extension_module'
12
+ require 'other_extension_module'
13
+
14
+ class Petfood < ActiveRecord::Base
15
+ set_primary_key 'the_petfood_primary_key'
16
+ has_many_polymorphs :eaters,
17
+ :from => [:dogs, :petfoods, :wild_boars, :kittens,
18
+ :tabbies, :"aquatic/fish"],
19
+ # :dependent => :destroy, :destroy is now the default
20
+ :rename_individual_collections => true,
21
+ :as => :foodstuff,
22
+ :foreign_key => "foodstuff_id",
23
+ :ignore_duplicates => false,
24
+ :conditions => "NULL IS NULL",
25
+ :order => "eaters_foodstuffs.updated_at ASC",
26
+ :parent_order => "petfoods.the_petfood_primary_key DESC",
27
+ :parent_conditions => "petfoods.name IS NULL OR petfoods.name != 'Snausages'",
28
+ :extend => [ExtensionModule, OtherExtensionModule, proc {}],
29
+ :join_extend => proc {
30
+ def a_method
31
+ :correct_join_result
32
+ end
33
+ },
34
+ :parent_extend => proc {
35
+ def a_method
36
+ :correct_parent_proc_result
37
+ end
38
+ }
39
+ end
@@ -0,0 +1,2 @@
1
+ class Tabby < Cat
2
+ end
@@ -0,0 +1,3 @@
1
+ class WildBoar < ActiveRecord::Base
2
+ end
3
+
@@ -0,0 +1,9 @@
1
+
2
+ module ExtensionModule
3
+ def a_method
4
+ :correct_module_result
5
+ end
6
+ def self.a_method
7
+ :incorrect_module_result
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+
2
+ module OtherExtensionModule
3
+ def another_method
4
+ :correct_other_module_result
5
+ end
6
+ def self.another_method
7
+ :incorrect_other_module_result
8
+ end
9
+ end
@@ -0,0 +1,46 @@
1
+ Index: /trunk/railties/lib/rails_generator/lookup.rb
2
+ ===================================================================
3
+ --- /trunk/railties/lib/rails_generator/lookup.rb (revision 4310)
4
+ +++ /trunk/railties/lib/rails_generator/lookup.rb (revision 6101)
5
+ @@ -101,5 +101,5 @@
6
+ sources << PathSource.new(:lib, "#{::RAILS_ROOT}/lib/generators")
7
+ sources << PathSource.new(:vendor, "#{::RAILS_ROOT}/vendor/generators")
8
+ - sources << PathSource.new(:plugins, "#{::RAILS_ROOT}/vendor/plugins/**/generators")
9
+ + sources << PathSource.new(:plugins, "#{::RAILS_ROOT}/vendor/plugins/*/**/generators")
10
+ end
11
+ sources << PathSource.new(:user, "#{Dir.user_home}/.rails/generators")
12
+ Index: /trunk/railties/lib/tasks/rails.rb
13
+ ===================================================================
14
+ --- /trunk/railties/lib/tasks/rails.rb (revision 5469)
15
+ +++ /trunk/railties/lib/tasks/rails.rb (revision 6101)
16
+ @@ -6,3 +6,3 @@
17
+ # Load any custom rakefile extensions
18
+ Dir["#{RAILS_ROOT}/lib/tasks/**/*.rake"].sort.each { |ext| load ext }
19
+ -Dir["#{RAILS_ROOT}/vendor/plugins/**/tasks/**/*.rake"].sort.each { |ext| load ext }
20
+ +Dir["#{RAILS_ROOT}/vendor/plugins/*/**/tasks/**/*.rake"].sort.each { |ext| load ext }
21
+ Index: /trunk/railties/lib/tasks/testing.rake
22
+ ===================================================================
23
+ --- /trunk/railties/lib/tasks/testing.rake (revision 5263)
24
+ +++ /trunk/railties/lib/tasks/testing.rake (revision 6101)
25
+ @@ -109,9 +109,9 @@
26
+ t.pattern = "vendor/plugins/#{ENV['PLUGIN']}/test/**/*_test.rb"
27
+ else
28
+ - t.pattern = 'vendor/plugins/**/test/**/*_test.rb'
29
+ + t.pattern = 'vendor/plugins/*/**/test/**/*_test.rb'
30
+ end
31
+
32
+ t.verbose = true
33
+ end
34
+ - Rake::Task['test:plugins'].comment = "Run the plugin tests in vendor/plugins/**/test (or specify with PLUGIN=name)"
35
+ + Rake::Task['test:plugins'].comment = "Run the plugin tests in vendor/plugins/*/**/test (or specify with PLUGIN=name)"
36
+ end
37
+ Index: /trunk/railties/CHANGELOG
38
+ ===================================================================
39
+ --- /trunk/railties/CHANGELOG (revision 6069)
40
+ +++ /trunk/railties/CHANGELOG (revision 6101)
41
+ @@ -1,3 +1,5 @@
42
+ *SVN*
43
+ +
44
+ +* Plugins may be symlinked in vendor/plugins. #4245 [brandon, progrium@gmail.com]
45
+
46
+ * Resource generator depends on the model generator rather than duplicating it. #7269 [bscofield]
data/test/schema.rb ADDED
@@ -0,0 +1,87 @@
1
+ ActiveRecord::Schema.define(:version => 0) do
2
+ create_table :petfoods, :force => true, :primary_key => :the_petfood_primary_key do |t|
3
+ t.column :name, :string
4
+ t.column :created_at, :datetime, :null => false
5
+ t.column :updated_at, :datetime, :null => false
6
+ end
7
+
8
+ create_table :bow_wows, :force => true do |t|
9
+ t.column :name, :string
10
+ t.column :created_at, :datetime, :null => false
11
+ t.column :updated_at, :datetime, :null => false
12
+ end
13
+
14
+ create_table :cats, :force => true do |t|
15
+ t.column :name, :string
16
+ t.column :cat_type, :string
17
+ t.column :created_at, :datetime, :null => false
18
+ t.column :updated_at, :datetime, :null => false
19
+ end
20
+
21
+ create_table :frogs, :force => true do |t|
22
+ t.column :name, :string
23
+ t.column :created_at, :datetime, :null => false
24
+ t.column :updated_at, :datetime, :null => false
25
+ end
26
+
27
+ create_table :wild_boars, :force => true do |t|
28
+ t.column :name, :string
29
+ t.column :created_at, :datetime, :null => false
30
+ t.column :updated_at, :datetime, :null => false
31
+ end
32
+
33
+ create_table :eaters_foodstuffs, :force => true do |t|
34
+ t.column :foodstuff_id, :integer
35
+ t.column :eater_id, :integer
36
+ t.column :some_attribute, :integer, :default => 0
37
+ t.column :eater_type, :string
38
+ t.column :created_at, :datetime, :null => false
39
+ t.column :updated_at, :datetime, :null => false
40
+ end
41
+
42
+ create_table :fish, :force => true do |t|
43
+ t.column :name, :string
44
+ t.column :speed, :integer
45
+ t.column :created_at, :datetime, :null => false
46
+ t.column :updated_at, :datetime, :null => false
47
+ end
48
+
49
+ create_table :whales, :force => true do |t|
50
+ t.column :name, :string
51
+ t.column :created_at, :datetime, :null => false
52
+ t.column :updated_at, :datetime, :null => false
53
+ end
54
+
55
+ create_table :little_whale_pupils, :force => true do |t|
56
+ t.column :whale_id, :integer
57
+ t.column :aquatic_pupil_id, :integer
58
+ t.column :aquatic_pupil_type, :string
59
+ t.column :created_at, :datetime, :null => false
60
+ t.column :updated_at, :datetime, :null => false
61
+ end
62
+
63
+ create_table :keep_your_enemies_close, :force => true do |t|
64
+ t.column :enemy_id, :integer
65
+ t.column :enemy_type, :string
66
+ t.column :protector_id, :integer
67
+ t.column :protector_type, :string
68
+ t.column :created_at, :datetime, :null => false
69
+ t.column :updated_at, :datetime, :null => false
70
+ end
71
+
72
+ create_table :parentships, :force => true do |t|
73
+ t.column :parent_id, :integer
74
+ t.column :child_type, :string
75
+ t.column :kid_id, :integer
76
+ t.column :created_at, :datetime, :null => false
77
+ t.column :updated_at, :datetime, :null => false
78
+ end
79
+
80
+ create_table :people, :force => true do |t|
81
+ t.column :name, :string
82
+ t.column :age, :integer
83
+ t.column :created_at, :datetime, :null => false
84
+ t.column :updated_at, :datetime, :null => false
85
+ end
86
+
87
+ end