Renamed helpers to correspond to renamed Controller classes.
[merb_radiant.git] / radiant_specs / test / helpers / .svn / text-base / extension_fixture_test_helper.rb.svn-base
blobe3e755936a2d1e041c37419e8a50f6fb73b100bf
1 module ExtensionFixtureTestHelper
2   def self.included(base)
3     unless base < ClassMethods
4       base.send :include, InstanceMethods
5       base.extend ClassMethods 
6       base.class_eval do
7         class_inheritable_accessor :extension_fixture_table_names, :extension_fixture_path
8         self.extension_fixture_table_names = []
9         self.extension_fixture_path = ""
10         alias_method_chain :load_fixtures, :extensions
11       end
12     end
13   end
15   module ClassMethods
16     def extension_fixtures(*table_names)
17       table_names = table_names.flatten.map { |n| n.to_s }
18       self.extension_fixture_table_names = table_names
19       require_fixture_classes(table_names)
20       setup_fixture_accessors(table_names)
21     end
22   end
24   module InstanceMethods
25     def load_fixtures_with_extensions
26       @loaded_fixtures = {}
27       fixtures = Fixtures.create_fixtures(fixture_path, fixture_table_names, fixture_class_names),
28       extension_fixtures = Fixtures.create_fixtures(extension_fixture_path, extension_fixture_table_names, fixture_class_names)
29       [fixtures, extension_fixtures].each do |f|
30         unless f.nil?
31           if f.instance_of?(Fixtures)
32             @loaded_fixtures[f.table_name] = f
33           else
34             f.each { |x| @loaded_fixtures[x.table_name] = x unless x.nil? }
35           end
36         end
37       end
38     end
39   end
40 end