[#42344] [ruby-trunk - Feature #5964][Open] Make Symbols an Alternate Syntax for Strings — Tom Wardrop <tom@...>

23 messages 2012/02/03

[#42443] [ruby-trunk - Bug #5985][Open] miniruby skews "make benchmark" results — Eric Wong <normalperson@...>

21 messages 2012/02/08

[#42444] [ruby-trunk - Bug #5986][Open] Segmentation Fault — Luis Matta <levmatta@...>

16 messages 2012/02/08

[#42471] [ruby-trunk - Feature #5995][Open] calling io_advise_internal() in read_all() — Masaki Matsushita <glass.saga@...>

20 messages 2012/02/10

[#42560] [ruby-trunk - Bug #6011][Open] ruby-1.9.3-p0/lib/webrick/utils.rb:184: [BUG] Segmentation fault — Vit Ondruch <v.ondruch@...>

12 messages 2012/02/13

[#42579] [ruby-trunk - Bug #6012][Open] Proc#source_location also return the column — Roger Pack <rogerpack2005@...>

14 messages 2012/02/14

[#42685] [ruby-trunk - Bug #6036][Open] Test failures in Fedora Rawhide/17 — Bohuslav Kabrda <bkabrda@...>

14 messages 2012/02/16

[#42697] [ruby-trunk - Bug #6040][Open] Transcoding test failure: Big5 to UTF8 not defined (MinGW) — Luis Lavena <luislavena@...>

10 messages 2012/02/16

[#42813] [ruby-trunk - Feature #6065][Open] Allow Bignum marshalling/unmarshalling from C API — Martin Bosslet <Martin.Bosslet@...>

22 messages 2012/02/23

[#42815] [ruby-trunk - Bug #6066][Open] Fix "control may reach end of non-void function" warnings for clang — Eric Hodel <drbrain@...7.net>

15 messages 2012/02/23

[#42857] [ruby-trunk - Feature #6074][Open] Allow alias arguments to have a comma — Thomas Sawyer <transfire@...>

20 messages 2012/02/24

[#42891] [ruby-trunk - Feature #6083][Open] Hide a Bignum definition — Koichi Sasada <redmine@...>

23 messages 2012/02/25

[#42906] [ruby-trunk - Bug #6085][Open] Treatment of Wrong Number of Arguments — Marc-Andre Lafortune <ruby-core@...>

14 messages 2012/02/25

[#42949] [ruby-trunk - Bug #6089][Open] Test suite fails with OpenSSL 1.0.1 — Vit Ondruch <v.ondruch@...>

13 messages 2012/02/26

[ruby-core:42530] [ruby-trunk - Feature #749][Rejected] String#indent, String#tabto, etc.

From: Yusuke Endoh <mame@...>
Date: 2012-02-13 11:34:40 UTC
List: ruby-core #42530
Issue #749 has been updated by Yusuke Endoh.

Status changed from Assigned to Rejected

I'm rejecting this feature ticket because no progress has been made
for a long time.  See [ruby-42391].



Sorry, I can say few comments.  The use case is trivial for me.
There is nothing wrong with the proposal, I think.  But matz did not
answer, and will not, just keeping this ticket open.
I suggest you, or those who want these features, to get a fresh start;
create a new ticket (with a patch if possible), and appeal to matz.

-- 
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Feature #749: String#indent,  String#tabto, etc.
https://bugs.ruby-lang.org/issues/749

Author: Thomas Sawyer
Status: Rejected
Priority: Normal
Assignee: Yukihiro Matsumoto
Category: core
Target version: 2.0.0


=begin
 There are few indention related String extensions I find myself frequently reusing. Ruby really has nothing built-in that addresses this, so I'd like to the following methods, or something like them, ultimately make it into Ruby core.
 
   # Preserves relative tabbing.
   # The first non-empty line ends up with n spaces before nonspace.
   def tabto(n)
     if self =~ /^( *)\S/
       indent(n - $1.length)
     else
       self
     end
   end
 
   # Indent left or right by n spaces.
   # (This used to be called #tab and aliased as #indent.)
   def indent(n)
     if n >= 0
       gsub(/^/, ' ' * n)
     else
       gsub(/^ {0,#{-n}}/, "")
     end
   end
 
   # Aligns each line n spaces.
   def tab(n)
     gsub(/^ */, ' ' * n)
   end
 
   # Provides a margin controlled string.
   #
   #   x = %Q{
   #         | This
   #         |   is
   #         |     margin controlled!
   #         }.margin
   #
   def margin(n=0)
     d = ((/\A.*\n\s*(.)/.match(self)) ||
         (/\A\s*(.)/.match(self)))[1]
     return '' unless d
     if n == 0
       gsub(/\n\s*\Z/,'').gsub(/^\s*[#{d}]/, '')
     else
       gsub(/\n\s*\Z/,'').gsub(/^\s*[#{d}]/, ' ' * n)
     end
   end
 
 These methods come in very handy in avoiding the need to shove HERE docs up against the left margin, or use repetitive string concatenations. I've seen others mention them from time to time as well, so I know I'm not the only one using them.
 
 Of course, they'd need to be converted to C, but given the size and character of the definitions, I imagine it would be a fairly straight forward translation.
 
 (Giving credit where it is due: The first three methods were originally written by Gavin Sinclair. The later method, if I recall correctly,  by Peter Vanbroekhoven).
=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next