Class for representing HTTP method TRACE:
require 'net/http' uri = URI('http://example.com') hostname = uri.hostname # => "example.com" req = Net::HTTP::Trace.new(uri) # => #<Net::HTTP::Trace TRACE> res = Net::HTTP.start(hostname) do |http| http.request(req) end
See Request Headers.
Properties:
Request body: no.
Response body: yes.
Safe: yes.
Idempotent: yes.
Cacheable: no.
Related:
Net::HTTP#trace
: sends TRACE
request, returns response object.
Class for representing WebDAV method PROPFIND:
require 'net/http' uri = URI('http://example.com') hostname = uri.hostname # => "example.com" req = Net::HTTP::Propfind.new(uri) # => #<Net::HTTP::Propfind PROPFIND> res = Net::HTTP.start(hostname) do |http| http.request(req) end
See Request Headers.
Related:
Net::HTTP#propfind
: sends PROPFIND
request, returns response object.
Tokens where state should be ignored used for :on_comment, :on_heredoc_end, :on_embexpr_end
Ignored newlines can occasionally have a LABEL state attached to them, so we compare the state differently here.
The :line tracepoint event gets fired whenever the Ruby
VM encounters an expression on a new line. The types of expressions that can trigger this event are:
if statements
unless statements
nodes that are children of statements lists
In order to keep track of the newlines, we have a list of offsets that come back from the parser. We assign these offsets to the first nodes that we find in the tree that are on those lines.
Note that the logic in this file should be kept in sync with the Java MarkNewlinesVisitor, since that visitor is responsible for marking the newlines for JRuby/TruffleRuby.
This file is autoloaded only when ‘mark_newlines!` is called, so the re-opening of the various nodes in this file will only be performed in that case. We do that to avoid storing the extra `@newline` instance variable on every node if we don’t need it.
An entry in a repository that will lazily reify its values when they are first accessed.
A field representing the start and end lines.
This class provides a compatibility layer between prism and Ripper
. It functions by parsing the entire tree first and then walking it and executing each of the Ripper
callbacks as it goes. To use this class, you treat ‘Prism::Translation::Ripper` effectively as you would treat the `Ripper` class.
Note that this class will serve the most common use cases, but Ripper’s API is extensive and undocumented. It relies on reporting the state of the parser at any given time. We do our best to replicate that here, but because it is a different architecture it is not possible to perfectly replicate the behavior of Ripper
.
The main known difference is that we may omit dispatching some events in some cases. This impacts the following events:
on_assign_error
on_comma
on_ignored_nl
on_ignored_sp
on_kw
on_label_end
on_lbrace
on_lbracket
on_lparen
on_nl
on_op
on_operator_ambiguous
on_rbrace
on_rbracket
on_rparen
on_semicolon
on_sp
on_symbeg
on_tstring_beg
on_tstring_end
Searches for gems starting with the supplied argument.
Allows writing of tar files
A FetchError
that indicates that the reason for not being able to fetch data was that the host could not be contacted
Specifies a Specification object that should be activated. Also contains a dependency that was used to introduce this activation.
The BestSet
chooses the best available method to query a remote index.
It combines IndexSet and APISet
Used Internally. Wraps a Dependency object to also track which spec contained the Dependency.
The global rubygems pool represented via the traditional source index.
Represents a possible Specification object returned from IndexSet. Used to delay needed to download full Specification objects when only the name
and version
are needed.