FactoryGirl.factories.each do |factory| factory.compile factory.human_names.each do |human_name| step "the following #{human_name} exists:" do |table| table.hashes.each do |human_hash| attributes = convert_human_hash_to_attribute_hash(human_hash, factory.associations) FactoryGirl.create(factory.name, attributes) end end step "the following #{human_name.pluralize} exist:" do |table| table.hashes.each do |human_hash| attributes = convert_human_hash_to_attribute_hash(human_hash, factory.associations) FactoryGirl.create(factory.name, attributes) end end step "a(n) #{human_name} exists" do FactoryGirl.create(factory.name) end step ":count #{human_name.pluralize} exist" do |count| FactoryGirl.create_list(factory.name, count.to_i) end if factory.build_class.respond_to?(:columns) factory.build_class.columns.each do |column| name = column.respond_to?(:name) ? column.name : column.to_s human_column_name = name.downcase.gsub('_', ' ') step "a(n) #{human_name} exists with a(n) #{human_column_name} of :value" do |value| FactoryGirl.create(factory.name, name => value) end step ":count #{human_name.pluralize} exist with a(n) #{human_column_name} of :value" do |count, value| FactoryGirl.create_list(factory.name, count.to_i, name => value) end end end end end