class Fixture

:nodoc:

def [](key)

def [](key)
  @fixture[key]
end

def class_name

def class_name
  @model_class.name if @model_class
end

def each

def each
  @fixture.each { |item| yield item }
end

def find

def find
  if model_class
    model_class.find(self[model_class.primary_key])
  else
    raise FixtureClassNotFound, "No class attached to find."
  end
end

def initialize(fixture, model_class, connection = ActiveRecord::Base.connection)

def initialize(fixture, model_class, connection = ActiveRecord::Base.connection)
  @connection = connection
  @fixture = fixture
  @model_class = model_class.is_a?(Class) ? model_class : model_class.constantize rescue nil
end

def key_list

def key_list
  columns = @fixture.keys.collect{ |column_name| @connection.quote_column_name(column_name) }
  columns.join(", ")
end

def to_hash

def to_hash
  @fixture
end

def value_list

def value_list
  list = @fixture.inject([]) do |fixtures, (key, value)|
    col = model_class.columns_hash[key] if model_class.respond_to?(:ancestors) && model_class.ancestors.include?(ActiveRecord::Base)
    fixtures << @connection.quote(value, col).gsub('[^\]\\n', "\n").gsub('[^\]\\r', "\r")
  end
  list * ', '
end