Sha256: 908c06cc2d6a55d8fb65b85d963429cfd34bab40dfd2b58ff02c883099e978ca
Contents?: true
Size: 1.03 KB
Versions: 5
Compression:
Stored size: 1.03 KB
Contents
# coding: utf-8 require 'spec' $LOAD_PATH.unshift(File.dirname(__FILE__)) $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) require 'numb' class Seq include Enumerable attr_accessor :exclude, :include def initialize(*args) @include = args.first? @exclude = [] end def each @include.each do |e| next if @exclude.include?(e) yield e end end def invert Seq.new(self.begin..self.end).tap{|s| s.exclude = @include } end def begin @include.respond_to?(:begin) ? @include.begin : @include.min end def end @include.respond_to?(:end) ? @include.end : @include.max end def sample(n=nil) return @include.sample(n) if @include.respond_to?(:sample) prng = Random.new (n||1).times.map do r = prng.rand(@include) redo if @exclude.include?(r) r end.tap{|a| return a.first unless n} end end class Array def first? size <= 1 ? first : self end def to_seq Seq.new *self end end Spec::Runner.configure do |config| end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
numb-0.77.0 | spec/spec_helper.rb |
numb-0.72.1 | spec/spec_helper.rb |
numb-0.72.0 | spec/spec_helper.rb |
numb-0.68.0 | spec/spec_helper.rb |
numb-0.63.0 | spec/spec_helper.rb |