Module: RDKit::DB::ListMethods

Included in:
RDKit::DB
Defined in:
lib/rdkit/db.rb

Instance Method Summary collapse

Instance Method Details

#llen(key) ⇒ Object



74
75
76
77
78
79
80
81
# File 'lib/rdkit/db.rb', line 74

def llen(key)
  if list = get_typed_object(key, :list)

    list.length
  else
    0
  end
end

#lpop(key) ⇒ Object



92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/rdkit/db.rb', line 92

def lpop(key)
  if list = get_typed_object(key, :list)

    result = list.shift

    del([key]) if list.empty?

    result
  else
    nil
  end
end

#lpush(key, elements) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/rdkit/db.rb', line 61

def lpush(key, elements)
  if list = get_typed_object(key, :list)
    list.unshift(*elements)

    list.length
  else
    # key not exist
    objects[key] = RDObject.list(elements)

    objects[key].length
  end
end

#lrange(key, start, stop) ⇒ Object



83
84
85
86
87
88
89
90
# File 'lib/rdkit/db.rb', line 83

def lrange(key, start, stop)
  if list = get_typed_object(key, :list)

    list[start..stop]
  else
    []
  end
end

#rpop(key) ⇒ Object



105
106
107
108
109
110
111
112
113
114
115
116
# File 'lib/rdkit/db.rb', line 105

def rpop(key)
  if list = get_typed_object(key, :list)

    result = list.pop

    del([key]) if list.empty?

    result
  else
    nil
  end
end