has_many_polymorphs 2.2 → 2.9

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 (156) hide show
  1. data/CHANGELOG +0 -9
  2. data/README +6 -52
  3. data/TODO +1 -0
  4. data/generators/tagging/tagging_generator.rb +1 -14
  5. data/generators/tagging/templates/tag_test.rb +3 -8
  6. data/generators/tagging/templates/tagging.rb +2 -2
  7. data/generators/tagging/templates/tagging_extensions.rb +13 -106
  8. data/generators/tagging/templates/tagging_test.rb +14 -41
  9. data/generators/tagging/templates/taggings.yml +3 -5
  10. data/generators/tagging/templates/tags.yml +2 -2
  11. data/has_many_polymorphs.gemspec +36 -29
  12. data/lib/has_many_polymorphs.rb +5 -6
  13. data/lib/has_many_polymorphs/association.rb +8 -9
  14. data/lib/has_many_polymorphs/autoload.rb +16 -52
  15. data/lib/has_many_polymorphs/base.rb +3 -13
  16. data/lib/has_many_polymorphs/class_methods.rb +102 -181
  17. data/lib/has_many_polymorphs/debugging_tools.rb +0 -2
  18. data/lib/has_many_polymorphs/dependencies.rb +36 -0
  19. data/lib/has_many_polymorphs/rake_task_redefine_task.rb +1 -9
  20. data/lib/has_many_polymorphs/reflection.rb +6 -7
  21. data/lib/has_many_polymorphs/support_methods.rb +4 -10
  22. data/test/fixtures/{fish.yml → aquatic/fish.yml} +0 -0
  23. data/test/fixtures/{little_whale_pupils.yml → aquatic/little_whale_pupils.yml} +0 -0
  24. data/test/fixtures/{whales.yml → aquatic/whales.yml} +0 -0
  25. data/test/models/aquatic/fish.rb +1 -2
  26. data/test/models/aquatic/whale.rb +0 -2
  27. data/test/models/eaters_foodstuff.rb +3 -1
  28. data/test/models/petfood.rb +1 -2
  29. data/test/schema.rb +0 -15
  30. data/test/test_helper.rb +18 -39
  31. data/test/unit/{has_many_polymorphs_test.rb → polymorph_test.rb} +109 -181
  32. metadata +92 -265
  33. data.tar.gz.sig +0 -1
  34. data/Manifest +0 -173
  35. data/Rakefile +0 -28
  36. data/examples/hmph.rb +0 -69
  37. data/lib/has_many_polymorphs/configuration.rb +0 -19
  38. data/test/fixtures/people.yml +0 -7
  39. data/test/generator/tagging_generator_test.rb +0 -42
  40. data/test/integration/app/README +0 -182
  41. data/test/integration/app/Rakefile +0 -19
  42. data/test/integration/app/app/controllers/application.rb +0 -7
  43. data/test/integration/app/app/controllers/bones_controller.rb +0 -5
  44. data/test/integration/app/app/helpers/addresses_helper.rb +0 -2
  45. data/test/integration/app/app/helpers/application_helper.rb +0 -3
  46. data/test/integration/app/app/helpers/bones_helper.rb +0 -2
  47. data/test/integration/app/app/helpers/sellers_helper.rb +0 -28
  48. data/test/integration/app/app/helpers/states_helper.rb +0 -2
  49. data/test/integration/app/app/helpers/users_helper.rb +0 -2
  50. data/test/integration/app/app/models/bone.rb +0 -2
  51. data/test/integration/app/app/models/double_sti_parent.rb +0 -2
  52. data/test/integration/app/app/models/double_sti_parent_relationship.rb +0 -2
  53. data/test/integration/app/app/models/organic_substance.rb +0 -2
  54. data/test/integration/app/app/models/single_sti_parent.rb +0 -4
  55. data/test/integration/app/app/models/single_sti_parent_relationship.rb +0 -4
  56. data/test/integration/app/app/models/stick.rb +0 -2
  57. data/test/integration/app/app/models/stone.rb +0 -2
  58. data/test/integration/app/app/views/addresses/edit.html.erb +0 -12
  59. data/test/integration/app/app/views/addresses/index.html.erb +0 -18
  60. data/test/integration/app/app/views/addresses/new.html.erb +0 -11
  61. data/test/integration/app/app/views/addresses/show.html.erb +0 -3
  62. data/test/integration/app/app/views/bones/index.rhtml +0 -5
  63. data/test/integration/app/app/views/layouts/addresses.html.erb +0 -17
  64. data/test/integration/app/app/views/layouts/sellers.html.erb +0 -17
  65. data/test/integration/app/app/views/layouts/states.html.erb +0 -17
  66. data/test/integration/app/app/views/layouts/users.html.erb +0 -17
  67. data/test/integration/app/app/views/sellers/edit.html.erb +0 -12
  68. data/test/integration/app/app/views/sellers/index.html.erb +0 -20
  69. data/test/integration/app/app/views/sellers/new.html.erb +0 -11
  70. data/test/integration/app/app/views/sellers/show.html.erb +0 -3
  71. data/test/integration/app/app/views/states/edit.html.erb +0 -12
  72. data/test/integration/app/app/views/states/index.html.erb +0 -19
  73. data/test/integration/app/app/views/states/new.html.erb +0 -11
  74. data/test/integration/app/app/views/states/show.html.erb +0 -3
  75. data/test/integration/app/app/views/users/edit.html.erb +0 -12
  76. data/test/integration/app/app/views/users/index.html.erb +0 -22
  77. data/test/integration/app/app/views/users/new.html.erb +0 -11
  78. data/test/integration/app/app/views/users/show.html.erb +0 -3
  79. data/test/integration/app/config/boot.rb +0 -110
  80. data/test/integration/app/config/database.yml +0 -17
  81. data/test/integration/app/config/environment.rb +0 -19
  82. data/test/integration/app/config/environment.rb.canonical +0 -19
  83. data/test/integration/app/config/environments/development.rb +0 -9
  84. data/test/integration/app/config/environments/production.rb +0 -18
  85. data/test/integration/app/config/environments/test.rb +0 -19
  86. data/test/integration/app/config/locomotive.yml +0 -6
  87. data/test/integration/app/config/routes.rb +0 -33
  88. data/test/integration/app/config/ultrasphinx/default.base +0 -56
  89. data/test/integration/app/config/ultrasphinx/development.conf.canonical +0 -155
  90. data/test/integration/app/db/migrate/001_create_sticks.rb +0 -11
  91. data/test/integration/app/db/migrate/002_create_stones.rb +0 -11
  92. data/test/integration/app/db/migrate/003_create_organic_substances.rb +0 -11
  93. data/test/integration/app/db/migrate/004_create_bones.rb +0 -8
  94. data/test/integration/app/db/migrate/005_create_single_sti_parents.rb +0 -11
  95. data/test/integration/app/db/migrate/006_create_double_sti_parents.rb +0 -11
  96. data/test/integration/app/db/migrate/007_create_single_sti_parent_relationships.rb +0 -13
  97. data/test/integration/app/db/migrate/008_create_double_sti_parent_relationships.rb +0 -14
  98. data/test/integration/app/db/migrate/009_create_library_model.rb +0 -11
  99. data/test/integration/app/doc/README_FOR_APP +0 -2
  100. data/test/integration/app/generators/commenting_generator_test.rb +0 -83
  101. data/test/integration/app/lib/library_model.rb +0 -2
  102. data/test/integration/app/public/404.html +0 -30
  103. data/test/integration/app/public/500.html +0 -30
  104. data/test/integration/app/public/dispatch.cgi +0 -10
  105. data/test/integration/app/public/dispatch.fcgi +0 -24
  106. data/test/integration/app/public/dispatch.rb +0 -10
  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 +0 -277
  110. data/test/integration/app/public/javascripts/application.js +0 -2
  111. data/test/integration/app/public/javascripts/controls.js +0 -833
  112. data/test/integration/app/public/javascripts/dragdrop.js +0 -942
  113. data/test/integration/app/public/javascripts/effects.js +0 -1088
  114. data/test/integration/app/public/javascripts/prototype.js +0 -2515
  115. data/test/integration/app/public/robots.txt +0 -1
  116. data/test/integration/app/public/stylesheets/scaffold.css +0 -74
  117. data/test/integration/app/script/about +0 -3
  118. data/test/integration/app/script/breakpointer +0 -3
  119. data/test/integration/app/script/console +0 -3
  120. data/test/integration/app/script/destroy +0 -3
  121. data/test/integration/app/script/generate +0 -3
  122. data/test/integration/app/script/performance/benchmarker +0 -3
  123. data/test/integration/app/script/performance/profiler +0 -3
  124. data/test/integration/app/script/plugin +0 -3
  125. data/test/integration/app/script/process/inspector +0 -3
  126. data/test/integration/app/script/process/reaper +0 -3
  127. data/test/integration/app/script/process/spawner +0 -3
  128. data/test/integration/app/script/runner +0 -3
  129. data/test/integration/app/script/server +0 -3
  130. data/test/integration/app/test/fixtures/double_sti_parent_relationships.yml +0 -7
  131. data/test/integration/app/test/fixtures/double_sti_parents.yml +0 -7
  132. data/test/integration/app/test/fixtures/organic_substances.yml +0 -5
  133. data/test/integration/app/test/fixtures/single_sti_parent_relationships.yml +0 -7
  134. data/test/integration/app/test/fixtures/single_sti_parents.yml +0 -7
  135. data/test/integration/app/test/fixtures/sticks.yml +0 -7
  136. data/test/integration/app/test/fixtures/stones.yml +0 -7
  137. data/test/integration/app/test/functional/addresses_controller_test.rb +0 -57
  138. data/test/integration/app/test/functional/bones_controller_test.rb +0 -8
  139. data/test/integration/app/test/functional/sellers_controller_test.rb +0 -57
  140. data/test/integration/app/test/functional/states_controller_test.rb +0 -57
  141. data/test/integration/app/test/functional/users_controller_test.rb +0 -57
  142. data/test/integration/app/test/test_helper.rb +0 -8
  143. data/test/integration/app/test/unit/bone_test.rb +0 -8
  144. data/test/integration/app/test/unit/double_sti_parent_relationship_test.rb +0 -8
  145. data/test/integration/app/test/unit/double_sti_parent_test.rb +0 -8
  146. data/test/integration/app/test/unit/organic_substance_test.rb +0 -8
  147. data/test/integration/app/test/unit/single_sti_parent_relationship_test.rb +0 -8
  148. data/test/integration/app/test/unit/single_sti_parent_test.rb +0 -8
  149. data/test/integration/app/test/unit/stick_test.rb +0 -8
  150. data/test/integration/app/test/unit/stone_test.rb +0 -8
  151. data/test/integration/server_test.rb +0 -43
  152. data/test/models/parentship.rb +0 -4
  153. data/test/models/person.rb +0 -9
  154. data/test/patches/symlinked_plugins_1.2.6.diff +0 -46
  155. data/test/setup.rb +0 -14
  156. metadata.gz.sig +0 -0
