Module: Ohm::Collection
Instance Method Summary collapse
- #each ⇒ Object
- #empty? ⇒ Boolean
-
#fetch(ids) ⇒ Object
Wraps the whole pipelining functionality.
-
#to_a ⇒ Object
Fetch the data from Redis in one go.
-
#to_json(*args) ⇒ Object
Sugar for to_a.to_json for all types of Sets.
Instance Method Details
#each ⇒ Object
115 116 117 118 119 120 121 122 123 |
# File 'lib/ohm.rb', line 115 def each if block_given? ids.each_slice(1000) do |slice| fetch(slice).each { |e| yield(e) } end else to_enum end end |
#empty? ⇒ Boolean
130 131 132 |
# File 'lib/ohm.rb', line 130 def empty? size == 0 end |
#fetch(ids) ⇒ Object
Wraps the whole pipelining functionality.
135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# File 'lib/ohm.rb', line 135 def fetch(ids) data = nil model.synchronize do ids.each do |id| redis.queue("HGETALL", namespace[id]) end data = redis.commit end return [] if data.nil? [].tap do |result| data.each_with_index do |atts, idx| result << model.new(Utils.dict(atts).update(:id => ids[idx])) end end end |
#to_a ⇒ Object
Fetch the data from Redis in one go.
126 127 128 |
# File 'lib/ohm.rb', line 126 def to_a fetch(ids) end |
#to_json(*args) ⇒ Object
Sugar for to_a.to_json for all types of Sets
13 14 15 |
# File 'lib/ohm/json.rb', line 13 def to_json(*args) to_a.to_json(*args) end |