Class: String

Inherits:
Object show all
Defined in:
lib/aws/s3/extensions.rb

Direct Known Subclasses

AWS::S3::Authentication::CanonicalString, AWS::S3::Authentication::Signature, AWS::S3::Base::Response, AWS::S3::Logging::Log::Line, AWS::S3::S3Object::Value, CoercibleString, XmlGenerator

Instance Method Summary (collapse)

Instance Method Details

- (Object) previous



41
42
43
# File 'lib/aws/s3/extensions.rb', line 41

def previous
  dup.previous!
end

- (Object) previous!



30
31
32
33
# File 'lib/aws/s3/extensions.rb', line 30

def previous!
  self[-1] = (self[-1].ord - 1).chr
  self
end

- (Object) remove_extended



88
89
90
# File 'lib/aws/s3/extensions.rb', line 88

def remove_extended
  dup.remove_extended!
end

- (Object) remove_extended!

All paths in in S3 have to be valid unicode so this takes care of cleaning up any strings that aren't valid utf-8 according to String#valid_utf8?



74
75
76
# File 'lib/aws/s3/extensions.rb', line 74

def remove_extended!
  gsub!(/[\x80-\xFF]/) { "%02X" % $&[0] }
end

- (Object) to_header



45
46
47
# File 'lib/aws/s3/extensions.rb', line 45

def to_header
  downcase.tr('_', '-')
end

- (Object) underscore



51
52
53
54
55
56
# File 'lib/aws/s3/extensions.rb', line 51

def underscore
  gsub(/::/, '/').
    gsub(/([A-Z]+)([A-Z][a-z])/,'\1_\2').
    gsub(/([a-z\d])([A-Z])/,'\1_\2').
    tr("-", "_").downcase
end

- (Boolean) valid_utf8?

Returns:

  • (Boolean)


59
60
61
62
63
64
# File 'lib/aws/s3/extensions.rb', line 59

def valid_utf8?
  scan(Regexp.new('[^\x00-\xa0]', nil, 'u')) { |s| s.unpack('U') }
  true
rescue ArgumentError
  false
end