array_prefix(iteration, width)
click to toggle source
def array_prefix(iteration, width)
generic_prefix(iteration, width)
end
find_method(name)
click to toggle source
def find_method(name)
object = array.instance_variable_get('@__awesome_methods__')
meth = begin
object.method(name)
rescue NameError, ArgumentError
nil
end
meth || begin
object.instance_method(name)
rescue NameError
nil
end
end
generate_printable_array()
click to toggle source
def generate_printable_array
array.map.with_index do |item, index|
array_prefix(index, width(array)).tap do |temp|
indented { temp << inspector.awesome(item) }
end
end
end
generate_printable_tuples()
click to toggle source
def generate_printable_tuples
tuples.map.with_index do |item, index|
tuple_prefix(index, width(tuples)).tap do |temp|
indented { temp << tuple_template(item) }
end
end
end
generate_tuple(name)
click to toggle source
def generate_tuple(name)
meth = case name
when Symbol, String
find_method(name)
end
meth ? method_tuple(meth) : [name.to_s, '(?)', '?']
end
generic_prefix(iteration, width, padding='')
click to toggle source
def generic_prefix(iteration, width, padding='')
if options[:index]
indent + colorize("[#{iteration.to_s.rjust(width)}] ", :array)
else
indent + padding
end
end
methods_array()
click to toggle source
def methods_array
array.map!(&:to_s).sort!
data = generate_printable_tuples.join("\n")
"[\n#{data}\n#{outdent}]"
end
methods_array?()
click to toggle source
def methods_array?
array.instance_variable_defined?('@__awesome_methods__')
end
multiline_array()
click to toggle source
def multiline_array
data = unless should_be_limited?
generate_printable_array
else
limited(generate_printable_array, width(array))
end
%Q([\n#{data.join(",\n")}\n#{outdent}])
end
name_and_args_width()
click to toggle source
def name_and_args_width
name_and_args = tuples.transpose
return name_and_args[0].map(&:size).max, name_and_args[1].map(&:size).max
end
simple_array()
click to toggle source
def simple_array
if options[:multiline]
multiline_array
else
'[ ' << array.map { |item| inspector.awesome(item) }.join(', ') << ' ]'
end
end
tuple_prefix(iteration, width)
click to toggle source
def tuple_prefix(iteration, width)
generic_prefix(iteration, width, ' ')
end
tuple_template(item)
click to toggle source
def tuple_template(item)
name_width, args_width = name_and_args_width
[
colorize(item[0].rjust(name_width), :method),
colorize(item[1].ljust(args_width), :args),
' ',
colorize(item[2], :class)
].join
end
tuples()
click to toggle source
def tuples
@tuples ||= array.map { |name| generate_tuple(name) }
end
width(items)
click to toggle source
def width(items)
(items.size - 1).to_s.size
end