Standard in Ruby 1.8.8. See official documentation
# File lib/backports/1.9.1/string.rb, line 5 def try_convert(x) Backports.try_convert(x, String, :to_str) end
Standard in Ruby 1.9. See official documentation
# File lib/backports/1.9.1/string.rb, line 11 def ascii_only? !(self =~ %r[^\x00-\x7f]/) end
Standard in Ruby 1.9.3 See official documentation
# File lib/backports/1.9.3/string.rb, line 3 def byteslice(start, len = Backports::Undefined) # Argument parsing & checking if Backports::Undefined == len if start.is_a?(Range) range = start start = Backports.coerce_to_int(range.begin) start += bytesize if start < 0 last = Backports.coerce_to_int(range.end) last += bytesize if last < 0 last += 1 unless range.exclude_end? len = last - start else start = Backports.coerce_to_int(start) start += bytesize if start < 0 len = 1 return if start >= bytesize end else start = Backports.coerce_to_int(start) start += bytesize if start < 0 len = Backports.coerce_to_int(len) return if len < 0 end return if start < 0 || start > bytesize len = 0 if len < 0 # Actual implementation: str = unpack("@#{start}a#{len}").first str = dup.replace(str) unless self.instance_of?(String) # Must return subclass str.force_encoding(encoding) end
Standard in rails. See official documentation
# File lib/backports/rails/string.rb, line 3 def camelize(first_letter = :upper) if first_letter == :upper gsub(%r\/(.?)/) { "::#{$1.upcase}" }.gsub(%r(?:^|_)(.)/) { $1.upcase } else self[0..0].downcase + camelize[1..-1] end end
Standard in Ruby 1.9. See official documentation
# File lib/backports/1.9.1/string.rb, line 16 def chr chars.first || "" end
Standard in Ruby 1.9. See official documentation
# File lib/backports/1.9.1/string.rb, line 21 def clear self[0,length] = "" self end
Standard in Ruby 1.9. See official documentation
# File lib/backports/1.9.1/string.rb, line 27 def codepoints return to_enum(:codepoints) unless block_given? unpack("U*").each{|cp| yield cp} end
Standard in rails. See official documentation
# File lib/backports/rails/string.rb, line 12 def constantize names = split('::') names.shift if names.empty? || names.first.empty? constant = Object names.each do |name| constant = constant.const_defined?(name) ? constant.const_get(name) : constant.const_missing(name) end constant end
Standard in rails. See official documentation
# File lib/backports/rails/string.rb, line 24 def dasherize gsub(%r_/, '-') end
Standard in rails. See official documentation
# File lib/backports/rails/string.rb, line 29 def demodulize gsub(%r^.*::/, '') end
# File lib/backports/1.8.7/string.rb, line 18 def each_char return to_enum(:each_char) unless block_given? scan(%r./) {|c| yield c} end
Standard in Ruby 1.8.7+. See official documentation
# File lib/backports/1.8.7/string.rb, line 29 def end_with?(*suffixes) suffixes.any? do |suffix| if suffix.respond_to? :to_str suffix = suffix.to_str self[-suffix.length, suffix.length] == suffix end end end
Standard in Ruby 1.9. See official documentation
# File lib/backports/1.9.1/string.rb, line 36 def ord codepoints.first or raise ArgumentError, "empty string" end
# File lib/backports/1.8.7/string.rb, line 40 def partition_with_new_meaning(pattern = Backports::Undefined) return partition_without_new_meaning{|c| yield c} if pattern == Backports::Undefined pattern = Backports.coerce_to(pattern, String, :to_str) unless pattern.is_a? Regexp i = index(pattern) return [self, "", ""] unless i if pattern.is_a? Regexp match = Regexp.last_match [match.pre_match, match[0], match.post_match] else last = i+pattern.length [self[0...i], self[i...last], self[last...length]] end end
Standard in Ruby 1.9.3 See official documentation
# File lib/backports/1.9.3/string.rb, line 35 def prepend(other_str) replace Backports.coerce_to_str(other_str) + self self end
Standard in Ruby 1.8.7+. See official documentation
# File lib/backports/1.8.7/string.rb, line 57 def rpartition(pattern) pattern = Backports.coerce_to(pattern, String, :to_str) unless pattern.is_a? Regexp i = rindex(pattern) return ["", "", self] unless i if pattern.is_a? Regexp match = Regexp.last_match [match.pre_match, match[0], match.post_match] else last = i+pattern.length [self[0...i], self[i...last], self[last...length]] end end
Standard in Ruby 1.8.7+. See official documentation
# File lib/backports/1.8.7/string.rb, line 72 def start_with?(*prefixes) prefixes.any? do |prefix| if prefix.respond_to? :to_str prefix = prefix.to_str self[0, prefix.length] == prefix end end end
Standard in rails. See official documentation
# File lib/backports/rails/string.rb, line 34 def underscore gsub(%r::/, '/'). gsub(%r([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(%r([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end
# File lib/backports/1.8.7/string.rb, line 83 def upto_with_exclusive(to, excl=false) return upto_without_exclusive(to){|s| yield s} if block_given? && !excl enum = Range.new(self, to, excl).to_enum return enum unless block_given? enum.each{|s| yield s} self end