awesome-print/awesome_print

Array#uniq is not working on pry with `AwesomePrint.pry!`

hanasuke opened this issue · 5 comments

When I executed pry with AwesomePrint.pry! on Ruby3.0.0, pry raised output error.
stack trace is the below

[1] pry(main)> [1,2,3].uniq
(pry) output error: #<ArgumentError: tried to create Proc object without a block>
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/base_formatter.rb:113:in `new'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/base_formatter.rb:113:in `indented'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:51:in `block (2 levels) in generate_printable_array'
<internal:kernel>:90:in `tap'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:50:in `block in generate_printable_array'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:49:in `map'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:49:in `with_index'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:49:in `generate_printable_array'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:40:in `multiline_array'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:32:in `simple_array'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/array_formatter.rb:20:in `format'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatter.rb:71:in `awesome_array'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/formatter.rb:26:in `format'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/inspector.rb:115:in `unnested'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/inspector.rb:74:in `awesome'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/core_ext/kernel.rb:10:in `ai'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/awesome_print-1.8.0/lib/awesome_print/custom_defaults.rb:45:in `block in pry!'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:302:in `show_result'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:672:in `block in handle_line'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_class.rb:382:in `critical_section'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:671:in `handle_line'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:261:in `block (2 levels) in eval'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:260:in `catch'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:260:in `block in eval'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:259:in `catch'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_instance.rb:259:in `eval'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/repl.rb:77:in `block in repl'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/repl.rb:67:in `loop'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/repl.rb:67:in `repl'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/repl.rb:38:in `block in start'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/input_lock.rb:61:in `__with_ownership'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/input_lock.rb:78:in `with_ownership'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/repl.rb:38:in `start'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/repl.rb:15:in `start'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/pry_class.rb:191:in `start'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/lib/pry/cli.rb:119:in `start'
/Users/naosuke/.asdf/installs/ruby/3.0.0/lib/ruby/gems/3.0.0/gems/pry-0.13.1/bin/pry:13:in `<top (required)>'
/Users/naosuke/.asdf/installs/ruby/3.0.0/bin/pry:23:in `load'
/Users/naosuke/.asdf/installs/ruby/3.0.0/bin/pry:23:in `<main>'

I executed on Ruby2.7.1, it success to execute.
(but some warning is displayed...)

[2] pry(main)> [1,2,3].uniq
/Users/naosuke/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/base_formatter.rb:113: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead
/Users/naosuke/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/awesome_print-1.8.0/lib/awesome_print/inspector.rb:63: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead
/Users/naosuke/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/base_formatter.rb:113: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead
/Users/naosuke/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/awesome_print-1.8.0/lib/awesome_print/inspector.rb:63: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead
/Users/naosuke/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/awesome_print-1.8.0/lib/awesome_print/formatters/base_formatter.rb:113: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead
/Users/naosuke/.asdf/installs/ruby/2.7.1/lib/ruby/gems/2.7.0/gems/awesome_print-1.8.0/lib/awesome_print/inspector.rb:63: warning: Capturing the given block using Proc.new is deprecated; use `&block` instead
[
    [0] 1,
    [1] 2,
    [2] 3
]

Is this a bug of awesome-print? or is it an issue what Ruby3.0.0 is not supported?

I'll take a look!

I have the same issue when trying to print any number of objects. Particularly ActiveRecord objects.

Running into the same issue.

Version 1.9.2 seems to have fixed the issue for me.

Closing, should be fixed. Please open a new issue if it comes back!