diff --git a/lib/stargate/operation/scanner_operation.rb b/lib/stargate/operation/scanner_operation.rb
index de2f170..da63cee 100644
--- a/lib/stargate/operation/scanner_operation.rb
+++ b/lib/stargate/operation/scanner_operation.rb
@@ -19,6 +19,8 @@ def open_scanner(table_name, options = {})
start_time = options.delete(:start_time)
end_time = options.delete(:end_time)
+ filters = options.delete(:filters)
+
begin
request = Request::ScannerRequest.new(table_name)
@@ -33,14 +35,23 @@ def open_scanner(table_name, options = {})
warn "[open_scanner] Received invalid option key :#{key}"
end
end
- if columns
+ if filters
+ # close the header
xml_data << ">"
+ filters.each do |filter|
+ filter_string = "#{Oj.dump(filter)}"
+ xml_data << filter_string
+ end
+ xml_data << "" unless columns
+ end
+ if columns
+ xml_data << ">" unless filters
[columns].flatten.each do |col|
xml_data << "#{Base64.encode64(col)}"
end
xml_data << ""
else
- xml_data << "/>"
+ xml_data << "/>" unless filters
end
scanner = Response::ScannerResponse.new(rest_post_response(request.open, xml_data), :open_scanner).parse