diff --git a/lib/activesp/list.rb b/lib/activesp/list.rb index 000a08f..ac805de 100644 --- a/lib/activesp/list.rb +++ b/lib/activesp/list.rb @@ -203,6 +203,7 @@ def create_folder!(parameters = {}) def changes_since_token(token, options = {}) options = options.dup no_preload = options.delete(:no_preload) + row_limit = (r_l = options.delete(:row_limit)) ? {'rowLimit' => r_l.to_s} : {} options.empty? or raise ArgumentError, "unknown options #{options.keys.map { |k| k.inspect }.join(", ")}" if no_preload @@ -213,9 +214,9 @@ def changes_since_token(token, options = {}) view_fields = Builder::XmlMarkup.new.ViewFields end if token - result = call("Lists", "GetListItemChangesSinceToken", "listName" => @id, 'queryOptions' => '', 'changeToken' => token, 'viewFields' => view_fields) + result = call("Lists", "GetListItemChangesSinceToken", {"listName" => @id, 'queryOptions' => '', 'changeToken' => token, 'viewFields' => view_fields}.merge(row_limit)) else - result = call("Lists", "GetListItemChangesSinceToken", "listName" => @id, 'queryOptions' => '', 'viewFields' => view_fields) + result = call("Lists", "GetListItemChangesSinceToken", {"listName" => @id, 'queryOptions' => '', 'viewFields' => view_fields}.merge(row_limit)) end updates = [] result.xpath("//z:row", NS).each do |row| @@ -506,8 +507,10 @@ def permissions end cache :permissions, :dup => :always - def get_list_items(view_fields, query_options, query) - result = call("Lists", "GetListItems", { "listName" => @id, "viewFields" => view_fields, "queryOptions" => query_options }.merge(query)) + def get_list_items(view_fields, query_options, query, options = {}) + options = options.dup + row_limit = (r_l = options.delete(:row_limit)) ? {'rowLimit' => r_l.to_s} : {} + result = call("Lists", "GetListItems", {"listName" => @id, "viewFields" => view_fields, "queryOptions" => query_options}.merge(query).merge(row_limit)) result.xpath("//z:row", NS).each do |row| yield clean_item_attributes(row.attributes) end