@@ -31,8 +31,6 @@ Turns on Rails' default dependency logging.
31
31
 
32
32
  =end
33
33
 
34
- _logger_warn "debug mode enabled"
35
-
36
34
  class << ActiveRecord::Base
37
35
  COLLECTION_METHODS = [:belongs_to, :has_many, :has_and_belongs_to_many, :has_one,
38
36
  :has_many_polymorphs, :acts_as_double_polymorphic_join].each do |method_name|
@@ -0,0 +1,36 @@
1
+
2
+ =begin rdoc
3
+ Adds a minimal dependency injection framework so that owners of polymorphic relationships reload after their children, reinjecting the child helper methods.
4
+
5
+ Overrides Dependencies#<tt>new_constants_in</tt>.
6
+ =end
7
+
8
+ module Dependencies
9
+
10
+ mattr_accessor :injection_graph
11
+ self.injection_graph = Hash.new([])
12
+
13
+ # Add a dependency for this target.
14
+ def inject_dependency(target, *requirements)
15
+ target, requirements = target.to_s, requirements.map(&:to_s)
16
+ injection_graph[target] = ((injection_graph[target] + requirements).uniq - [target])
17
+ requirements.each {|requirement| mark_for_unload requirement }
18
+ # _logger_debug "has_many_polymorphs: injection graph: #{injection_graph.inspect}"
19
+ end
20
+
21
+ # Make sure any dependent constants of the constants added by <tt>yield</tt> are reloaded.
22
+ def new_constants_in_with_injection(*descs, &block) # chain
23
+ # _logger_debug "has_many_polymorphs: NEW: autoloaded constants: #{autoloaded_constants.inspect}; #{explicitly_unloadable_constants.inspect}" if (autoloaded_constants + explicitly_unloadable_constants).any?
24
+ returning(new_constants_in_without_injection(*descs, &block)) do |found|
25
+ # _logger_debug "has_many_polymorphs: new constants: #{found.inspect}" if found.any?
26
+ found.each do |constant|
27
+ injection_graph[constant].each do |requirement|
28
+ requirement.constantize
29
+ # _logger_debug "has_many_polymorphs: constantized #{requirement}"
30
+ end
31
+ end
32
+ end
33
+ end
34
+ alias_method_chain :new_constants_in, :injection
35
+
36
+ end
@@ -24,12 +24,4 @@ module Rake
24
24
  end
