Class: RubyHaze::Map

Inherits:
Object
  • Object
show all
Includes:
RubyHaze::Mixins::DOProxy
Defined in:
lib/rubyhaze/map.rb

Instance Attribute Summary

Attributes included from RubyHaze::Mixins::DOProxy

#name

Attributes included from RubyHaze::Mixins::Proxy

#proxy_object

Instance Method Summary collapse

Methods included from RubyHaze::Mixins::DOProxy

included

Methods included from RubyHaze::Mixins::NativeException

#rescue_native_exception

Methods included from RubyHaze::Mixins::Compare

#==

Methods included from RubyHaze::Mixins::Proxy

included, #method_missing, #respond_to?

Constructor Details

#initialize(name) ⇒ Map

Returns a new instance of Map.



9
10
11
12
13
14
# File 'lib/rubyhaze/map.rb', line 9

def initialize(name)
  @name = name.to_s
  @proxy_object = Hazelcast.get_map @name
rescue NativeException => x
  rescue_native_exception x
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class RubyHaze::Mixins::Proxy

Instance Method Details

#[](key) ⇒ Object



24
25
26
27
28
# File 'lib/rubyhaze/map.rb', line 24

def [](key)
  proxy_object[key.to_s]
rescue NativeException => x
  rescue_native_exception x
end

#[]=(key, value) ⇒ Object



30
31
32
33
34
# File 'lib/rubyhaze/map.rb', line 30

def []=(key,value)
  proxy_object[key.to_s] = value
rescue NativeException => x
  rescue_native_exception x
end

#eachObject



16
17
18
19
20
21
22
# File 'lib/rubyhaze/map.rb', line 16

def each
  proxy_object.each do |(key, value)|
    yield key, value
  end
rescue NativeException => x
  rescue_native_exception x
end

#keys(predicate = nil) ⇒ Object



36
37
38
39
40
41
# File 'lib/rubyhaze/map.rb', line 36

def keys(predicate = nil)
  predicate = prepare_predicate(predicate) unless predicate.is_a?(SqlPredicate)
  proxy_object.key_set(predicate).map
rescue NativeException => x
  rescue_native_exception x
end

#local_keys(predicate = nil) ⇒ Object



51
52
53
54
55
56
# File 'lib/rubyhaze/map.rb', line 51

def local_keys(predicate = nil)
  predicate = prepare_predicate(predicate) unless predicate.is_a?(SqlPredicate)
  proxy_object.local_key_set(predicate).map
rescue NativeException => x
  rescue_native_exception x
end

#local_statsObject



58
59
60
61
62
# File 'lib/rubyhaze/map.rb', line 58

def local_stats
  lsm = proxy_object.local_map_stats
  { :backup_count => lsm.backup_entry_count, :backup_memory => lsm.backup_entry_memory_cost,
    :created => lsm.creation_time, :last_accessed => lsm.last_access_time,  }
end

#prepare_predicate(predicate) ⇒ Object



64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
# File 'lib/rubyhaze/map.rb', line 64

def prepare_predicate(predicate)
  return if predicate.nil?
  case predicate
    when String
      SqlPredicate.new predicate
    when Hash
      query = predicate.map do |field, value|
        cmp = '='
        if value.is_a?(String)
          value = "'" + value + "'"
          cmp = 'LIKE' if value.index('%')
        end
        "#{field} #{cmp} #{value}"
      end.join(' AND ')
      SqlPredicate.new query
    else
      raise "Unknown predicate type"
  end
end

#values(predicate = nil) ⇒ Object Also known as: find



43
44
45
46
47
48
# File 'lib/rubyhaze/map.rb', line 43

def values(predicate = nil)
  predicate = prepare_predicate(predicate) unless predicate.is_a?(SqlPredicate)
  proxy_object.values(predicate).map
rescue NativeException => x
  rescue_native_exception x
end