has_many_polymorphs 2.2 → 2.9

Sign up to get free protection for your applications and to get access to all the features.
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)