Sha256: a119171f10265a436655c7325e670725f72da477890f1848599794b3b8112a49

Contents?: true

Size: 848 Bytes

Versions: 50

Compression:

Stored size: 848 Bytes

Contents

module MongoModel
  module PrettyInspect
    extend ActiveSupport::Concern
  
    module ClassMethods
      # Returns a string like 'Post(title:String, body:String)'
      def inspect
        if [Document, EmbeddedDocument].include?(self)
          super
        else
          attr_list = model_properties.map { |name, property| "#{name}: #{property.type.inspect}" } * ', '
          "#{super}(#{attr_list})"
        end
      end
    end
  
    # Returns the contents of the document as a nicely formatted string.
    def inspect
      "#<#{self.class.name} #{attributes_for_inspect}>"
    end
  
  private
    def attributes_for_inspect
      attrs = self.class.model_properties.map { |name, property| "#{name}: #{send(name).inspect}" }
      attrs.unshift "id: #{id}" if self.class.properties.include?(:id)
      attrs * ', '
    end
  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
mongomodel-0.5.5 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.5.4 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.5.3 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.5.2 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.5.1 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.5.0 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.9 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.8 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.7 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.6 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.5 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.4 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.3 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.2 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.1 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.4.0 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.3.6 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.3.5 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.3.4 lib/mongomodel/concerns/pretty_inspect.rb
mongomodel-0.3.3 lib/mongomodel/concerns/pretty_inspect.rb