Sha256: d0013054678b59e72984a10059919161805d255bcafb9d777f3c03d2236fa530
Contents?: true
Size: 876 Bytes
Versions: 3
Compression:
Stored size: 876 Bytes
Contents
module Terrestrial class Dataset include Enumerable def initialize(records) @records = records end attr_reader :records private :records def each(&block) records.each(&block) self end def where(criteria) new( records.find_all { |row| criteria.all? { |k, v| if v.respond_to?(:include?) test_inclusion_in_value(row, k, v) else test_equality(row, k, v) end } } ) end def select(field) map { |data| data.fetch(field) } end private def new(records) self.class.new(records) end def test_inclusion_in_value(row, field, values) values.include?(row.fetch(field)) end def test_equality(row, field, value) value == row.fetch(field) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
terrestrial-0.5.0 | lib/terrestrial/dataset.rb |
terrestrial-0.3.0 | lib/terrestrial/dataset.rb |
terrestrial-0.1.1 | lib/terrestrial/dataset.rb |