def format
vars = variables.map do |var|
property = var.to_s[1..-1].to_sym
accessor = if object.respond_to?("#{property}=""#{property}=")
object.respond_to?(property) ? :accessor : :writer
else
object.respond_to?(property) ? :reader : nil
end
if accessor
["attr_#{accessor} :#{property}", var]
else
[var.to_s, var]
end
end
data = (options[:sort_vars] ? vars.sort : vars).map do |declaration, var|
key = left_aligned do
align(declaration, declaration.size)
end
unless options[:plain]
if key =~ /(@\w+)/
key.sub!($1, colorize($1, :variable))
else
key.sub!(/(attr_\w+)\s(\:\w+)/, "#{colorize('\\1', :keyword)} #{colorize('\\2', :method)}")
end
end
indented do
key << colorize(' = ', :hash) + inspector.awesome(object.instance_variable_get(var))
end
end
if options[:multiline]
"#<#{awesome_instance}\n#{data.join(%Q/,\n/)}\n#{outdent}>"
else
"#<#{awesome_instance} #{data.join(', ')}>"
end
end