Sha256: eee8af5e23c5fc9442c77fb22b0caa4bb5ca0045d09247d6e87a9488c716a7e7
Contents?: true
Size: 1.02 KB
Versions: 2
Compression:
Stored size: 1.02 KB
Contents
module ROM class Adapter class Memory < Adapter class Dataset include Charlatan.new(:data) attr_reader :header def initialize(data, header) super @header = header end def to_ary data.dup end alias_method :to_a, :to_ary def each(&block) return to_enum unless block data.each(&block) end def restrict(criteria = nil, &block) if criteria find_all { |tuple| criteria.all? { |k, v| tuple[k] == v } } else find_all { |tuple| yield(tuple) } end end def project(*names) map { |tuple| tuple.reject { |key,_| names.include?(key) } } end def order(*names) sort_by { |tuple| tuple.values_at(*names) } end def insert(tuple) data << tuple self end def delete(tuple) data.delete(tuple) self end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rom-0.4.2 | lib/rom/adapter/memory/dataset.rb |
rom-0.4.1 | lib/rom/adapter/memory/dataset.rb |