Class: Prolly::Ps::Storage::Rubylist
- Defined in:
- lib/prolly/ps/storage/rubylist.rb
Instance Method Summary collapse
- #add(datum) ⇒ Object
- #count(rvs, options = {}) ⇒ Object
-
#initialize ⇒ Rubylist
constructor
A new instance of Rubylist.
- #rand_vars ⇒ Object
- #reset ⇒ Object
- #uniq_vals(name) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize ⇒ Rubylist
Returns a new instance of Rubylist.
9 10 11 |
# File 'lib/prolly/ps/storage/rubylist.rb', line 9 def initialize super end |
Instance Method Details
#add(datum) ⇒ Object
19 20 21 |
# File 'lib/prolly/ps/storage/rubylist.rb', line 19 def add(datum) @data << datum end |
#count(rvs, options = {}) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/prolly/ps/storage/rubylist.rb', line 23 def count(rvs, = {}) reload = [:reload] || false if rvs.kind_of?(Array) value = @data.count { |e| rvs.all? { |rv| e.has_key?(rv) } } elsif rvs.kind_of?(Hash) value = @data.count { |e| rvs.map { |rkey, rval| vals = rval.kind_of?(Array) ? rval : [rval] vals.include?(e[rkey]) }.all? } end return value end |
#rand_vars ⇒ Object
38 39 40 |
# File 'lib/prolly/ps/storage/rubylist.rb', line 38 def rand_vars @data.first.keys end |
#reset ⇒ Object
13 14 15 16 17 |
# File 'lib/prolly/ps/storage/rubylist.rb', line 13 def reset super @data = [] @uniq_vals = {} end |
#uniq_vals(name) ⇒ Object
42 43 44 |
# File 'lib/prolly/ps/storage/rubylist.rb', line 42 def uniq_vals(name) @uniq_vals[name] ||= @data.map { |li| li.has_key?(name) ? li[name] : nil }.uniq end |