module ReeDto::EntityDSL::InstanceMethods

def inspect

def inspect
  to_s
end

def to_s

def to_s
  variables = self
    .instance_variables
    .map(&:to_s)
    .map { |v| v.gsub('@', '') }
    .sort
  max_length = variables.sort_by(&:size).last.size
  result     = "\n#{self.class}\n"
  result << variables
    .map { |variable|
      name = variable.to_s
      extra_spaces = ' ' * (max_length - name.size)
      %Q(  #{name}#{extra_spaces} = #{instance_variable_get("@#{variable}")})
    }
    .join("\n")
  result
end