Class: Aerospike::LargeMap

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

Instance Method Summary collapse

Methods inherited from Large

#config, #destroy, #scan, #size

Constructor Details

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

Returns a new instance of LargeMap.



33
34
35
36
37
38
39
# File 'lib/aerospike/ldt/large_map.rb', line 33

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



85
86
87
# File 'lib/aerospike/ldt/large_map.rb', line 85

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



60
61
62
63
64
65
66
67
68
69
70
# File 'lib/aerospike/ldt/large_map.rb', line 60

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



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

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



52
53
54
# File 'lib/aerospike/ldt/large_map.rb', line 52

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



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

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