as names
(https://github.com/ruby/irb/pull/932)
This will save users some heads scratching when they try to register a
command with a string name and found that it doesn't work.
I also rewrote converted custom command tests into integration tests to
make test setup/cleanup easier.
a91a212dbe
We have some places that already use `bundle config auto_install true`,
ie:
7a144f3374/bundler/lib/bundler/cli.rb (L11)
This applies the same logic (copy and pasted) to happen when you
`require "bundler/setup"`.
bb3c922341
(https://github.com/ruby/irb/pull/931)
Some helpers, like Rails console's `app`, requires memoization of the
helper's ivars. To support it IRB needs to memoize helper method instances
as well.
a96c7a6668
We would previously cause a stack overflow if we parsed a file that
was too deeply nested when we were calling inspect. Instead, we now
use a queue of commands to do it linearly so we don't.
0f21f5bfe1
Some helpers, like Rails console's `app`, requires memoization of the
helper's ivars. To support it IRB needs to memoize helper method instances
as well.
169a9a2c30
(https://github.com/ruby/reline/pull/652)
* Separate prompt and input line in rendering
Often, only one of prompt and input changes.
Split prompt+input_line to a separate rendering item will improve differential rendering performance.
* Rename method wrapped_prompt_lines to more descriptive name
16d82f1f23
(https://github.com/ruby/irb/pull/925)
This module was used to extend both commands and helpers when they're not
separated. Now that they are, and we have a Command module, we should move
command-related logic to the Command module and update related references.
This will make the code easier to understand and refactor in the future.
f74ec97236
debug_readline
(https://github.com/ruby/irb/pull/923)
* Remove exit and exti! command workaround when executed outside of IRB
Command was a method. It could be executed outside of IRB.
Workaround for it is no longer needed.
* Handle IRB_EXIT in debug mode
* Add exit and exit! command in rdbg mode
0b5dd6afd0
(https://github.com/ruby/irb/pull/922)
* Remove internal-only methods from Command::Base
Command#ruby_args and Command#unwrap_string_literal are used for default command's argument backward compatibility.
Moved these methods to another module to avoid being used from custom commands.
* Update lib/irb/command/edit.rb
---------
7405a841e8
Co-authored-by: Stan Lo <stan001212@gmail.com>
This case is for not locking things like `arm-darwin-23` when the
lockfile already includes `arm-darwin`, so that we don't infinitely keep
redundant versioned platforms in the lockfile when not necessary.
We detect this with `Gem::Platform#===`. For example,
`Gem::Platform.new("arm-darwin-23") === Gem::Platform.new("arm-darwin")`
but they're not `==`.
However, in the case of `-musl` vs `-gnu`, those act as the platform
"version", but `===` is not commutative for them. This is explained in
`===` docs.
We only want to exclude the local platform in situations when
`Gem::Platform#===` is actually commutative.
8099c4face
(https://github.com/ruby/reline/pull/653)
* Support multiline input in Reline.readline internally, reduce multiline-singleline branch
* Add readline(singleline) prompt test with force inserting multiline text
97846095d7