25
25
  end
26
26
  end
27
- end
28
-
29
- class Object
30
- def silently
31
- stderr, stdout, $stderr, $stdout = $stderr, $stdout, StringIO.new, StringIO.new
32
- yield
33
- $stderr, $stdout = stderr, stdout
34
- end
35
- end
27
+ end
@@ -2,19 +2,18 @@ module ActiveRecord #:nodoc:
2
2
  module Reflection #:nodoc:
3
3
 
4
4
  module ClassMethods #:nodoc:
5
-
6
- # Update the default reflection switch so that <tt>:has_many_polymorphs</tt> types get instantiated.
7
- # It's not a composed method so we have to override the whole thing.
5
+
6
+ # Update the default reflection switch so that <tt>:has_many_polymorphs</tt> types get instantiated. It's not a composed method so we have to override the whole thing.
8
7
  def create_reflection(macro, name, options, active_record)
9
8
  case macro
10
9
  when :has_many, :belongs_to, :has_one, :has_and_belongs_to_many
11
- klass = options[:through] ? ThroughReflection : AssociationReflection
12
- reflection = klass.new(macro, name, options, active_record)
10
+ reflection = AssociationReflection.new(macro, name, options, active_record)
13
11
  when :composed_of
14
12
  reflection = AggregateReflection.new(macro, name, options, active_record)
15
- # added by has_many_polymorphs #
13
+ # added by has_many_polymorphs #
16
14
  when :has_many_polymorphs
17
15
  reflection = PolymorphicReflection.new(macro, name, options, active_record)
16
+ # end added #
18
17
  end
19
18
  write_inheritable_hash :reflections, name => reflection
20
19
  reflection
@@ -33,7 +32,7 @@ Inherits from ActiveRecord::Reflection::AssociationReflection.
33
32
 
34
33
  =end
35
34
 
36
- class PolymorphicReflection < ThroughReflection
35
+ class PolymorphicReflection < AssociationReflection
37
36
  # Stub out the validity check. Has_many_polymorphs checks validity on macro creation, not on reflection.
38
37
  def check_validity!
39
38
  # nothing
@@ -45,13 +45,9 @@ class Hash
45
45
 
46
46
  # An implementation of select that returns a Hash.
47
47
  def _select
48
- if RUBY_VERSION >= "1.9"
49
- Hash[*self.select {|k, v| yield k, v }.flatten]
50
- else
51
- Hash[*self.select do |key, value|
52
- yield key, value
53
- end._flatten_once]
54
- end
48
+ Hash[*self.select do |key, value|
49
+ yield key, value
50
+ end._flatten_once]
55
51
  end
56
52
  end
57
53
 
@@ -62,17 +58,15 @@ class Object
62
58
 
63
59
  # Logger shortcut.
64
60
  def _logger_debug s
65
- s = "** has_many_polymorphs: #{s}"
66
61
  RAILS_DEFAULT_LOGGER.debug(s) if RAILS_DEFAULT_LOGGER
67
62
  end
68
63
 
69
64
  # Logger shortcut.
70
65
  def _logger_warn s
71
- s = "** has_many_polymorphs: #{s}"
72
66
  if RAILS_DEFAULT_LOGGER
73
67
  RAILS_DEFAULT_LOGGER.warn(s)
74
68
  else
75
- $stderr.puts(s)
69
+ $stderr.puts("has_many_polymorphs: #{s}")
76
70
  end
77
71
  end
78
72
 
@@ -1,5 +1,4 @@
1
1
  class Aquatic::Fish < ActiveRecord::Base
2
- # set_table_name "fish"
3
- # attr_accessor :after_find_test, :after_initialize_test
2
+ # attr_accessor :after_find_test, :after_initialize_test
4
3
  end
5
4
 
@@ -4,8 +4,6 @@ require 'aquatic/fish'
4
4
  require 'aquatic/pupils_whale'
5
5
 
6
6
  class Aquatic::Whale < ActiveRecord::Base
7
- # set_table_name "whales"
8
-
9
7
  has_many_polymorphs(:aquatic_pupils, :from => [:dogs, :"aquatic/fish"],
10
8
  :through => "aquatic/pupils_whales") do
11
9
  def a_method
@@ -3,6 +3,8 @@ class EatersFoodstuff < ActiveRecord::Base
3
3
  belongs_to :foodstuff, :class_name => "Petfood", :foreign_key => "foodstuff_id"
4
4
  belongs_to :eater, :polymorphic => true
5
5
 
6
- before_save { |record| record.some_attribute = 3 }
6
+ def before_save
7
+ self.some_attribute = 3
8
+ end
7
9
  end
8
10
 
@@ -23,8 +23,7 @@ class Petfood < ActiveRecord::Base
23
23
  :ignore_duplicates => false,
24
24
  :conditions => "NULL IS NULL",
25
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'",
26
+ :parent_order => "the_petfood_primary_key DESC",
28
27
  :extend => [ExtensionModule, OtherExtensionModule, proc {}],
