Sha256: 7497dc7bf6851c4fdb83dd308b547412e6840c5736a5204cd97f3d63930b04cc

Contents?: true

Size: 1.01 KB

Versions: 20

Compression:

Stored size: 1.01 KB

Contents

require 'facet/string/bracket'

class String

  #def self.bra2ket
  #  @bra2ket ||= { '['=>']', '('=>')', '{'=>'}', '<'=>'>' }
  #end

  # Return a new string embraced by given brakets.
  # If only one bracket char is given it will be placed
  # on either side.
  #
  #   "{unwrap me}".debracket('{')        #=> "unwrap me"
  #   "--unwrap me!".debracket('--','!')  #=> "unwrap me!"
  #
  def unbracket(bra=nil, ket=nil)
    if bra
      ket = Sring.bra2ket[bra] unless ket
      ket = ket ? ket : bra
      s = self.dup
      s.gsub!(%r[^#{Regexp.escape(bra)}], '')
      s.gsub!(%r[#{Regexp.escape(ket)}$], '')
      return s
    else
      if m = String.bra2ket[ self[0,1] ]
        return self.slice(1...-1) if self[-1,1]  == m
      end
    end
    return self.dup  # if nothing else
  end

  # Inplace version of #debraket.
  def unbracket!(bra=nil, ket=nil)
    self.replace( unbracket(bra, ket) )
  end

end


#  _____         _
# |_   _|__  ___| |_
#   | |/ _ \/ __| __|
#   | |  __/\__ \ |_
#   |_|\___||___/\__|
#
# TODO

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
facets-1.2.0 lib/facets/core/string/unbracket.rb
facets-1.3.0 lib/facets/core/string/unbracket.rb
facets-1.2.1 lib/facets/core/string/unbracket.rb
facets-1.1.0 lib/facet/string/unbracket.rb
facets-1.3.3 lib/facets/core/string/unbracket.rb
facets-1.3.1 lib/facets/core/string/unbracket.rb
facets-1.3.2 lib/facets/core/string/unbracket.rb
facets-1.4.0 lib/facets/core/string/unbracket.rb
facets-1.4.1 lib/facets/core/string/unbracket.rb
facets-1.4.2 lib/facets/core/string/unbracket.rb
facets-1.4.3 lib/facets/core/string/unbracket.rb
facets-1.4.4 lib/facets/core/string/unbracket.rb
facets-1.4.5 lib/facets/core/string/unbracket.rb
facets-1.7.38 lib/facets/core/string/unbracket.rb
facets-1.7.0 lib/facets/core/string/unbracket.rb
facets-1.7.30 lib/facets/core/string/unbracket.rb
facets-1.7.46 lib/facets/core/string/unbracket.rb
facets-1.8.20 lib/facets/core/string/unbracket.rb
facets-1.8.0 lib/facets/core/string/unbracket.rb
facets-1.8.8 lib/facets/core/string/unbracket.rb