Returns a Gem::StubSpecification
for default gems
Returns a Gem::StubSpecification
for installed gem named name
only returns stubs that match Gem.platforms
Return the latest specs, optionally including prerelease specs if prerelease
is true.
Returns an array with bindir attached to each executable in the executables
list
Returns the full path to installed gem’s bin directory.
NOTE: do not confuse this with bindir
, which is just ‘bin’, not a full path.
Returns the full path to an executable named name
in this gem.
Duplicates array_attributes
from other_spec
so state isn’t shared.
Returns the full path to this spec’s ri directory.
Regenerates plugin wrappers after removal.
Smushes all heredoc lines into one line
source = <<~'EOM' foo = <<~HEREDOC lol hehehe HEREDOC EOM lines = CleanDocument.new(source: source).join_heredoc!.lines expect(lines[0].to_s).to eq(source) expect(lines[1].to_s).to eq("")
Smushes logically “consecutive” lines
source = <<~'EOM' User. where(name: 'schneems'). first EOM lines = CleanDocument.new(source: source).join_consecutive!.lines expect(lines[0].to_s).to eq(source) expect(lines[1].to_s).to eq("")
The one known case this doesn’t handle is:
Ripper.lex <<~EOM a && b || c EOM
For some reason this introduces ‘on_ignore_newline` but with BEG type
Helper method for joining “groups” of lines
Input is expected to be type Array
<Array<CodeLine>>
The outer array holds the various “groups” while the inner array holds code lines.
All code lines are “joined” into the first line in their group.
To preserve document size, empty lines are placed in the place of the lines that were “joined”
Used to hide lines
The search alorithm will group lines into blocks then if those blocks are determined to represent valid code they will be hidden