Class: Aerospike::LargeMap

Inherits:
Large
  • Object
show all
Defined in:
lib/aerospike/ldt/large_map.rb

Instance Method Summary collapse

Methods inherited from Large

#capacity, #capacity=, #config, #destroy, #scan, #size

Constructor Details

#initialize(client, policy, key, bin_name, user_module = nil) ⇒ LargeMap

Returns a new instance of LargeMap.



25
26
27
28
29
30
31
# File 'lib/aerospike/ldt/large_map.rb', line 25

def initialize(client, policy, key, bin_name, user_module=nil)
  @PACKAGE_NAME = 'lmap'

  super(client, policy, key, bin_name, user_module)

  self
end

Instance Method Details

#filter(filter_name, *filter_args) ⇒ Object

Select items from map.

filter_name Lua function name which applies filter to returned list filter_args arguments to Lua function name return list of items selected



77
78
79
# File 'lib/aerospike/ldt/large_map.rb', line 77

def filter(filter_name, *filter_args)
  @client.execute_udf(@key, @PACKAGE_NAME, 'filter', [@bin_name, @user_module, filter_name, filter_args], @policy)
end

#get(name) ⇒ Object

Get value from map given name key.

name key. return map of items selected



52
53
54
55
56
57
58
59
60
61
62
# File 'lib/aerospike/ldt/large_map.rb', line 52

def get(name)
  begin
    @client.execute_udf(@key, @PACKAGE_NAME, 'get', [@bin_name, name, @user_module], @policy)
  rescue Aerospike::Exceptions::Aerospike => e
    unless e.result_code == Aerospike::ResultCode::UDF_BAD_RESPONSE && e.message.index("Item Not Found")
      Aerospike.logger.error(e)
      raise e
    end
    nil
  end
end

#put(name, value) ⇒ Object

Add entry to map. If the map does not exist, create it using specified user_module configuration.

name entry key value entry value



37
38
39
# File 'lib/aerospike/ldt/large_map.rb', line 37

def put(name, value)
  @client.execute_udf(@key, @PACKAGE_NAME, 'put', [@bin_name, name, value, @user_module], @policy)
end

#put_map(the_map) ⇒ Object

Add map values to map. If the map does not exist, create it using specified user_module configuration.

map map values to push



44
45
46
# File 'lib/aerospike/ldt/large_map.rb', line 44

def put_map(the_map)
  @client.execute_udf(@key, @PACKAGE_NAME, 'put_all', [@bin_name, the_map, @user_module], @policy)
end

#remove(name) ⇒ Object

Get value from map given name key.

name key. return map of items selected



68
69
70
# File 'lib/aerospike/ldt/large_map.rb', line 68

def remove(name)
  @client.execute_udf(@key, @PACKAGE_NAME, 'remove', [@bin_name, name, @user_module], @policy)
end