aerospike 2.4.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f0d72ca366a1dfef80e3703e8ff0ca7577d99b2c
4
- data.tar.gz: f18c8e3563d2b70041fa0d187af3917e35839ed8
3
+ metadata.gz: d49c7d62bc7171c98eac791bf1ff48bc19eed19e
4
+ data.tar.gz: 10b103d7857eff070e3a4dbf23d03df2a4f73009
5
5
  SHA512:
6
- metadata.gz: 650892d7b9ed21af36a832ba0312763fe24a7cdf0acc7234729b19481c6b7f9b9218b4adb7ac6f63501e7e1c3cf40efe877bfa7ab6a3f9a5f1b23eb53227674d
7
- data.tar.gz: 1502c11fb3eba7ed1ffe38fda35554808a53a831ddc2898b0f1fbbe3d088f76cbed5625bfcaafb7c38d0099c82adefb35376796e5aa09bbd2fb79ad421664e11
6
+ metadata.gz: 45ecde047634d1a23464184a27abaa701f742c9a6b4a29797e66d351fd1b080e3d205c797865e85dd9f70c1c239412de5214b4adfbdacaa6f5ac17048ee25a78
7
+ data.tar.gz: a19481a42cba1e64845a7bc98812c9ef73ff22d835a76fa3b0e815904de0574a080ae9dbcf09adbd57ca78606ac6e1743d3f56498a702e788b244f2cc6134932
@@ -1,3 +1,14 @@
1
+ v2.5.0 / 2017-10-10
2
+ ===================
3
+
4
+ * **New Features**
5
+ * Support nobins flag on query operations
6
+ * Support CDT List Increment operation. Requires Aerospike server version 3.15 or later.
7
+
8
+ * **Updates**
9
+ * The deprecated Large Data Types(LDT) feature has been removed.
10
+ * Ruby 2.1 has been removed from the client's test matrix as [official support for Ruby 2.1 has ended in Apr 2017](https://www.ruby-lang.org/en/news/2017/04/01/support-of-ruby-2-1-has-ended/). Nothing has changed in the client that would break compatibility with Ruby 2.1 yet. But compatibility is not guaranteed for future client releases.
11
+
1
12
  v2.4.0 / 2017-04-06
2
13
  ===================
3
14
 
data/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
 
8
8
  An Aerospike library for Ruby.
9
9
 
10
- This library is compatible with Ruby 2.1+ and supports Linux, Mac OS X and various other BSDs. Rubinius is supported, but not JRuby.
10
+ This library is compatible with Ruby 2.2+ and supports Linux, Mac OS X and various other BSDs. Rubinius is supported, but not JRuby.
11
11
 
