Class: RightAws::S3Interface::S3ImprovedListBucketParser

Inherits:
RightAWSParser
  • Object
show all
Defined in:
lib/s3/right_s3_interface.rb

Overview

:nodoc:

Constant Summary

Constants inherited from RightAWSParser

RightAWSParser::DEFAULT_XML_LIBRARY

Instance Attribute Summary

Attributes inherited from RightAWSParser

#full_tag_name, #result, #tag, #xml_lib, #xmlpath

Instance Method Summary collapse

Methods inherited from RightAWSParser

#initialize, #method_missing, #parse, #tag_end, #tag_start, #tagtext, #text, xml_lib, xml_lib=

Constructor Details

This class inherits a constructor from RightAws::RightAWSParser

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class RightAws::RightAWSParser

Instance Method Details

#resetObject



1123
1124
1125
1126
1127
1128
1129
1130
1131
# File 'lib/s3/right_s3_interface.rb', line 1123

def reset
  @result      = {}
  @result[:contents] = []
  @result[:common_prefixes] = []
  @contents    = []
  @current_key = {}
  @common_prefixes = []
  @in_common_prefixes = false
end

#tagend(name) ⇒ Object



1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
# File 'lib/s3/right_s3_interface.rb', line 1136

def tagend(name)
  case name
      # service info
    when 'Name'        then @result[:name]         = @text
    # Amazon uses the same tag for the search prefix and for the entries
      # in common prefix...so use our simple flag to see which element
      # we are parsing
    when 'Prefix'      then @in_common_prefixes ? @common_prefixes << @text : @result[:prefix] = @text
    when 'Marker'      then @result[:marker]       = @text
    when 'MaxKeys'     then @result[:max_keys]     = @text
    when 'Delimiter'   then @result[:delimiter]    = @text
    when 'IsTruncated' then @result[:is_truncated] = (@text =~ /false/ ? false : true)
    when 'NextMarker'  then @result[:next_marker]  = @text
      # key data
    when 'Key'         then @current_key[:key]                = @text
    when 'LastModified'then @current_key[:last_modified]      = @text
    when 'ETag'        then @current_key[:e_tag]              = @text
    when 'Size'        then @current_key[:size]               = @text.to_i
    when 'StorageClass'then @current_key[:storage_class]      = @text
    when 'ID'          then @current_key[:owner_id]           = @text
    when 'DisplayName' then @current_key[:owner_display_name] = @text
    when 'Contents'    then @result[:contents] << @current_key
      # Common Prefix stuff
    when 'CommonPrefixes' 
      @result[:common_prefixes] = @common_prefixes
      @in_common_prefixes = false
  end
end

#tagstart(name, attributes) ⇒ Object



1132
1133
1134
1135
# File 'lib/s3/right_s3_interface.rb', line 1132

def tagstart(name, attributes)
  @current_key = {} if name == 'Contents'
  @in_common_prefixes = true if name == 'CommonPrefixes'
end