Class: FixtureBox

Inherits:
Object
  • Object
show all
Defined in:
lib/fixture_box.rb,
lib/fixture_box/version.rb

Constant Summary collapse

VERSION =
'0.1.1'

Instance Method Summary collapse

Constructor Details

#initialize(data, class_names = {}) ⇒ FixtureBox

Returns a new instance of FixtureBox.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fixture_box.rb', line 7

def initialize(data, class_names={})
  data = data.stringify_keys
  class_names = class_names.stringify_keys

  Dir.mktmpdir do |tmp_fixtures_dir|
    decorated_fixture_set_names = []
    decorated_class_names = {}
    data.each do |fixture_set_name, fixture_data|
      fixture_class = class_names[fixture_set_name] || fixture_set_name.to_s.classify.constantize
      decorated_fixture_set_name = decorate_fixture_set_name(fixture_set_name)

      decorated_fixture_set_names << decorated_fixture_set_name
      decorated_class_names[decorated_fixture_set_name] = fixture_class

      File.open(File.join(tmp_fixtures_dir, "#{decorated_fixture_set_name}.yml"), 'w') do |file|
        YAML.dump(fixture_data.deep_stringify_keys, file)
      end
    end
    fixtures = ActiveRecord::FixtureSet.create_fixtures(tmp_fixtures_dir, decorated_fixture_set_names, decorated_class_names)
    @loaded_fixture_sets = Hash[fixtures.map { |f| [f.name, f] }]
  end

  setup_fixture_accessors
end