29
28
  :join_extend => proc {
30
29
  def a_method
@@ -67,21 +67,6 @@ ActiveRecord::Schema.define(:version => 0) do
67
67
  t.column :protector_type, :string
68
68
  t.column :created_at, :datetime, :null => false
69
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
70
  end
86
71
 
87
72
  end
@@ -1,52 +1,31 @@
1
1
 
2
- $VERBOSE = nil
3
- require 'rubygems'
4
- require 'rake' # echoe relies on Rake being present but doesn't require it itself
5
- require 'echoe'
6
- require 'test/unit'
7
- require 'multi_rails_init'
8
- #require 'ruby-debug' # uncomment if needed (for Ruby >= 1.9 use require 'debug' where needed)
9
-
10
- if defined? ENV['MULTIRAILS_RAILS_VERSION']
11
- ENV['RAILS_GEM_VERSION'] = ENV['MULTIRAILS_RAILS_VERSION']
2
+ begin
3
+ require 'rubygems'
4
+ require 'ruby-debug'
5
+ Debugger.start
6
+ rescue Object
12
7
  end
13
8
 
14
- Echoe.silence do
15
- HERE = File.expand_path(File.dirname(__FILE__))
16
- $LOAD_PATH << HERE
17
- # $LOAD_PATH << "#{HERE}/integration/app"
9
+ # load the applicaiton's test helper
10
+ begin
11
+ require File.dirname(__FILE__) + '/../../../../test/test_helper'
12
+ rescue LoadError
13
+ require '~/projects/miscellaneous/cookbook/test/test_helper'
18
14
  end
19
15
 
20
- LOG = "#{HERE}/integration/app/log/development.log"
16
+ WORKING_DIR = File.dirname(__FILE__)
21
17
 
22
- ### For unit tests
18
+ Inflector.inflections {|i| i.irregular 'fish', 'fish' }
23
19
 
24
- require 'integration/app/config/environment'
25
- require 'test_help'
20
+ $LOAD_PATH.unshift(Test::Unit::TestCase.fixture_path = WORKING_DIR + "/fixtures")
21
+ $LOAD_PATH.unshift(WORKING_DIR + "/models")
22
+ $LOAD_PATH.unshift(WORKING_DIR + "/modules")
26
23
 
27
- ActiveSupport::Inflector.inflections {|i| i.irregular 'fish', 'fish' }
28
-
29
- $LOAD_PATH.unshift(ActiveSupport::TestCase.fixture_path = HERE + "/fixtures")
30
- $LOAD_PATH.unshift(HERE + "/models")
31
- $LOAD_PATH.unshift(HERE + "/modules")
32
-
33
- class ActiveSupport::TestCase
24
+ class Test::Unit::TestCase
34
25
  self.use_transactional_fixtures = !(ActiveRecord::Base.connection.is_a? ActiveRecord::ConnectionAdapters::MysqlAdapter rescue false)
35
26
  self.use_instantiated_fixtures = false
36
27
  end
37
28
 
38
- Echoe.silence do
39
- load(HERE + "/schema.rb")
40
- end
41
-
42
- ### For integration tests
29
+ # test schema
30
+ load(File.dirname(__FILE__) + "/schema.rb")
43
31
 
44
- def truncate
45
- system("> #{LOG}")
46
- end
47
-
48
- def log
49
- File.open(LOG, 'r') do |f|
50
- f.read
51
- end
52
- end
@@ -1,25 +1,11 @@
1
1
  require File.dirname(__FILE__) + '/../test_helper'
2
2
 
3
- require 'dog'
4
- require 'wild_boar'
5
- require 'frog'
6
- require 'cat'
7
- require 'kitten'
8
- require 'aquatic/whale'
9
- require 'aquatic/fish'
10
- require 'aquatic/pupils_whale'
11
- require 'beautiful_fight_relationship'
12
-
13
- class PolymorphTest < ActiveSupport::TestCase
14
-
15
- set_fixture_class :bow_wows => Dog
16
- set_fixture_class :keep_your_enemies_close => BeautifulFightRelationship
17
- set_fixture_class :whales => Aquatic::Whale
18
- set_fixture_class :fish => Aquatic::Fish
19
- set_fixture_class :little_whale_pupils => Aquatic::PupilsWhale
3
+ class PolymorphTest < Test::Unit::TestCase
20
4
 
21
5
  fixtures :cats, :bow_wows, :frogs, :wild_boars, :eaters_foodstuffs, :petfoods,
22
- :fish, :whales, :little_whale_pupils, :keep_your_enemies_close, :people
6
+ :"aquatic/fish", :"aquatic/whales", :"aquatic/little_whale_pupils",
7
+ :keep_your_enemies_close
8
+ require 'beautiful_fight_relationship'
23
9
 
24
10
  def setup
25
11
  @association_error = ActiveRecord::Associations::PolymorphicError
@@ -36,61 +22,61 @@ class PolymorphTest < ActiveSupport::TestCase
36
22
  @froggy = Frog.find(1)
37
23
 
38
24
  @join_count = EatersFoodstuff.count
39
- @kibbles_eaters_count = @kibbles.eaters.size
40
- @bits_eaters_count = @bits.eaters.size
41
-
42
- @double_join_count = BeautifulFightRelationship.count
43
- @alice_enemies_count = @alice.enemies.size
44
- end
25
+ @l = @kibbles.eaters.size
26
+ @m = @bits.eaters.size
27
+ end
28
+
29
+ def d
30
+ require 'ruby-debug'
31
+ Debugger.start
32
+ debugger
33
+ end
45
34
 
46
35
  def test_all_relationship_validities
47
36
  # q = []
48
37
  # ObjectSpace.each_object(Class){|c| q << c if c.ancestors.include? ActiveRecord::Base }
49
- # q.each{|c| puts "#{c.name}.reflect_on_all_associations.map(&:check_validity!)"}
50
- Petfood.reflect_on_all_associations.map(&:check_validity!)
51
- Tabby.reflect_on_all_associations.map(&:check_validity!)
52
- Kitten.reflect_on_all_associations.map(&:check_validity!)
53
- Dog.reflect_on_all_associations.map(&:check_validity!)
54
- Canine.reflect_on_all_associations.map(&:check_validity!)
55
- Aquatic::Fish.reflect_on_all_associations.map(&:check_validity!)
56
- EatersFoodstuff.reflect_on_all_associations.map(&:check_validity!)
57
- WildBoar.reflect_on_all_associations.map(&:check_validity!)
58
- Frog.reflect_on_all_associations.map(&:check_validity!)
59
- Cat.reflect_on_all_associations.map(&:check_validity!)
60
- BeautifulFightRelationship.reflect_on_all_associations.map(&:check_validity!)
61
- Person.reflect_on_all_associations.map(&:check_validity!)
62
- Parentship.reflect_on_all_associations.map(&:check_validity!)
63
- Aquatic::Whale.reflect_on_all_associations.map(&:check_validity!)
64
- Aquatic::PupilsWhale.reflect_on_all_associations.map(&:check_validity!)
38
+ # q.each{|c| puts "#{c.name}.reflect_on_all_associations.map &:check_validity! "}
39
+ Petfood.reflect_on_all_associations.map &:check_validity!
40
+ Tabby.reflect_on_all_associations.map &:check_validity!
41
+ Kitten.reflect_on_all_associations.map &:check_validity!
42
+ Dog.reflect_on_all_associations.map &:check_validity!
43
+ Aquatic::Fish.reflect_on_all_associations.map &:check_validity!
44
+ EatersFoodstuff.reflect_on_all_associations.map &:check_validity!
45
+ WildBoar.reflect_on_all_associations.map &:check_validity!
46
+ Frog.reflect_on_all_associations.map &:check_validity!
47
+ Aquatic::Whale.reflect_on_all_associations.map &:check_validity!
48
+ Cat.reflect_on_all_associations.map &:check_validity!
49
+ Aquatic::PupilsWhale.reflect_on_all_associations.map &:check_validity!
50
+ BeautifulFightRelationship.reflect_on_all_associations.map &:check_validity!
65
51
  end
66
52
 
67
53
  def test_assignment
68
54
  assert @kibbles.eaters.blank?
69
55
  assert @kibbles.eaters.push(Cat.find_by_name('Chloe'))
70
- assert_equal @kibbles_eaters_count += 1, @kibbles.eaters.count
56
+ assert_equal @l += 1, @kibbles.eaters.count
71
57
 
72
58
  @kibbles.reload
73
- assert_equal @kibbles_eaters_count, @kibbles.eaters.count
59
+ assert_equal @l, @kibbles.eaters.count
74
60
  end
75
61
 
76
62
  def test_duplicate_assignment
77
63
  # try to add a duplicate item when :ignore_duplicates is false
78
64
  @kibbles.eaters.push(@alice)
79
- assert @kibbles.eaters.any? {|obj| obj == @alice}
65
+ assert @kibbles.eaters.include?(@alice)
80
66
  @kibbles.eaters.push(@alice)
81
- assert_equal @kibbles_eaters_count + 2, @kibbles.eaters.count
67
+ assert_equal @l + 2, @kibbles.eaters.count
82
68
  assert_equal @join_count + 2, EatersFoodstuff.count
83
69
  end
84
70
 
85
71
  def test_create_and_push
86
72
  assert @kibbles.eaters.push(@spot)
87
- assert_equal @kibbles_eaters_count += 1, @kibbles.eaters.count
73
+ assert_equal @l += 1, @kibbles.eaters.count
88
74
  assert @kibbles.eaters << @rover
89
75
  assert @kibbles.eaters << Kitten.create(:name => "Miranda")
90
- assert_equal @kibbles_eaters_count += 2, @kibbles.eaters.length
76
+ assert_equal @l += 2, @kibbles.eaters.length
91
77
 
92
78
  @kibbles.reload
93
- assert_equal @kibbles_eaters_count, @kibbles.eaters.length
79
+ assert_equal @l, @kibbles.eaters.length
94
80
 
95
81
  # test that ids and new flags were set appropriately
96
82
  assert_not_nil @kibbles.eaters[0].id
@@ -104,29 +90,18 @@ class PolymorphTest < ActiveSupport::TestCase
104
90
 
105
91
  def test_add_join_record
106
92
  assert_equal Kitten, @chloe.class
107
- assert join = EatersFoodstuff.new(:foodstuff_id => @bits.id, :eater_id => @chloe.id, :eater_type => @chloe.class.name )
108
- assert join.save!
109
- assert join.id
93
+ assert @join_record = EatersFoodstuff.new(:foodstuff_id => @bits.id, :eater_id => @chloe.id, :eater_type => @chloe.class.name )
94
+ assert @join_record.save!
95
+ assert @join_record.id
110
96
  assert_equal @join_count + 1, EatersFoodstuff.count
111
97
 
112
- #assert_equal @bits_eaters_count, @bits.eaters.size # Doesn't behave this way on latest edge anymore
113
- assert_equal @bits_eaters_count + 1, @bits.eaters.count # SQL
98
+ # not reloaded
99
+ #assert_equal @m, @bits.eaters.size # Doesn't behave this way on latest edge anymore
100
+ assert_equal @m + 1, @bits.eaters.count # SQL
114
101
 
115
102
  # reload; is the new association there?
116
103
  assert @bits.eaters.reload
117
- assert @bits.eaters.any? {|obj| obj == @chloe}
118
- end
119
-
120
- def test_build_join_record_on_association
121
- assert_equal Kitten, @chloe.class
122
- assert join = @chloe.eaters_foodstuffs.build(:foodstuff => @bits)
123
- # assert_equal join.eater_type, @chloe.class.name # will be STI parent type
124
- assert join.save!
125
- assert join.id
126
- assert_equal @join_count + 1, EatersFoodstuff.count
127
-
128
- assert @bits.eaters.reload
129
- assert @bits.eaters.any? {|obj| obj == @chloe}
104
+ assert @bits.eaters.include?(@chloe)
130
105
  end
131
106
 
132
107
  # not supporting this, since has_many :through doesn't support it either
@@ -134,23 +109,23 @@ class PolymorphTest < ActiveSupport::TestCase
134
109
  # # add an unsaved item
135
110
  # assert @bits.eaters << Kitten.new(:name => "Bridget")
136
111
  # assert_nil Kitten.find_by_name("Bridget")
137
- # assert_equal @bits_eaters_count + 1, @bits.eaters.count
112
+ # assert_equal @m + 1, @bits.eaters.count
138
113
  #
139
114
  # assert @bits.save
140
115
  # @bits.reload
141
- # assert_equal @bits_eaters_count + 1, @bits.eaters.count
116
+ # assert_equal @m + 1, @bits.eaters.count
142
117
  #
143
118
  # end
144
119
 
145
120
  def test_self_reference
146
121
  assert @kibbles.eaters << @bits
147
- assert_equal @kibbles_eaters_count += 1, @kibbles.eaters.count
148
- assert @kibbles.eaters.any? {|obj| obj == @bits}
122
+ assert_equal @l += 1, @kibbles.eaters.count
123
+ assert @kibbles.eaters.include?(@bits)
149
124
  @kibbles.reload
150
125
  assert @kibbles.foodstuffs_of_eaters.blank?
151
126
 
152
127
  @bits.reload
153
- assert @bits.foodstuffs_of_eaters.any? {|obj| obj == @kibbles}
128
+ assert @bits.foodstuffs_of_eaters.include?(@kibbles)
154
129
  assert_equal [@kibbles], @bits.foodstuffs_of_eaters
155
130
  end
156
131
 
@@ -158,7 +133,7 @@ class PolymorphTest < ActiveSupport::TestCase
158
133
  assert @kibbles.eaters << @chloe
159
134
  @kibbles.reload
160
135
  assert @kibbles.eaters.delete(@kibbles.eaters[0])
161
- assert_equal @kibbles_eaters_count, @kibbles.eaters.count
136
+ assert_equal @l, @kibbles.eaters.count
162
137
  end
163
138
 
164
139
  def test_destroy
@@ -167,7 +142,7 @@ class PolymorphTest < ActiveSupport::TestCase
167
142
  assert @kibbles.eaters.length > 0
168
143
  assert @kibbles.eaters[0].destroy
169
144
  @kibbles.reload
170
- assert_equal @kibbles_eaters_count, @kibbles.eaters.count
145
+ assert_equal @l, @kibbles.eaters.count
171
146
  end
172
147
 
173
148
  def test_clear
@@ -190,9 +165,9 @@ class PolymorphTest < ActiveSupport::TestCase
190
165
  def test_individual_collections_push
191
166
  assert_equal [@chloe], (@kibbles.eater_kittens << @chloe)
192
167
  @kibbles.reload
193
- assert @kibbles.eaters.any? {|obj| obj == @chloe}
194
- assert @kibbles.eater_kittens.any? {|obj| obj == @chloe}
195
- assert !@kibbles.eater_dogs.any? {|obj| obj == @chloe}
168
+ assert @kibbles.eaters.include?(@chloe)
169
+ assert @kibbles.eater_kittens.include?(@chloe)
170
+ assert !@kibbles.eater_dogs.include?(@chloe)
196
171
  end
197
172
 
198
173
  def test_individual_collections_delete
@@ -204,7 +179,7 @@ class PolymorphTest < ActiveSupport::TestCase
204
179
 
205
180
  @kibbles.reload
206
181
  assert @kibbles.eater_kittens.empty?
207
- assert @kibbles.eater_dogs.any? {|obj| obj == @spot}
182
+ assert @kibbles.eater_dogs.include?(@spot)
208
183
  end
209
184
 
210
185
  def test_individual_collections_clear
@@ -217,14 +192,14 @@ class PolymorphTest < ActiveSupport::TestCase
217
192
 
218
193
  assert @kibbles.eater_kittens.empty?
219
194
  assert_equal 2, @kibbles.eaters.size
220
- assert !@kibbles.eater_kittens.any? {|obj| obj == @chloe}
221
- assert !@kibbles.eaters.any? {|obj| obj == @chloe}
195
+ assert !@kibbles.eater_kittens.include?(@chloe)
196
+ assert !@kibbles.eaters.include?(@chloe)
222
197
 
223
198
  @kibbles.reload
224
199
  assert @kibbles.eater_kittens.empty?
225
200
  assert_equal 2, @kibbles.eaters.size
226
- assert !@kibbles.eater_kittens.any? {|obj| obj == @chloe}
227
- assert !@kibbles.eaters.any? {|obj| obj == @chloe}
201
+ assert !@kibbles.eater_kittens.include?(@chloe)
202
+ assert !@kibbles.eaters.include?(@chloe)
228
203
  end
229
204
 
230
205
  def test_childrens_individual_collections
@@ -234,7 +209,7 @@ class PolymorphTest < ActiveSupport::TestCase
234
209
 
235
210
  def test_self_referential_join_tables
236
211
  # check that the self-reference join tables go the right ways
237
- assert_equal @kibbles_eaters_count, @kibbles.eaters_foodstuffs.count
212
+ assert_equal @l, @kibbles.eaters_foodstuffs.count
238
213
  assert_equal @kibbles.eaters_foodstuffs.count, @kibbles.eaters_foodstuffs_as_child.count
239
214
  end
240
215
 
@@ -283,9 +258,8 @@ class PolymorphTest < ActiveSupport::TestCase
283
258
  end
284
259
 
285
260
  def test_attributes_come_through_when_child_has_underscore_in_table_name
286
- join = EatersFoodstuff.new(:foodstuff_id => @bits.id, :eater_id => @puma.id, :eater_type => @puma.class.name)
287
- join.save!
288
-
261
+ @join_record = EatersFoodstuff.new(:foodstuff_id => @bits.id, :eater_id => @puma.id, :eater_type => @puma.class.name)
262
+ @join_record.save!
289
263
  @bits.eaters.reload
290
264
 
291
265
  assert_equal "Puma", @puma.name
@@ -316,13 +290,13 @@ class PolymorphTest < ActiveSupport::TestCase
316
290
 
317
291
  def test_namespaced_polymorphic_collection
318
292
  @shamu.aquatic_pupils << @swimmy
319
- assert @shamu.aquatic_pupils.any? {|obj| obj == @swimmy}
293
+ assert @shamu.aquatic_pupils.include?(@swimmy)
320
294
  @shamu.reload
321
- assert @shamu.aquatic_pupils.any? {|obj| obj == @swimmy}
295
+ assert @shamu.aquatic_pupils.include?(@swimmy)
322
296
 
323
297
  @shamu.aquatic_pupils << @spot
324
- assert @shamu.dogs.any? {|obj| obj == @spot}
325
- assert @shamu.aquatic_pupils.any? {|obj| obj == @swimmy}
298
+ assert @shamu.dogs.include?(@spot)
299
+ assert @shamu.aquatic_pupils.include?(@swimmy)
326
300
  assert_equal @swimmy, @shamu.aquatic_fish.first
327
301
  assert_equal 10, @shamu.aquatic_fish.first.speed
328
302
  end
@@ -333,8 +307,8 @@ class PolymorphTest < ActiveSupport::TestCase
333
307
 
334
308
  @shamu.reload
335
309
  @shamu.aquatic_pupils.delete @spot
336
- assert !@shamu.dogs.any? {|obj| obj == @spot}
337
- assert !@shamu.aquatic_pupils.any? {|obj| obj == @spot}
310
+ assert !@shamu.dogs.include?(@spot)
311
+ assert !@shamu.aquatic_pupils.include?(@spot)
338
312
  assert_equal 1, @shamu.aquatic_pupils.length
339
313
  end
340
314
 
@@ -357,9 +331,9 @@ class PolymorphTest < ActiveSupport::TestCase
357
331
  @alice.enemies << @spot
358
332
  @alice.reload
359
333
  @spot.reload
360
- assert @spot.protectors.any? {|obj| obj == @alice}
361
- assert @alice.enemies.any? {|obj| obj == @spot}
362
- assert !@alice.protectors.any? {|obj| obj == @alice}
334
+ assert @spot.protectors.include?(@alice)
335
+ assert @alice.enemies.include?(@spot)
336
+ assert !@alice.protectors.include?(@alice)
363
337
  assert_equal 1, @alice.beautiful_fight_relationships_as_protector.size
364
338
  assert_equal 0, @alice.beautiful_fight_relationships_as_enemy.size
365
339
  assert_equal 1, @alice.beautiful_fight_relationships.size
@@ -367,7 +341,7 @@ class PolymorphTest < ActiveSupport::TestCase
367
341
  # self reference
368
342
  assert_equal 1, @alice.enemies.length
369
343
  @alice.enemies.push @alice
370
- assert @alice.enemies.any? {|obj| obj == @alice}
344
+ assert @alice.enemies.include?(@alice)
371
345
  assert_equal 2, @alice.enemies.length
372
346
  @alice.reload
373
347
  assert_equal 2, @alice.beautiful_fight_relationships_as_protector.size
@@ -375,20 +349,6 @@ class PolymorphTest < ActiveSupport::TestCase
375
349
  assert_equal 3, @alice.beautiful_fight_relationships.size
376
350
  end
377
351
 
378
- def test_double_collection_build_join_record_on_association
379
-
380
- join = @alice.beautiful_fight_relationships_as_protector.build(:enemy => @spot)
381
-
382
- assert_equal @alice.class.base_class.name, join.protector_type
383
- assert_nothing_raised { join.save! }
384
-
385
- assert join.id
386
- assert_equal @double_join_count + 1, BeautifulFightRelationship.count
387
-
388
- assert @alice.enemies.reload
389
- assert @alice.enemies.any? {|obj| obj == @spot}
390
- end
391
-
392
352
  def test_double_dependency_injection
393
353
  # breakpoint
394
354
  end
@@ -396,12 +356,12 @@ class PolymorphTest < ActiveSupport::TestCase
396
356
  def test_double_collection_deletion
397
357
  @alice.enemies << @spot
398
358
  @alice.reload
399
- assert @alice.enemies.any? {|obj| obj == @spot}
359
+ assert @alice.enemies.include?(@spot)
400
360
  @alice.enemies.delete(@spot)
401
- assert !@alice.enemies.any? {|obj| obj == @spot}
361
+ assert !@alice.enemies.include?(@spot)
402
362
  assert @alice.enemies.empty?
403
363
  @alice.reload
404
- assert !@alice.enemies.any? {|obj| obj == @spot}
364
+ assert !@alice.enemies.include?(@spot)
405
365
  assert @alice.enemies.empty?
406
366
  assert_equal 0, @alice.beautiful_fight_relationships.size
407
367
  end
@@ -409,12 +369,12 @@ class PolymorphTest < ActiveSupport::TestCase
409
369
  def test_double_collection_deletion_from_opposite_side
410
370
  @alice.protectors << @puma
411
371
  @alice.reload
412
- assert @alice.protectors.any? {|obj| obj == @puma}
372
+ assert @alice.protectors.include?(@puma)
413
373
  @alice.protectors.delete(@puma)
414
- assert !@alice.protectors.any? {|obj| obj == @puma}
374
+ assert !@alice.protectors.include?(@puma)
415
375
  assert @alice.protectors.empty?
416
376
  @alice.reload
417
- assert !@alice.protectors.any? {|obj| obj == @puma}
377
+ assert !@alice.protectors.include?(@puma)
418
378
  assert @alice.protectors.empty?
419
379
  assert_equal 0, @alice.beautiful_fight_relationships.size
420
380
  end
@@ -423,58 +383,59 @@ class PolymorphTest < ActiveSupport::TestCase
423
383
  assert @alice.dogs.empty?
424
384
  @alice.enemies << @spot
425
385
 
426
- assert @alice.enemies.any? {|obj| obj == @spot}
427
- assert !@alice.kittens.any? {|obj| obj == @alice}
386
+ assert @alice.enemies.include?(@spot)
387
+ assert !@alice.kittens.include?(@alice)
428
388
 
429
- assert !@alice.dogs.any? {|obj| obj == @spot}
389
+ assert !@alice.dogs.include?(@spot)
430
390
  @alice.reload
431
- assert @alice.dogs.any? {|obj| obj == @spot}
432
- assert !WildBoar.find(@alice.id).dogs.any? {|obj| obj == @spot} # make sure the parent type is checked
391
+ assert @alice.dogs.include?(@spot)
392
+ assert !WildBoar.find(@alice.id).dogs.include?(@spot) # make sure the parent type is checked
433
393
  end
434
394
 
435
395
  def test_individual_collections_created_for_double_relationship_from_opposite_side
436
396
  assert @alice.wild_boars.empty?
437
397
  @alice.protectors << @puma
438
- @alice.reload
439
398
 
440
- assert @alice.protectors.any? {|obj| obj == @puma}
441
- assert @alice.wild_boars.any? {|obj| obj == @puma}
399
+ assert @alice.protectors.include?(@puma)
400
+ assert !@alice.wild_boars.include?(@puma)
401
+ @alice.reload
402
+ assert @alice.wild_boars.include?(@puma)
442
403
 
443
- assert !Dog.find(@alice.id).wild_boars.any? {|obj| obj == @puma} # make sure the parent type is checked
404
+ assert !Dog.find(@alice.id).wild_boars.include?(@puma) # make sure the parent type is checked
444
405
  end
445
406
 
446
407
  def test_self_referential_individual_collections_created_for_double_relationship
447
408
  @alice.enemies << @alice
448
409
  @alice.reload
449
- assert @alice.enemy_kittens.any? {|obj| obj == @alice}
450
- assert @alice.protector_kittens.any? {|obj| obj == @alice}
451
- assert @alice.kittens.any? {|obj| obj == @alice}
410
+ assert @alice.enemy_kittens.include?(@alice)
411
+ assert @alice.protector_kittens.include?(@alice)
412
+ assert @alice.kittens.include?(@alice)
452
413
  assert_equal 2, @alice.kittens.size
453
414
 
454
415
  @alice.enemies << (@chloe = Kitten.find_by_name('Chloe'))
455
416
  @alice.reload
456
- assert @alice.enemy_kittens.any? {|obj| obj == @chloe}
457
- assert !@alice.protector_kittens.any? {|obj| obj == @chloe}
458
- assert @alice.kittens.any? {|obj| obj == @chloe}
417
+ assert @alice.enemy_kittens.include?(@chloe)
418
+ assert !@alice.protector_kittens.include?(@chloe)
419
+ assert @alice.kittens.include?(@chloe)
459
420
  assert_equal 3, @alice.kittens.size
460
421
  end
461
422
 
462
423
  def test_child_of_polymorphic_join_can_reach_parent
463
424
  @alice.enemies << @spot
464
425
  @alice.reload
465
- assert @spot.protectors.any? {|obj| obj == @alice}
426
+ assert @spot.protectors.include?(@alice)
466
427
  end
467
428
 
468
429
  def test_double_collection_deletion_from_child_polymorphic_join
469
430
  @alice.enemies << @spot
470
431
  @spot.protectors.delete(@alice)
471
- assert !@spot.protectors.any? {|obj| obj == @alice}
432
+ assert !@spot.protectors.include?(@alice)
472
433
  @alice.reload
473
- assert !@alice.enemies.any? {|obj| obj == @spot}
434
+ assert !@alice.enemies.include?(@spot)
474
435
  BeautifulFightRelationship.create(:protector_id => 2, :protector_type => "Dog", :enemy_id => @spot.id, :enemy_type => @spot.class.name)
475
436
  @alice.enemies << @spot
476
437
  @spot.protectors.delete(@alice)
477
- assert !@spot.protectors.any? {|obj| obj == @alice}
438
+ assert !@spot.protectors.include?(@alice)
478
439
  end
479
440
 
480
441
  def test_collection_query_on_unsaved_record
@@ -485,15 +446,15 @@ class PolymorphTest < ActiveSupport::TestCase
485
446
  def test_double_individual_collections_push
486
447
  assert_equal [@chloe], (@spot.protector_kittens << @chloe)
487
448
  @spot.reload
488
- assert @spot.protectors.any? {|obj| obj == @chloe}
489
- assert @spot.protector_kittens.any? {|obj| obj == @chloe}
490
- assert !@spot.protector_dogs.any? {|obj| obj == @chloe}
449
+ assert @spot.protectors.include?(@chloe)
450
+ assert @spot.protector_kittens.include?(@chloe)
451
+ assert !@spot.protector_dogs.include?(@chloe)
491
452
 
492
453
  assert_equal [@froggy], (@spot.frogs << @froggy)
493
454
  @spot.reload
494
- assert @spot.enemies.any? {|obj| obj == @froggy}
495
- assert @spot.frogs.any? {|obj| obj == @froggy}
496
- assert !@spot.enemy_dogs.any? {|obj| obj == @froggy}
455
+ assert @spot.enemies.include?(@froggy)
456
+ assert @spot.frogs.include?(@froggy)
457
+ assert !@spot.enemy_dogs.include?(@froggy)
497
458
  end
498
459
 
499
460
  def test_double_individual_collections_delete
@@ -505,7 +466,7 @@ class PolymorphTest < ActiveSupport::TestCase
505
466
 
506
467
  @spot.reload
507
468
  assert @spot.protector_kittens.empty?
508
- assert @spot.wild_boars.any? {|obj| obj == @puma}
469
+ assert @spot.wild_boars.include?(@puma)
509
470
  end
510
471
 
511
472
  def test_double_individual_collections_clear
@@ -517,12 +478,12 @@ class PolymorphTest < ActiveSupport::TestCase
517
478
  @spot.reload
518
479
  assert @spot.protector_kittens.empty?
519
480
  assert_equal 1, @spot.protectors.size
520
- assert !@spot.protector_kittens.any? {|obj| obj == @chloe}
521
- assert !@spot.protectors.any? {|obj| obj == @chloe}
522
- assert !@spot.protector_kittens.any? {|obj| obj == @alice}
523
- assert !@spot.protectors.any? {|obj| obj == @alice}
524
- assert @spot.protectors.any? {|obj| obj == @puma}
525
- assert @spot.wild_boars.any? {|obj| obj == @puma}
481
+ assert !@spot.protector_kittens.include?(@chloe)
482
+ assert !@spot.protectors.include?(@chloe)
483
+ assert !@spot.protector_kittens.include?(@alice)
484
+ assert !@spot.protectors.include?(@alice)
485
+ assert @spot.protectors.include?(@puma)
486
+ assert @spot.wild_boars.include?(@puma)
526
487
  end
527
488
 
528
489
  def test_single_extensions
@@ -560,16 +521,9 @@ class PolymorphTest < ActiveSupport::TestCase
560
521
  end" }
561
522
  assert_raises(@association_error) {
562
523
  eval "class SomeModel < ActiveRecord::Base
563
- acts_as_double_polymorphic_join :polymorph => [:dogs, :cats], :unimorphs => [:dogs, :cats]
524
+ acts_as_double_polymorphic_join :polymorph => [:dogs, :cats], :unimorphs => [:dogs, :cats]
564
525
  end" }
565
526
  end
566
-
567
- def test_error_message_on_namespaced_targets
568
- assert_raises(@association_error) {
569
- eval "class SomeModel < ActiveRecord::Base
570
- has_many_polymorphs :polymorphs, :from => [:fish]
571
- end" }
572
- end
573
527
 
574
528
  def test_single_custom_finders
575
529
  [@kibbles, @alice, @puma, @spot, @bits].each {|record| @kibbles.eaters << record; sleep 1} # XXX yeah i know
@@ -634,38 +588,12 @@ class PolymorphTest < ActiveSupport::TestCase
634
588
  assert_equal EatersFoodstuff.name, Petfood.reflect_on_association(:eaters).class_name
635
589
  end
636
590
 
637
- def test_parent_order
591
+ def test_parent_order_orders_parents
638
592
  @alice.foodstuffs_of_eaters << Petfood.find(:all, :order => "the_petfood_primary_key ASC")
639
593
  @alice.reload #not necessary
640
594
  assert_equal [2,1], @alice.foodstuffs_of_eaters.map(&:id)
641
595
  end
642
596
 
643
- def test_parent_conditions
644
- @kibbles.eaters << @alice
645
- assert_equal [@alice], @kibbles.eaters
646
-
647
- @snausages = Petfood.create(:name => 'Snausages')
648
- @snausages.eaters << @alice
649
- assert_equal [@alice], @snausages.eaters
650
-
651
- assert_equal [@kibbles], @alice.foodstuffs_of_eaters
652
- end
653
-
654
- def test_self_referential_hmp_with_conditions
655
- p = Person.find(:first)
656
- kid = Person.create(:name => "Tim", :age => 3)
657
- p.kids << kid
658
-
659
- kid.reload; p.reload
660
-
661
- # assert_equal [p], kid.parents
662
- # assert Rails.has_one? Bug
663
- # non-standard foreign_type key is not set properly when you are the polymorphic interface of a has_many going to a :through
664
-
665
- assert_equal [kid], p.kids
666
- assert_equal [kid], p.people
667
- end
668
-
669
597
  # def test_polymorphic_include
670
598
  # @kibbles.eaters << [@kibbles, @alice, @puma, @spot, @bits]
671
599
  # assert @kibbles.eaters.include?(@kibbles.eaters_foodstuffs.find(:all, :include => :eater).first.eater)