Sha256: b5ee2a8d0756838bd495a4a9e1249472c7fd5dc504032a046cb603c577ddec60

Contents?: true

Size: 509 Bytes

Versions: 7

Compression:

Stored size: 509 Bytes

Contents

# Extending the Symbol class.
#
class Symbol # :nodoc:all

  # :keys.each_subtoken    # => yields each of [:keys, :key, :ke, :k]
  # :keys.each_subtoken(2) # => yields each of [:keys, :key, :ke]
  #
  def each_subtoken from_length = 1
    sub = self.id2name

    size = sub.size
    from_length = size + from_length + 1 if from_length < 0
    from_length = size if size < from_length
    from_length = 1 if from_length < 1

    yield self
    size.downto(from_length + 1) { yield sub.chop!.intern }
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
picky-3.1.0 lib/picky/extensions/symbol.rb
picky-3.0.1 lib/picky/extensions/symbol.rb
picky-3.0.0 lib/picky/extensions/symbol.rb
picky-3.0.0.pre5 lib/picky/extensions/symbol.rb
picky-3.0.0.pre4 lib/picky/extensions/symbol.rb
picky-3.0.0.pre3 lib/picky/extensions/symbol.rb
picky-3.0.0.pre2 lib/picky/extensions/symbol.rb