require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') begin require "mongoid" require "awesome_print/ext/mongoid" describe "AwesomePrint/Mongoid" do before :all do class MongoUser include Mongoid::Document field :first_name, :type => String field :last_name, :type => String end end before do @ap = AwesomePrint::Inspector.new :plain => true, :sort_keys => true end it "should print class instance" do user = MongoUser.new :first_name => "Al", :last_name => "Capone" out = @ap.send :awesome, user str = <<-EOS.strip # #, "first_name" => "Al", "last_name" => "Capone" }, attr_accessor :new_record = true, attr_reader :changed_attributes = { "_id" => nil, "first_name" => nil, "last_name" => nil }, attr_reader :pending_nested = {}, attr_reader :pending_relations = {} > EOS out.gsub!(/0x([a-f\d]+)/, "0x01234567") out.gsub!(/(\[\s?\d+\])\s\d+/, "\\1 42") out.should eq str end it "should print the class" do @ap.send(:awesome, MongoUser).should == <<-EOS.strip class MongoUser < Object { "_id" => :"bson/object_id", "_type" => :string, "first_name" => :string, "last_name" => :string } EOS end it "should print the class when type is undefined" do class Chamelion include Mongoid::Document field :last_attribute end @ap.send(:awesome, Chamelion).should == <<-EOS.strip class Chamelion < Object { "_id" => :"bson/object_id", "_type" => :string, "last_attribute" => :"mongoid/fields/serializable/object" } EOS end end rescue LoadError => error puts "Missing mongoid gem, skipping mongoid specs" puts "Skipping mongoid specs: #{error}" end