Sha256: 04318fafeeaa824db126ffaa81b551fe6417932d2ab8da8163bd0d2469b08090

Contents?: true

Size: 1.26 KB

Versions: 151

Compression:

Stored size: 1.26 KB

Contents

class String
  # Truncates a given +text+ after a given <tt>length</tt> if +text+ is longer than <tt>length</tt>:
  #
  #   'Once upon a time in a world far far away'.truncate(27)
  #   # => "Once upon a time in a wo..."
  #
  # Pass a string or regexp <tt>:separator</tt> to truncate +text+ at a natural break:
  #
  #   'Once upon a time in a world far far away'.truncate(27, separator: ' ')
  #   # => "Once upon a time in a..."
  #
  #   'Once upon a time in a world far far away'.truncate(27, separator: /\s/)
  #   # => "Once upon a time in a..."
  #
  # The last characters will be replaced with the <tt>:omission</tt> string (defaults to "...")
  # for a total length not exceeding <tt>length</tt>:
  #
  #   'And they found that many people were sleeping better.'.truncate(25, omission: '... (continued)')
  #   # => "And they f... (continued)"
  def truncate(truncate_at, options = {})
    return dup unless length > truncate_at

    omission = options[:omission] || '...'
    length_with_room_for_omission = truncate_at - omission.length
    stop = \
      if options[:separator]
        rindex(options[:separator], length_with_room_for_omission) || length_with_room_for_omission
      else
        length_with_room_for_omission
      end

    "#{self[0, stop]}#{omission}"
  end
end

Version data entries

151 entries across 151 versions & 2 rubygems

Version Path
fastlane-2.26.1 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.27.0.beta.20170408010009 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.27.0.beta.20170407010056 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.26.0 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.26.0.beta.20170406010019 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.26.0.beta.20170405010026 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.26.0.beta.20170404010022 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.25.0 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.25.0.beta.20170403010018 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.25.0.beta.20170402010035 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.25.0.beta.20170401010021 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.25.0.beta.20170331010039 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.25.0.beta.20170330225747 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0.beta.20170330010023 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0.beta.20170329010023 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0.beta.20170328010037 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0.beta.20170327010009 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0.beta.20170326010023 fastlane_core/lib/fastlane_core/string_filters.rb
fastlane-2.24.0.beta.20170325010032 fastlane_core/lib/fastlane_core/string_filters.rb