12
12
  - [Usage](#Usage)
13
13
  - [Prerequisites](#Prerequisites)
@@ -61,7 +61,7 @@ Details about the API are available in the [`docs`](docs) directory.
61
61
  <a name="Prerequisites"></a>
62
62
  ## Prerequisites
63
63
 
64
- [Ruby](https://ruby-lang.org) version v2.0+ is required.
64
+ [Ruby](https://ruby-lang.org) version v2.2+ is required.
65
65
 
66
66
  Aerospike Ruby client implements the wire protocol, and does not depend on the C client.
67
67
  It is thread friendly.
@@ -81,7 +81,7 @@ Supported operating systems:
81
81
 
82
82
  ### Installation from source
83
83
 
84
- 1. Install Ruby 2.0+
84
+ 1. Install Ruby 2.2+
85
85
  2. Install RubyGems
86
86
  3. Install Bundler: ```gem install bundler```
87
87
  4. Install dependencies: ```bundler install```
@@ -84,11 +84,6 @@ require 'aerospike/cluster/partition'
84
84
  require 'aerospike/cluster/node'
85
85
  require 'aerospike/cluster/partition_tokenizer_new'
86
86
  require 'aerospike/cluster/partition_tokenizer_old'
87
- require 'aerospike/ldt/large_map'
88
- require 'aerospike/ldt/large_set'
89
- require 'aerospike/ldt/large_stack'
90
- require 'aerospike/ldt/large'
91
- require 'aerospike/ldt/large_list'
92
87
  require 'aerospike/info'
93
88
  require 'aerospike/udf'
94
89
  require 'aerospike/bin'
@@ -49,6 +49,7 @@ module Aerospike
49
49
  SET = 9
50
50
  TRIM = 10
51
51
  CLEAR = 11
52
+ INCREMENT = 12
52
53
  SIZE = 16
53
54
  GET = 17
54
55
  GET_RANGE = 18
@@ -150,6 +151,18 @@ module Aerospike
150
151
  create_operation(Operation::CDT_MODIFY, CLEAR, bin_name)
151
152
  end
152
153
 
154
+ ##
155
+ # Create list increment operation.
156
+ # Server increments list[index] by value. If not specified, value defaults to 1.
157
+ # Server returns the value of list[index] after the operation.
158
+ def self.increment(bin_name, index, value = nil)
159
+ if value
160
+ create_operation(Operation::CDT_MODIFY, INCREMENT, bin_name, index, value)
161
+ else
162
+ create_operation(Operation::CDT_MODIFY, INCREMENT, bin_name, index)
163
+ end
164
+ end
165
+
153
166
  ##
154
167
  # Create list size operation.
155
168
  # Server returns size of list.
@@ -371,49 +371,6 @@ module Aerospike
371
371
  command.record
372
372
  end
373
373
 
374
- #-------------------------------------------------------------------
375
- # Large collection functions (Supported by Aerospike 3 servers only)
376
- #-------------------------------------------------------------------
377
-
378
- # Initialize large list operator. This operator can be used to create and manage a list
379
- # within a single bin.
380
- #
381
- # This method is only supported by Aerospike 3 servers.
382
- def get_large_list(key, bin_name, user_module=nil, options={})
383
- policy = create_policy(options, WritePolicy)
384
- LargeList.new(self, policy, key, bin_name, user_module)
385
- end
386
-
387
- # Initialize large map operator. This operator can be used to create and manage a map
388
- # within a single bin.
389
- #
390
- # This method is only supported by Aerospike 3 servers.
391
- # DEPRECATED. This method will be removed from the client in the future.
392
- def get_large_map(key, bin_name, user_module=nil, options={})
393
- policy = create_policy(options, WritePolicy)
394
- LargeMap.new(self, policy, key, bin_name, user_module)
395
- end
396
-
397
- # Initialize large set operator. This operator can be used to create and manage a set
398
- # within a single bin.
399
- #
400
- # This method is only supported by Aerospike 3 servers.
401
- # DEPRECATED. This method will be removed from the client in the future.
402
- def get_large_set(key, bin_name, user_module=nil, options={})
403
- policy = create_policy(options, WritePolicy)
404
- LargeSet.new(self, policy, key, bin_name, user_module)
405
- end
406
-
407
- # Initialize large stack operator. This operator can be used to create and manage a stack
408
- # within a single bin.
409
- #
410
- # This method is only supported by Aerospike 3 servers.
411
- # DEPRECATED. This method will be removed from the client in the future.
412
- def get_large_stack(key, bin_name, user_module=nil, options={})
413
- policy = create_policy(options, WritePolicy)
414
- LargeStack.new(self, policy, key, bin_name, user_module)
415
- end
416
-
417
374
  #---------------------------------------------------------------
418
375
  # User defined functions (Supported by Aerospike 3 servers only)
419
376
  #---------------------------------------------------------------
@@ -17,14 +17,18 @@ require 'aerospike/policy/batch_policy'
17
17
 
18
18
  module Aerospike
19
19
 
20
- # Container object for scan policy command.
20
+ # Container object for query policy command.
21
21
  class QueryPolicy < BatchPolicy
22
22
 
23
+ attr_accessor :include_bin_data
24
+
23
25
  def initialize(opt={})
24
26
  super(opt)
25
27
 
26
28
  @max_retries = 0
27
29
 
30
+ @include_bin_data = opt.fetch(:include_bin_data, true)
31
+
28
32
  self
29
33
  end
30
34
 
@@ -116,7 +116,7 @@ module Aerospike
116
116
 
117
117
  size_buffer
118
118
 
119
- readAttr = INFO1_READ
119
+ readAttr = @policy.include_bin_data ? INFO1_READ : INFO1_READ | INFO1_NOBINDATA
120
120
  operation_count = (@statement.filters.to_a.length == 0 && @statement.bin_names.to_a.length == 0) ? @statement.bin_names.length : 0
121
121
 
122
122
  write_header(@policy, readAttr, 0, fieldCount, operation_count)
@@ -1,4 +1,4 @@
1
1
  # encoding: utf-8
2
2
  module Aerospike
3
- VERSION = "2.4.0"
3
+ VERSION = "2.5.0"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aerospike
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Khosrow Afroozeh
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-06 00:00:00.000000000 Z
12
+ date: 2017-10-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: msgpack
@@ -93,11 +93,6 @@ files:
93
93
  - lib/aerospike/info.rb
94
94
  - lib/aerospike/key.rb
95
95
  - lib/aerospike/language.rb
96
- - lib/aerospike/ldt/large.rb
97
- - lib/aerospike/ldt/large_list.rb
98
- - lib/aerospike/ldt/large_map.rb
99
- - lib/aerospike/ldt/large_set.rb
100
- - lib/aerospike/ldt/large_stack.rb
101
96
  - lib/aerospike/loggable.rb
102
97
  - lib/aerospike/operation.rb
103
98
  - lib/aerospike/policy/admin_policy.rb
@@ -151,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
146
  requirements:
152
147
  - - ">="
153
148
  - !ruby/object:Gem::Version
154
- version: 2.0.0
149
+ version: 2.2.0
155
150
  required_rubygems_version: !ruby/object:Gem::Requirement
156
151
  requirements:
157
152
  - - ">="
@@ -1,57 +0,0 @@
1
- # encoding: utf-8
2
- # Copyright 2014-2017 Aerospike, Inc.
3
- #
4
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
- # license agreements.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the 'License'); you may not
8
- # use this file except in compliance with the License. You may obtain a copy of
9
- # the License at http:#www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
13
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- # License for the specific language governing permissions and limitations under
15
- # the License.
16
-
17
- require 'aerospike/value/particle_type'
18
-
19
- module Aerospike
20
-
21
- private
22
-
23
- class Large
24
-
25
- def initialize(client, policy, key, bin_name, user_module=nil)
26
- @client = client
27
- @policy = policy
28
- @key = key
29
- @bin_name = bin_name
30
- @user_module = user_module unless user_module.nil?
31
-
32
- self
33
- end
34
-
35
- # Delete bin containing the object.
36
- def destroy
37
- @client.execute_udf(@key, @PACKAGE_NAME, 'destroy', [@bin_name], @policy)
38
- end
39
-
40
- # Return size of object.
41
- def size
42
- @client.execute_udf(@key, @PACKAGE_NAME, 'size', [@bin_name], @policy)
43
- end
44
-
45
- # Return map of object configuration parameters.
46
- def config
47
- @client.execute_udf(@key, @PACKAGE_NAME, 'get_config', [@bin_name], @policy)
48
- end
49
-
50
- # Return list of all objects on the stack.
51
- def scan
52
- @client.execute_udf(@key, @PACKAGE_NAME, 'scan', [@bin_name], @policy)
53
- end
54
-
55
- end # class
56
-
57
- end #class
@@ -1,101 +0,0 @@
1
- # encoding: utf-8
2
- # Copyright 2014-2017 Aerospike, Inc.
3
- #
4
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
- # license agreements.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the 'License'); you may not
8
- # use this file except in compliance with the License. You may obtain a copy of
9
- # the License at http:#www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
13
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- # License for the specific language governing permissions and limitations under
15
- # the License.
16
-
17
- require 'aerospike/ldt/large'
18
-
19
- module Aerospike
20
-
21
- private
22
-
23
- class LargeList < Large
24
-
25
- def initialize(client, policy, key, bin_name, user_module=nil)
26
- @PACKAGE_NAME = 'llist'
27
-
28
- super(client, policy, key, bin_name, user_module)
29
-
30
- self
31
- end
32
-
33
- # Add values to the list. If the list does not exist, create it using specified user_module configuration.
34
- #
35
- # values values to add
36
- def add(*values)
37
- if values.length == 1
38
- @client.execute_udf(@key, @PACKAGE_NAME, 'add', [@bin_name, values[0], @user_module], @policy)
39
- else
40
- @client.execute_udf(@key, @PACKAGE_NAME, 'add_all', [@bin_name, values, @user_module], @policy)
41
- end
42
- end
43
-
44
- # Update/Add each value in array depending if key exists or not.
45
- # If value is a map, the key is identified by "key" entry. Otherwise, the value is the key.
46
- # If large list does not exist, create it using specified user_module configuration.
47
- #
48
- # values values to update
49
- def update(*values)
50
- if values.length == 1
51
- @client.execute_udf(@key, @PACKAGE_NAME, 'update', [@bin_name, values[0], @user_module], @policy)
52
- else
53
- @client.execute_udf(@key, @PACKAGE_NAME, 'update_all', [@bin_name, values, @user_module], @policy)
54
- end
55
- end
56
-
57
- # Delete value from list.
58
- #
59
- # value value to delete
60
- def remove(value)
61
- @client.execute_udf(@key, @PACKAGE_NAME, 'remove', [@bin_name, value], @policy)
62
- end
63
-
64
- # Select values from list.
65
- #
66
- # value value to select
67
- # returns list of entries selected
68
- def find(value)
69
- begin
70
- @client.execute_udf(@key, @PACKAGE_NAME, 'find', [@bin_name, value], @policy)
71
- rescue Aerospike::Exceptions::Aerospike => e
72
- unless e.result_code == Aerospike::ResultCode::UDF_BAD_RESPONSE && e.message.index("Item Not Found")
73
- Aerospike.logger.error(e)
74
- raise e
75
- end
76
- nil
77
- end
78
- end
79
-
80
- # Select values from list and apply specified Lua filter.
81
- #
82
- # value value to select
83
- # filter_name Lua function name which applies filter to returned list
84
- # filter_args arguments to Lua function name
85
- # returns list of entries selected
86
- def find_then_filter(value, filter_name, *filter_args)
87
- @client.execute_udf(@key, @PACKAGE_NAME, 'find_then_filter', [@bin_name, value, @user_module, filter_name, filter_args], @policy)
88
- end
89
-
90
- # Select values from list and apply specified Lua filter.
91
- #
92
- # filter_name Lua function name which applies filter to returned list
93
- # filter_args arguments to Lua function name
94
- # returns list of entries selected
95
- def filter(filter_name, *filter_args)
96
- @client.execute_udf(@key, @PACKAGE_NAME, 'filter', [@bin_name, @user_module, filter_name, filter_args], @policy)
97
- end
98
-
99
- end # class
100
-
101
- end #class
@@ -1,91 +0,0 @@
1
- # encoding: utf-8
2
- # Copyright 2014-2017 Aerospike, Inc.
3
- #
4
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
- # license agreements.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the 'License'); you may not
8
- # use this file except in compliance with the License. You may obtain a copy of
9
- # the License at http:#www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
13
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- # License for the specific language governing permissions and limitations under
15
- # the License.
16
-
17
- ##############################################################
18
- #
19
- # NOTICE:
20
- # THIS FEATURE HAS BEEN DEPRECATED ON SERVER.
21
- # THE API WILL BE REMOVED FROM THE CLIENT IN THE FUTURE.
22
- #
23
- ##############################################################
24
-
25
- require 'aerospike/ldt/large'
26
-
27
- module Aerospike
28
-
29
- private
30
-
31
- class LargeMap < Large
32
-
33
- def initialize(client, policy, key, bin_name, user_module=nil)
34
- @PACKAGE_NAME = 'lmap'
35
-
36
- super(client, policy, key, bin_name, user_module)
37
-
38
- self
39
- end
40
-
41
- # Add entry to map. If the map does not exist, create it using specified user_module configuration.
42
- #
43
- # name entry key
44
- # value entry value
45
- def put(name, value)
46
- @client.execute_udf(@key, @PACKAGE_NAME, 'put', [@bin_name, name, value, @user_module], @policy)
47
- end
48
-
49
- # Add map values to map. If the map does not exist, create it using specified user_module configuration.
50
- #
51
- # map map values to push
52
- def put_map(the_map)
53
- @client.execute_udf(@key, @PACKAGE_NAME, 'put_all', [@bin_name, the_map, @user_module], @policy)
54
- end
55
-
56
- # Get value from map given name key.
57
- #
58
- # name key.
59
- # return map of items selected
60
- def get(name)
61
- begin
62
- @client.execute_udf(@key, @PACKAGE_NAME, 'get', [@bin_name, name, @user_module], @policy)
63
- rescue Aerospike::Exceptions::Aerospike => e
64
- unless e.result_code == Aerospike::ResultCode::UDF_BAD_RESPONSE && e.message.index("Item Not Found")
65
- Aerospike.logger.error(e)
66
- raise e
67
- end
68
- nil
69
- end
70
- end
71
-
72
- # Get value from map given name key.
73
- #
74
- # name key.
75
- # return map of items selected
76
- def remove(name)
77
- @client.execute_udf(@key, @PACKAGE_NAME, 'remove', [@bin_name, name, @user_module], @policy)
78
- end
79
-
80
- # Select items from map.
81
- #
82
- # filter_name Lua function name which applies filter to returned list
83
- # filter_args arguments to Lua function name
84
- # return list of items selected
85
- def filter(filter_name, *filter_args)
86
- @client.execute_udf(@key, @PACKAGE_NAME, 'filter', [@bin_name, @user_module, filter_name, filter_args], @policy)
87
- end
88
-
89
- end # class
90
-
91
- end #class
@@ -1,86 +0,0 @@
1
- # encoding: utf-8
2
- # Copyright 2014-2017 Aerospike, Inc.
3
- #
4
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
- # license agreements.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the 'License'); you may not
8
- # use this file except in compliance with the License. You may obtain a copy of
9
- # the License at http:#www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
13
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- # License for the specific language governing permissions and limitations under
15
- # the License.
16
-
17
- ##############################################################
18
- #
19
- # NOTICE:
20
- # THIS FEATURE HAS BEEN DEPRECATED ON SERVER.
21
- # THE API WILL BE REMOVED FROM THE CLIENT IN THE FUTURE.
22
- #
23
- ##############################################################
24
-
25
- require 'aerospike/ldt/large'
26
-
27
- module Aerospike
28
-
29
- private
30
-
31
- class LargeSet < Large
32
-
33
- def initialize(client, policy, key, bin_name, user_module=nil)
34
- @PACKAGE_NAME = 'lset'
35
-
36
- super(client, policy, key, bin_name, user_module)
37
-
38
- self
39
- end
40
-
41
- # Add values to the list. If the list does not exist, create it using specified user_module configuration.
42
- #
43
- # values values to add
44
- def add(*values)
45
- if values.length == 1
46
- @client.execute_udf(@key, @PACKAGE_NAME, 'add', [@bin_name, values[0], @user_module], @policy)
47
- else
48
- @client.execute_udf(@key, @PACKAGE_NAME, 'add_all', [@bin_name, values, @user_module], @policy)
49
- end
50
- end
51
-
52
- # Delete value from list.
53
- #
54
- # value value to delete
55
- def remove(value)
56
- @client.execute_udf(@key, @PACKAGE_NAME, 'remove', [@bin_name, value], @policy)
57
- end
58
-
59
- # Select values from list.
60
- #
61
- # value value to select
62
- # returns list of entries selected
63
- def get(value)
64
- @client.execute_udf(@key, @PACKAGE_NAME, 'get', [@bin_name, value], @policy)
65
- end
66
-
67
- # Check existence of value in the set.
68
- #
69
- # value value to check
70
- # returns true if found, otherwise false
71
- def exists(value)
72
- 1 == @client.execute_udf(@key, @PACKAGE_NAME, 'exists', [@bin_name, value], @policy)
73
- end
74
-
75
- # Select values from list and apply specified Lua filter.
76
- #
77
- # filter_name Lua function name which applies filter to returned list
78
- # filter_args arguments to Lua function name
79
- # returns list of entries selected
80
- def filter(filter_name, *filter_args)
81
- @client.execute_udf(@key, @PACKAGE_NAME, 'filter', [@bin_name, @user_module, filter_name, filter_args], @policy)
82
- end
83
-
84
- end # class
85
-
86
- end #class
@@ -1,80 +0,0 @@
1
- # encoding: utf-8
2
- # Copyright 2014-2017 Aerospike, Inc.
3
- #
4
- # Portions may be licensed to Aerospike, Inc. under one or more contributor
5
- # license agreements.
6
- #
7
- # Licensed under the Apache License, Version 2.0 (the 'License'); you may not
8
- # use this file except in compliance with the License. You may obtain a copy of
9
- # the License at http:#www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an 'AS IS' BASIS, WITHOUT
13
- # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
14
- # License for the specific language governing permissions and limitations under
15
- # the License.
16
-
17
- ##############################################################
18
- #
19
- # NOTICE:
20
- # THIS FEATURE HAS BEEN DEPRECATED ON SERVER.
21
- # THE API WILL BE REMOVED FROM THE CLIENT IN THE FUTURE.
22
- #
23
- ##############################################################
24
-
25
- require 'aerospike/ldt/large'
26
-
27
- module Aerospike
28
-
29
- private
30
-
31
- class LargeStack < Large
32
-
33
- def initialize(client, policy, key, bin_name, user_module=nil)
34
- @PACKAGE_NAME = 'lstack'
35
-
36
- super(client, policy, key, bin_name, user_module)
37
-
38
- self
39
- end
40
-
41
- # Push values onto stack. If the stack does not exist, create it using specified user_module configuration.
42
- #
43
- # values values to push
44
- def push(*values)
45
- if values.length == 1
46
- @client.execute_udf(@key, @PACKAGE_NAME, 'push', [@bin_name, values[0], @user_module], @policy)
47
- else
48
- @client.execute_udf(@key, @PACKAGE_NAME, 'push_all', [@bin_name, values, @user_module], @policy)
49
- end
50
- end
51
-
52
- # Select items from top of stack.
53
- #
54
- # peek_count number of items to select.
55
- # returns list of items selected
56
- def peek(peek_count)
57
- @client.execute_udf(@key, @PACKAGE_NAME, 'peek', [@bin_name, peek_count], @policy)
58
- end
59
-
60
- # Select items from top of stack.
61
- #
62
- # peek_count number of items to select.
63
- # returns list of items selected
64
- def pop(count)
65
- @client.execute_udf(@key, @PACKAGE_NAME, 'pop', [@bin_name, count], @policy)
66
- end
67
-
68
- # Select items from top of stack.
69
- #
70
- # peek_count number of items to select.
71
- # filter_name Lua function name which applies filter to returned list
72
- # filter_args arguments to Lua function name
73
- # returns list of items selected
74
- def filter(peek_count, filter_name, *filter_args)
75
- @client.execute_udf(@key, @PACKAGE_NAME, 'filter', [@bin_name, peek_count, @user_module, filter_name, filter_args], @policy)
76
- end
77
-
78
- end # class
79
-
80
- end #class