Return the best specification that contains the file matching path
, among those already activated.
Reset nil attributes to their default values to make the spec valid
Return the best specification in the record that contains the file matching path
, among those already activated.
When there is an invalid block with a keyword missing an end right before another end, it is unclear where which keyword is missing the end
Take this example:
class Dog # 1 def bark # 2 puts "woof" # 3 end # 4
However due to github.com/ruby/syntax_suggest/issues/32 the problem line will be identified as:
> class Dog # 1
Because lines 2, 3, and 4 are technically valid code and are expanded first, deemed valid, and hidden. We need to un-hide the matching end line 4. Also work backwards and if there’s a mis-matched keyword, show it too
Parses the most indented lines into blocks that are marked and added to the frontier
Create a new ClassVariableAndWriteNode
node.
Create a new ClassVariableOperatorWriteNode
node.
Create a new ClassVariableOrWriteNode
node.
Create a new ConstantPathAndWriteNode
node.
Create a new ConstantPathOperatorWriteNode
node.
Create a new ConstantPathOrWriteNode
node.
Create a new GlobalVariableAndWriteNode
node.
Create a new GlobalVariableOperatorWriteNode
node.
Create a new GlobalVariableOrWriteNode
node.
Create a new LocalVariableAndWriteNode
node.
Create a new LocalVariableOperatorWriteNode
node.
Create a new LocalVariableOrWriteNode
node.
Attempts to return an array, based on the given object
.
If object
is an array, returns object
.
Otherwise if object
responds to :to_ary
. calls object.to_ary
: if the return value is an array or nil
, returns that value; if not, raises TypeError
.
Otherwise returns nil
.
Related: see Methods for Creating an Array.
Replaces the elements of self
with the elements of other_array
, which must be an array-convertible object; returns self
:
a = ['a', 'b', 'c'] # => ["a", "b", "c"] a.replace(['d', 'e']) # => ["d", "e"]
Related: see Methods for Assigning.