2010-03-14 23:11:43 -04:00
|
|
|
require 'fog/aws/parsers/simpledb/basic'
|
|
|
|
|
2009-07-11 16:41:21 -04:00
|
|
|
module Fog
|
|
|
|
module Parsers
|
|
|
|
module AWS
|
|
|
|
module SimpleDB
|
|
|
|
|
|
|
|
class Select < Fog::Parsers::AWS::SimpleDB::Basic
|
|
|
|
|
|
|
|
def reset
|
|
|
|
@item_name = @attribute_name = nil
|
2009-07-31 02:13:48 -04:00
|
|
|
@response = { 'Items' => {} }
|
2009-07-11 16:41:21 -04:00
|
|
|
end
|
|
|
|
|
|
|
|
def end_element(name)
|
|
|
|
case name
|
2009-07-31 02:13:48 -04:00
|
|
|
when 'BoxUsage'
|
2011-05-12 16:15:13 -04:00
|
|
|
response[name] = value.to_f
|
2009-07-31 02:13:48 -04:00
|
|
|
when 'Item'
|
|
|
|
@item_name = @attribute_name = nil
|
|
|
|
when 'Name'
|
|
|
|
if @item_name.nil?
|
2011-05-12 16:15:13 -04:00
|
|
|
@item_name = value
|
2009-07-31 02:13:48 -04:00
|
|
|
response['Items'][@item_name] = {}
|
|
|
|
else
|
2011-05-12 16:15:13 -04:00
|
|
|
@attribute_name = value
|
2010-07-13 23:20:50 -04:00
|
|
|
response['Items'][@item_name][@attribute_name] ||= []
|
2009-07-31 02:13:48 -04:00
|
|
|
end
|
|
|
|
when 'NextToken', 'RequestId'
|
2011-05-12 16:15:13 -04:00
|
|
|
response[name] = value
|
2009-07-31 02:13:48 -04:00
|
|
|
when 'Value'
|
2011-05-12 16:15:13 -04:00
|
|
|
response['Items'][@item_name][@attribute_name] << sdb_decode(value)
|
2009-07-11 16:41:21 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|