Sha256: e256d6429fc3739fcef77702ea61c66c96171836525e88df838b09b2206a0e0e

Contents?: true

Size: 914 Bytes

Versions: 31

Compression:

Stored size: 914 Bytes

Contents

# frozen_string_literal: true
module ActiveMocker
  class ObjectInspect
    def initialize(class_name, attributes)
      @class_name = class_name
      @attributes = attributes
      @string     = create_inspections
    end

    def to_s
      @string
    end

    def to_str
      @string
    end

    private

    def create_inspections
      inspection = @attributes.map do |name, value|
        "#{name}: #{object_for_inspect(value)}"
      end
      "#<#{@class_name} #{inspection.compact.join(", ")}>"
    end

    def object_for_inspect(value)
      if value.is_a?(String) && value.length > 50
        "#{value[0, 50]}...".inspect
      elsif value.is_a?(Date) || value.is_a?(Time)
        %("#{value.to_s(:db)}")
      elsif value.is_a?(Array) && value.size > 10
        inspected = value.first(10).inspect
        %(#{inspected[0...-1]}, ...])
      else
        value.inspect
      end
    end
  end
end

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
active_mocker-2.6.2 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.6.1.beta2 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.6.1.beta lib/active_mocker/mock/object_inspect.rb
active_mocker-2.6.0 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.5.4 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.5.3 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.5.2 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.5.1 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.5.1.pre lib/active_mocker/mock/object_inspect.rb
active_mocker-2.5.0 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.4 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.3 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.2 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.1 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.0 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.0.pre5 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.3.4 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.0.pre4 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.0.pre3 lib/active_mocker/mock/object_inspect.rb
active_mocker-2.4.0.pre2 lib/active_mocker/mock/object_inspect.rb