Class: String
- Defined in:
- lib/vendor/backports-3.3.5/lib/backports/rails/string.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/chr.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/ord.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/upto.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/clear.rb,
lib/vendor/backports-3.3.5/lib/backports/force/string_length.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.3/string/prepend.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/end_with.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/each_char.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/partition.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.3/string/byteslice.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/rpartition.rb,
lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/start_with.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/ascii_only.rb,
lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/codepoints.rb
Class Method Summary collapse
Instance Method Summary collapse
- #ascii_only? ⇒ Boolean
- #byteslice(start, len = Backports::Undefined) ⇒ Object
-
#camelize(first_letter = :upper) ⇒ Object
Standard in rails.
- #chr ⇒ Object
- #clear ⇒ Object
- #codepoints ⇒ Object
-
#constantize ⇒ Object
Standard in rails.
-
#dasherize ⇒ Object
Standard in rails.
-
#demodulize ⇒ Object
Standard in rails.
- #each_char ⇒ Object (also: #chars)
- #end_with?(*suffixes) ⇒ Boolean
- #length ⇒ Object (also: #size)
- #ord ⇒ Object
- #partition_with_new_meaning(pattern = Backports::Undefined) ⇒ Object
- #prepend(other_str) ⇒ Object
- #rpartition(pattern) ⇒ Object
- #start_with?(*prefixes) ⇒ Boolean
-
#underscore ⇒ Object
Standard in rails.
- #upto_with_exclusive(to, excl = false) ⇒ Object
Class Method Details
.try_convert(x) ⇒ Object
4 5 6 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/try_convert.rb', line 4 def String.try_convert(x) Backports.try_convert(x, String, :to_str) end |
Instance Method Details
#ascii_only? ⇒ Boolean
3 4 5 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/ascii_only.rb', line 3 def ascii_only? !(self =~ /[^\x00-\x7f]/) end |
#byteslice(start, len = Backports::Undefined) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.3/string/byteslice.rb', line 5 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 |
#camelize(first_letter = :upper) ⇒ Object
Standard in rails. See official documentation
3 4 5 6 7 8 9 |
# File 'lib/vendor/backports-3.3.5/lib/backports/rails/string.rb', line 3 def camelize(first_letter = :upper) if first_letter == :upper gsub(/\/(.?)/) { "::#{$1.upcase}" }.gsub(/(?:^|_)(.)/) { $1.upcase } else self[0..0].downcase + camelize[1..-1] end end |
#chr ⇒ Object
3 4 5 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/chr.rb', line 3 def chr chars.first || "" end |
#clear ⇒ Object
3 4 5 6 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/clear.rb', line 3 def clear self[0,length] = "" self end |
#codepoints ⇒ Object
3 4 5 6 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/codepoints.rb', line 3 def codepoints return to_enum(:codepoints) unless block_given? unpack("U*").each{|cp| yield cp} end |
#constantize ⇒ Object
Standard in rails. See official documentation
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/vendor/backports-3.3.5/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 |
#dasherize ⇒ Object
Standard in rails. See official documentation
24 25 26 |
# File 'lib/vendor/backports-3.3.5/lib/backports/rails/string.rb', line 24 def dasherize gsub(/_/, '-') end |
#demodulize ⇒ Object
Standard in rails. See official documentation
29 30 31 |
# File 'lib/vendor/backports-3.3.5/lib/backports/rails/string.rb', line 29 def demodulize gsub(/^.*::/, '') end |
#each_char ⇒ Object Also known as: chars
6 7 8 9 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/each_char.rb', line 6 def each_char return to_enum(:each_char) unless block_given? scan(/./m) {|c| yield c} end |
#end_with?(*suffixes) ⇒ Boolean
3 4 5 6 7 8 9 10 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/end_with.rb', line 3 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 |
#length ⇒ Object Also known as: size
5 6 7 |
# File 'lib/vendor/backports-3.3.5/lib/backports/force/string_length.rb', line 5 def length unpack("U*").length end |
#ord ⇒ Object
3 4 5 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.1/string/ord.rb', line 3 def ord codepoints.first or raise ArgumentError, "empty string" end |
#partition_with_new_meaning(pattern = Backports::Undefined) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/partition.rb', line 5 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 |
#prepend(other_str) ⇒ Object
5 6 7 8 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.9.3/string/prepend.rb', line 5 def prepend(other_str) replace Backports.coerce_to_str(other_str) + self self end |
#rpartition(pattern) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/rpartition.rb', line 5 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 |
#start_with?(*prefixes) ⇒ Boolean
3 4 5 6 7 8 9 10 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/start_with.rb', line 3 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 |
#underscore ⇒ Object
Standard in rails. See official documentation
34 35 36 37 38 39 40 |
# File 'lib/vendor/backports-3.3.5/lib/backports/rails/string.rb', line 34 def underscore gsub(/::/, '/'). gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2'). gsub(/([a-z\d])([A-Z])/,'\1_\2'). tr("-", "_"). downcase end |
#upto_with_exclusive(to, excl = false) ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/vendor/backports-3.3.5/lib/backports/1.8.7/string/upto.rb', line 6 def upto_with_exclusive(to, excl=false) return upto_without_exclusive(to){|s| yield s} if block_given? && !excl r = Range.new(self, to, excl) return r.to_enum unless block_given? r.each{|s| yield s} self end |