Results for: "Pathname"

remove trailing zeros segments before first letter or at the end of the version

returns an integer in (-infty, 0] a number closer to 0 means the dependency is less constraining

dependencies w/ 0 or 1 possibilities (ignoring version requirements) are given very negative values, so they always sort first, before dependencies that are unconstrained

Returns true when it is possible and safe to update the cache directory.

No documentation available

Return the list of all array-oriented instance variables.

Special loader for YAML files. When a Specification object is loaded from a YAML file, it bypasses the normal Ruby object initialization routine (initialize). This method makes up for that and deals with gems of different ages.

input can be anything that YAML.load() accepts: String or IO.

Return the latest specs, optionally including prerelease specs if prerelease is true.

Is name a required attribute?

Required specification attributes

Keeps track of all currently known specifications

Activate all unambiguously resolved runtime dependencies of this spec. Add any ambiguous dependencies to the unresolved list to be resolved later, as needed.

List of dependencies that are used for development

List of dependencies that will automatically be activated at runtime.

No documentation available
No documentation available

Does a sanity check on the specification.

Raises InvalidSpecificationException if the spec does not pass the checks.

Only runs checks that are considered necessary for the specification to be functional.

Issues a warning for each file to be packaged which is world-readable.

Implementation for Specification#validate_permissions

No documentation available
No documentation available

Return the latest specs in the record, optionally including prerelease specs if prerelease is true.

Regenerates plugin wrappers after removal.

No documentation available

Expands code to the next lowest indentation

For example:

1 def dog
2   print "dog"
3 end

If a block starts on line 2 then it has captured all it’s “neighbors” (code at the same indentation or higher). To continue expanding, this block must capture lines one and three which are at a different indentation level.

This method allows fully expanded blocks to decrease their indentation level (so they can expand to capture more code up and down). It does this conservatively as there’s no undo (currently).

A neighbor is code that is at or above the current indent line.

First we build a block with all neighbors. If we can’t go further then we decrease the indentation threshold and expand via indentation i.e. ‘expand_indent`

Handles two general cases.

## Case #1: Check code inside of methods/classes/etc.

It’s important to note, that not everything in a given indentation level can be parsed as valid code even if it’s part of valid code. For example:

1 hash = {
2   name: "richard",
3   dog: "cinco",
4 }

In this case lines 2 and 3 will be neighbors, but they’re invalid until ‘expand_indent` is called on them.

When we are adding code within a method or class (at the same indentation level), use the empty lines to denote the programmer intended logical chunks. Stop and check each one. For example:

1 def dog
2   print "dog"
3
4   hash = {
5 end

If we did not stop parsing at empty newlines then the block might mistakenly grab all the contents (lines 2, 3, and 4) and report them as being problems, instead of only line 4.

## Case #2: Expand/grab other logical blocks

Once the search algorithm has converted all lines into blocks at a given indentation it will then ‘expand_indent`. Once the blocks that generates are expanded as neighbors we then begin seeing neighbors being other logical blocks i.e. a block’s neighbors may be another method or class (something with keywords/ends).

For example:

1 def bark
2
3 end
4
5 def sit
6 end

In this case if lines 4, 5, and 6 are in a block when it tries to expand neighbors it will expand up. If it stops after line 2 or 3 it may cause problems since there’s a valid kw/end pair, but the block will be checked without it.

We try to resolve this edge case with ‘lookahead_balance_one_line` below.

Given an already existing block in the frontier, expand it to see if it contains our invalid syntax

Search took: 4ms  ·  Total Results: 3265