Project

General

Profile

Feature #15950

Updated by sawa (Tsuyoshi Sawada) over 5 years ago

To take the first n characters of a string, using `[]` is straightforward: 

 ```ruby 
 "abcdefgh"[0, 3] # => "abc" 
 ``` 

 But to take the last n characters, we need to use n in two arguments: in the index (in negative form) in addition to the length: 

 ```ruby 
 "abcdefgh"[-3, 3] # => "fgh" 
 ``` 

 This is cumbersome. 

 I wish negative length to be allowed, and be interpreted as measuring leftward (while cycling the receiver if necessary). 

 ```ruby 
 "abcdefgh"[0, -3] # => "fgh" 
 "abcdefgh"[5, -3] # => "cde" 
 ``` 

 If there is not enough characters or elements, it should stop at the boundary. 

 ```ruby 
 "abcdefgh"[1, -3] # => "a" 
 ``` 

Back