Loads the given private key identified by id and data.
An EngineError
is raised of the OpenSSL::PKey
is unavailable.
Load an iseq object from binary format String
object created by RubyVM::InstructionSequence.to_binary
.
This loader does not have a verifier, so that loading broken/modified binary causes critical problem.
You should not load binary data provided by others. You should use binary data translated by yourself.
Takes file
, a String
with the location of a Ruby
source file, reads, parses and compiles the file, and returns iseq
, the compiled InstructionSequence
with source location metadata set. It parses and compiles using prism.
Optionally takes options
, which can be true
, false
or a Hash
, to modify the default behavior of the Ruby
iseq compiler.
For details regarding valid compile options see ::compile_option=
.
# /tmp/hello.rb puts "Hello, world!" # elsewhere RubyVM::InstructionSequence.compile_file_prism("/tmp/hello.rb") #=> <RubyVM::InstructionSequence:<main>@/tmp/hello.rb>
When a call node has the attribute_write flag set, it means that the call is using the attribute write syntax. This is either a method call to []= or a method call to a method that ends with =. Either way, the = sign is present in the source.
Prism
returns the message_loc without the = sign attached, because there can be any amount of space between the message and the = sign. However, sometimes you want the location of the full message including the inner space and the = sign. This method provides that.
Regular gems take precedence over default gems
Gems higher up in gem_path
take precedence
Performs various checks before installing the gem such as the install repository is writable and its directories exist, required Ruby
and rubygems versions are met and that dependencies are installed.
Version and dependency checks are skipped if this install is forced.
The dependent check will be skipped if the install is ignoring dependencies.
Installs from the gem dependencies files in the :gemdeps
option in options
, yielding to the block
as in install
.
If :without_groups
is given in the options
, those groups in the gem dependencies file are not used. See Gem::Installer
for other options
.
Extra files to add to RDoc
such as README or doc/examples.txt
When the user elects to generate the RDoc
documentation for a gem (typically at install time), all the library files are sent to RDoc
for processing. This option allows you to have some non-code files included for a more complete set of documentation.
Usage:
spec.extra_rdoc_files = ['README', 'doc/user-guide.txt']
Sets extra_rdoc_files
to files
, ensuring it is an array.
Choose from a list of options. question
is a prompt displayed above the list. list
is a list of option strings. Returns the pair [option_name, option_index].
Keeps track of what lines have been added to blocks and which are not yet visited.
When one element fully encapsulates another we remove the smaller block from the frontier. This prevents double expansions and all-around weird behavior. However this guarantee is quite expensive to maintain
Given that we know our syntax error exists somewhere in our frontier, we want to find the smallest possible set of blocks that contain all the syntax errors
Builds blocks from bottom up
Comes from ripper, called on every parse error, msg is a string