Skip to content

Instantly share code, notes, and snippets.

@willrjmarshall
Created April 5, 2011 02:40
Show Gist options
  • Save willrjmarshall/902928 to your computer and use it in GitHub Desktop.
Save willrjmarshall/902928 to your computer and use it in GitHub Desktop.
def read_yaml_fixture_files
yaml_string = (Dir["#{@fixture_path}/**/*.yml"].select { |f|
File.file?(f)
} + [yaml_file_path]).map { |file_path| IO.read(file_path) }.join
if yaml = parse_yaml_string(yaml_string)
# If the file is an ordered map, extract its children.
yaml_value =
if yaml.respond_to?(:type_id) && yaml.respond_to?(:value)
yaml.value
else
[yaml]
end
yaml_value.each do |fixture|
raise Fixture::FormatError, "Bad data for #{@class_name} fixture named #{fixture}" unless fixture.respond_to?(:each)
fixture.each do |name, data|
unless data
raise Fixture::FormatError, "Bad data for #{@class_name} fixture named #{name} (nil)"
end
self[name] = Fixture.new(data, model_class, @connection)
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment